Commit Graph

199 Commits

Author SHA1 Message Date
Frank Denis 6f047e07b8 Bump 2018-05-10 22:17:57 +02:00
Frank Denis bcaff6e3bd 2.0.11 2018-04-27 00:12:09 +02:00
Frank Denis a5b8401131 Bump 2018-04-16 02:33:10 +02:00
Frank Denis e2dd9c97a2 Remove b2
Fixes #347
2018-04-11 14:05:16 +02:00
Frank Denis aa538969a3 New beta 2018-04-09 13:27:02 +02:00
Frank Denis fcdf7d7e55 Update ChangeLog 2018-04-07 23:14:15 +02:00
Frank Denis fbe91ee58b No need to initialize xTransport before we have all the parameters 2018-04-07 22:33:11 +02:00
Frank Denis a938eeff7b Mainly revert 869d44c30e
Fixing #304 doesn't look trivial

The service module needs to know the arguments right away.

The arguments haven't been parsed yet. And if we do, we will prevent
further arguments to be added to the set. Including the ones added
by the service module itself.

So, we have quite of a circular dependency here.

If someone with some Go knowledge can fix that, that would be amazing.
But it's probably never going to happen.

Meanwhile, we can try to save the current directory and document
that we have to be in that directory when running the install command.

Which is not going to work on Windows, so this is a big fucking mess
2018-04-03 20:15:33 +02:00
Frank Denis c88e480a15 Include the -config option in the installed service
Untested on Linux and Windows. Fear.

Fixes #304
2018-04-03 19:42:27 +02:00
Frank Denis 5cc4663081 Bump 2018-03-29 11:22:20 +02:00
Frank Denis 50053d32a5 Bump 2018-03-18 09:21:36 -07:00
Frank Denis a0aeeabfa2 Nits 2018-03-17 14:47:17 -07:00
Frank Denis 2c7513a2c8 2.0.6 2018-03-02 11:05:58 +01:00
Frank Denis 85a64e3327 Add -pidfile
Fixes #200
2018-02-28 18:11:48 +01:00
Frank Denis 89d2973458 2.0.5 2018-02-27 09:51:26 +01:00
Frank Denis 38fd879b56 Check record type in xTransport
Prepare for IPv6-only support by the way

Fixes #189
2018-02-26 14:50:01 +01:00
Frank Denis 6000f5073a 2.0.4 2018-02-23 17:08:13 +01:00
Frank Denis 8d4f6770e5 Bump 2018-02-22 23:55:03 +01:00
Frank Denis ebd55ba954 Bump 2018-02-21 00:23:11 +01:00
Frank Denis 547e444afd Service installation: bail out with a meaningful error message on unsupported platforms
Fixes #154
2018-02-20 00:34:06 +01:00
Frank Denis 81ba5ef2c6 Update ChangeLog 2018-02-19 18:42:29 +01:00
Frank Denis 16c75172ad Remove "starting"
Fixes #97
2018-02-06 19:33:58 +01:00
Frank Denis 453299e49a 2.0.0 final 2018-02-06 16:13:06 +01:00
Frank Denis 88434fc39f Prepare support for multiple load balancing strategies 2018-02-04 21:13:54 +01:00
Frank Denis a4b70fa56d Last released candidate, so people can test cloaking 2018-02-04 12:00:24 +01:00
Frank Denis 588d8dabde rc2 2018-02-03 12:53:43 +01:00
Frank Denis f513ab21fa Check if the config file exists from the current directory
Try the executable directory if it fails

Then, go to that config file directory no matter what

Fixes #80
2018-02-03 10:46:47 +01:00
Frank Denis 6efd904b9f 2.0.0 release candidate 2018-02-01 10:26:14 +01:00
Frank Denis f6571af24f Nits 2018-01-31 08:38:22 +01:00
Frank Denis c39197f7b2 Prepare for beta12 2018-01-30 15:58:13 +01:00
Frank Denis ecaf18f614 Use a fallback resolver if the local DNS configuration doesn't work
This should fix all chicken-and-egg issues
2018-01-30 15:47:39 +01:00
Frank Denis 24c21d5eb2 Start moving things to a custom transport 2018-01-30 13:29:47 +01:00
Frank Denis c2494cfc40 Make file paths relative to the path of the configuration file 2018-01-29 23:57:20 +01:00
Frank Denis b6e5f55870 Move the proxy struct to its own file 2018-01-29 23:47:04 +01:00
Frank Denis 479d9d14fd Reduce verbosity 2018-01-29 04:03:59 +01:00
Frank Denis cf12fb170a Use a custom transport and a host->ip cache
maybe
Fixes #45
2018-01-29 03:58:39 +01:00
Frank Denis 9eeb68f3a1 beta11 2018-01-27 18:18:28 +01:00
Frank Denis be1e99ea32 DoH: send a dummy query before measuring the RTT to ignore the handshake 2018-01-27 16:48:22 +01:00
Frank Denis 50d0c0449f Initial support for DNS-over-HTTP2 -- Yes, it works with Google. 2018-01-27 15:26:08 +01:00
Frank Denis ff5bba1ba4 up 2018-01-25 15:55:27 +01:00
Frank Denis 996d9be4e3 Improve message if /proc/self/exe doesn't exist (?)
Fixes #26
2018-01-24 16:55:28 +01:00
Frank Denis 732c451dd4 Add max_clients to cap the maximum number of client queries 2018-01-24 16:51:26 +01:00
Frank Denis 94f9c14ad7 Only attempt to use systemd on linux
Remove plan9 builds
2018-01-24 15:14:48 +01:00
Frank Denis c184ce1a03 systemd support
How does it work? I don't know. Does it work? I don't know.
Would I encourage its use? No.
2018-01-24 14:44:32 +01:00
Frank Denis 0ce20518db Make the UDP and TCP listeners more generic 2018-01-24 14:22:56 +01:00
Frank Denis 1bcb791270 up 2018-01-24 14:13:29 +01:00
Frank Denis 3dcedac390 beta8 2018-01-21 19:52:51 +01:00
Frank Denis 8bcba92f97 Add an undocumented option to ignore cert timestamps 2018-01-21 18:10:38 +01:00
Frank Denis 05e07e8b69 Add a simple built-in DNS client for testing 2018-01-21 18:02:32 +01:00
Frank Denis d9b5625226 IP blocking 2018-01-21 16:07:44 +01:00
Frank Denis 4f42dd01a4 nxlog 2018-01-20 17:03:48 +01:00
Frank Denis 1e0e01e8e1 NXLOG: a new output plugin to log suspicious queries 2018-01-20 16:59:40 +01:00
Frank Denis 47fdc45b2d beta5 2018-01-20 14:15:20 +01:00
Frank Denis 066db6a080 Replace logged_qtypes with ignored_qtypes 2018-01-20 13:27:37 +01:00
Frank Denis 187de17396 Don't prefetch more frequently than 1/min 2018-01-20 00:31:54 +01:00
Frank Denis 1c27d6c230 Improved error handling 2018-01-20 00:30:33 +01:00
Frank Denis 7fbb4c5428 Improve the prefetcher; run a dedicated goroutine 2018-01-19 23:43:45 +01:00
Frank Denis 6e1eaf7b90 More flexible logging; add support for the Windows event log 2018-01-19 20:06:04 +01:00
Frank Denis 7103229609 Add a logged_qtypes feature to log only some query types 2018-01-19 12:57:47 +01:00
Frank Denis 41d5de6e8d Scheduling 2018-01-19 00:06:18 +01:00
Frank Denis 43e5689387 Schedule a prefetch if we got a set or its signature from a backup cache
This is not pretty, and has to be rewritten for the next beta
2018-01-18 23:54:53 +01:00
Frank Denis a85d012a2b Prefetch previously unreachable sources URLs after a server is reachable
Partial fix for #4

Pave the way for regular, background updates as well
2018-01-18 23:19:14 +01:00
Frank Denis 6c67739b56 bump 2018-01-18 22:23:37 +01:00
Frank Denis 0fcbbfda1f Add systemd readiness notification 2018-01-18 15:31:08 +01:00
Frank Denis 0a63975d48 Logs can now be sent to files or syslog in addition to stderr 2018-01-18 14:25:45 +01:00
Frank Denis fd7838ee58 Add a -version command-line switch to print the version
Fixes #2
2018-01-18 12:22:25 +01:00
Frank Denis 0e03f684b2 Hotfix for OpenBSD and other OS whose init system is not supported yet 2018-01-18 02:08:08 +01:00
Frank Denis df3a5f608d Improve management of multiple servers, and unreachable-at-boot servers 2018-01-17 21:23:01 +01:00
Frank Denis 1140e067ad Retry more frequently if we don't have any useable certificates
This will ahve to be done at startup time as well.
2018-01-17 17:22:29 +01:00
Frank Denis b9c43c8ef3 Add the ability to log blocked queries 2018-01-17 17:03:42 +01:00
Frank Denis 3fffbaa2a2 Support installation as a service 2018-01-17 11:28:43 +01:00
Frank Denis 3fe6dbd740 Preliminary support for running as a Windows service 2018-01-17 10:58:19 +01:00
Frank Denis 96dadc7aca Forwarding plugin 2018-01-17 09:44:03 +01:00
Frank Denis 170e2e816e Implement blocking, fully compatible with rules from version 1 2018-01-17 02:40:47 +01:00
Frank Denis 5685844f43 Implement query logging 2018-01-16 00:23:16 +01:00
Frank Denis 3ffad7be44 Add Init/Drop/Update methods to plugins
Eventually, we may want to provide a specific structure for plugin
initialization. Sending the whole Proxy structure doesn't scale well.
2018-01-15 23:07:41 +01:00
Frank Denis fee0a42dec Plugins can now access the client IP. Useful for logging and ACLs. 2018-01-14 23:47:49 +01:00
Frank Denis 5e252372d5 Pass the client protocol around, don't infer it from clientAddr 2018-01-14 23:39:55 +01:00
Frank Denis b2d297fb17 cd to the path of the executable file 2018-01-14 00:56:46 +01:00
Frank Denis 9a3cd91cd7 Use dlog for everything 2018-01-11 11:50:54 +01:00
Frank Denis 735213f45a Use glog 2018-01-11 02:11:54 +01:00
Frank Denis 3fe60f64c4 So, daemonization only works on linux :/ 2018-01-10 19:49:02 +01:00
Frank Denis 99c5273e3a Add configuration cache size and other parameters 2018-01-10 19:32:56 +01:00
Frank Denis 77cdc1db78 Start implementing a basic cache 2018-01-10 18:32:05 +01:00
Frank Denis f283105866 Implement the IPv6 block plugin 2018-01-10 17:23:20 +01:00
Frank Denis fa22cc32d7 Basic load balancing/failover
Try to send queries to one of the two fastest servers
2018-01-10 16:42:14 +01:00
Frank Denis 9eeb799d6e Many improvements 2018-01-10 16:01:29 +01:00
Frank Denis 6dfcb659d4 Handle daemonization 2018-01-10 13:33:06 +01:00
Frank Denis b86e7f268e Use more things from the config file 2018-01-10 12:09:59 +01:00
Frank Denis 2822a9781b Add a config file 2018-01-10 12:02:09 +01:00
Frank Denis efd0477c2b Implement an actual estimator for the response size
Scale back the minimum question size when relevant.

Did I mention that this is yet another thing that was never properly
implemented in dnscrypt-proxy 1.x?
2018-01-10 09:46:27 +01:00
Frank Denis f4346691bc Transform queries via an initial edns mangling plugin
Yet another thing that was utterly broken in dnscrypt-proxy v1.x
2018-01-10 09:04:03 +01:00
Frank Denis d8f8d561c8 Synthesize a truncated response if the response wouldn't fit the local MSS 2018-01-10 02:52:09 +01:00
Frank Denis 3049f43bc7 Nits 2018-01-10 00:32:16 +01:00
Frank Denis 72a6963f2e Cleanups 2018-01-10 00:31:12 +01:00
Frank Denis 35ec5bd044 We can now receive queries on UDP and forward them on TCP
Something that had never been possible with the old implementation
2018-01-09 20:10:06 +01:00
Frank Denis 1a59d93192 Support TCP connection to the backend 2018-01-09 19:47:24 +01:00
Frank Denis 888db6a8fb The preferred protocol will be a global (for Tor users) 2018-01-09 18:42:24 +01:00
Frank Denis 841bf65d61 Reorganize 2018-01-09 18:32:14 +01:00