776 Commits

Author SHA1 Message Date
Cuong Manh Le
e6d77e2586 cmd/ctrld: add default value and CLI flag for cache size 2023-01-20 21:33:11 +07:00
Cuong Manh Le
b93970ccfd all: add CLI flags for no config start
This commit adds the ability to start `ctrld` without config file. All
necessary information can be provided via command line flags, either in
base64 encoded config or launch arguments.
2023-01-20 21:33:05 +07:00
Cuong Manh Le
30fefe7ab9 all: add local caching
This commit adds config params to enable local DNS response caching and
control its behavior, allow tweaking the cache size, ttl override and
serving stale response.
2023-01-20 21:33:01 +07:00
Cuong Manh Le
fa3c3e8a29 Close http3 roundtripper when error occurred
For http3, if the network were down, the quic transport needs to be
closed, so the transport can create new connection when network up.
2023-01-20 21:32:55 +07:00
Cuong Manh Le
a6b3c4a757 Don't set default log level in config file 2023-01-20 21:32:47 +07:00
Cuong Manh Le
b03aa39b83 all: support ipv6 for doh3 upstream bootstrap ip
We did it for doh, but the doh3 transport also needs to be changed.
2023-01-20 21:32:41 +07:00
Cuong Manh Le
837d3195ca cmd/ctrld: rework "verbose" flag
This commit changes "verbose" flag from boolean to count flag, so we can
specify the flag multiple times to indicate different logging output:

 - No "-v": no query logging except startup/listeners
 - "-v"   : query logging enabled
 - "-vv"  : debug level logging enabled
2023-01-20 21:32:33 +07:00
Cuong Manh Le
a7ae6c9853 all: support ipv6 for upstream bootstrap ip 2023-01-20 21:32:26 +07:00
Cuong Manh Le
ebcc545547 all: improving DoH query performance
Previously, for each DoH query, we use the net/http default transport
with DialContext function re-assigned. This has some problems:

 - The first query to server will be slow.
 - Using the default transport for all upstreams can have race condition
   in case of multiple queries to multiple DoH upstreams

This commit fixes those issues, by initializing a separate transport for
each DoH upstream, the warming up the transport by doing a test query.
Later queries can take the advantage and re-use the connection.
2023-01-20 21:32:14 +07:00
Spencer Comfort
1cdce73070 Update ci.yml 2023-01-16 17:23:59 -05:00
Spencer Comfort
5f9ac5889b ci.yml: bump checkout -> 3.3.0 and setup-go-faster -> 1.8.0 2023-01-15 21:56:56 -05:00
Yegor S
924304a13d Merge pull request #6 from Control-D-Inc/bump-version
cmd/ctrld: bump version to v1.0.1
v1.0.1
2022-12-14 13:05:05 -05:00
Cuong Manh Le
0240f7ab15 cmd/ctrld: bump version to v1.0.1 2022-12-15 00:57:16 +07:00
Yegor S
64dff35143 Merge pull request #5 from Control-D-Inc/cuonglm/upstream-failover-rcode
all: implement policy failover rcodes
2022-12-14 12:53:26 -05:00
Cuong Manh Le
d2c47ba523 docs: add documentation for failover rcode 2022-12-15 00:00:05 +07:00
Cuong Manh Le
ccada70e31 all: implement policy failover rcodes
While at it, ensure that config is validated, and fixing a bug related
to reuse ctx between multiple upstreams resolving.
2022-12-14 23:34:24 +07:00
Yegor S
fe0faac8c4 Merge pull request #4 from Control-D-Inc/cuonglm/update-example
Update arguments section to reflect latest changes
2022-12-13 12:37:43 -05:00
Cuong Manh Le
bb51a40166 Update arguments section to reflect latest changes 2022-12-14 00:33:07 +07:00
Yegor S
d42ee31a7c Merge pull request #3 from Control-D-Inc/cuonglm/fix-readme
Update README.md
2022-12-13 12:29:57 -05:00
Cuong Manh Le
0556825a11 Update README.md 2022-12-14 00:24:43 +07:00
Yegor S
b2a6f18a1c Create LICENSE 2022-12-13 12:04:01 -05:00
Cuong Manh Le
3968a67d80 Merge pull request #2 from Control-D-Inc/goreleaser
Add goreleaser file
v1.0.0
2022-12-13 11:35:35 +07:00
Cuong Manh Le
0c3ee9aa59 Add goreleaser file 2022-12-13 11:04:27 +07:00
Yegor S
4d75333b9c Merge pull request #1 from Control-D-Inc/mirroring-code
Let there be light.
2022-12-12 20:58:05 -05:00
Cuong Manh Le
91d60d2a64 Import code, preparing for release 2022-12-13 01:27:48 +07:00
Yegor S
cef3cc497e Initial commit 2022-12-02 20:05:07 -05:00