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
008d2d9093
Increase refresh delay for server sets
2018-01-18 23:54:37 +01:00
Frank Denis
1b5e36432e
Remove cache files if we stored corrupted data
2018-01-18 23:33:30 +01:00
Frank Denis
f745eb578a
Check HTTP error codes
2018-01-18 23:31:14 +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
c4bd6eb9f0
Make the distinction between a usable cache and a hot cache
...
A hot cache is still fresh. A usable cache exists, and can act as a
backup solution is we can't fetch a list from a remote server.
2018-01-18 22:23:40 +01:00
Frank Denis
6c67739b56
bump
2018-01-18 22:23:37 +01:00
Frank Denis
35a65bc2fd
Use single quotes in the TOML file, mention that paths are relative
...
Fixes #5
2018-01-18 20:41:33 +01:00
Frank Denis
0fcbbfda1f
Add systemd readiness notification
2018-01-18 15:31:08 +01:00
Frank Denis
941a7b6f4f
Bring FS info level down to INFO, but store this information with the cert
2018-01-18 14:58:57 +01:00
Frank Denis
25664b9a99
Be more tolerant
2018-01-18 14:49:51 +01:00
Frank Denis
ed352cc28c
Reduce verbosity
2018-01-18 14:46:19 +01:00
Frank Denis
7e86477a7d
Make megacheck happier
2018-01-18 14:28:05 +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
b0f6a04dc4
Reserve require_nofilter
2018-01-18 13:04:50 +01:00
Frank Denis
41a9bf5bf3
Add require_nolog and require_dnssec filters
2018-01-18 13:01:16 +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
8429df82fd
Perform an initial benchmark to use servers with the lowest latency
...
(initially according to the certificate rtt)
2018-01-17 22:12:34 +01:00
Frank Denis
9dcd37093d
Use all resolvers simultaneously, even the ones from remote sources.
...
Fireworks!
2018-01-17 21:41:36 +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
c46498c1d3
Nits
2018-01-17 17:25:43 +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
9f8bce28a4
Fix forwarding of subdomains
2018-01-17 16:16:22 +01:00
Frank Denis
f35357ef88
Simplify the forwarding syntax
2018-01-17 16:06:30 +01:00
Frank Denis
203cfafe35
Add a forwarding rules example
2018-01-17 12:34:05 +01:00
Frank Denis
adcdb94d99
Allow comments in the fowarding rules
2018-01-17 12:27:29 +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
6ba5749c91
Freformat
2018-01-17 09:50:21 +01:00
Frank Denis
96dadc7aca
Forwarding plugin
2018-01-17 09:44:03 +01:00
Frank Denis
1b38364e48
Another example
2018-01-17 08:47:47 +01:00
Frank Denis
404fcea50b
Pattern matching in blacklists: done
2018-01-17 08:46:42 +01:00
Frank Denis
548d97989b
Comment
2018-01-17 02:42:01 +01:00
Frank Denis
170e2e816e
Implement blocking, fully compatible with rules from version 1
2018-01-17 02:40:47 +01:00
Frank Denis
0dcf2c9e06
Split plugins into individual files
2018-01-16 18:21:17 +01:00
Frank Denis
796186a078
Add support for LTSV query logging
2018-01-16 18:10:04 +01:00
Frank Denis
004fbef395
Fix source cache
2018-01-16 00:37:04 +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
b945e23101
Use time.Since()
2018-01-14 23:53:17 +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
9640a38ff8
More explicit example name
2018-01-14 00:47:22 +01:00
Frank Denis
c3edfb0637
Don't print server public keys
2018-01-14 00:43:57 +01:00
Frank Denis
32b72f3eb3
up
2018-01-14 00:36:46 +01:00
Frank Denis
c90befd5a8
Fix getOne()
2018-01-14 00:34:28 +01:00
Frank Denis
9b6d527045
Better explain what cache_file should be set to
2018-01-14 00:24:05 +01:00
Frank Denis
4fef1a705c
Fix source cache
2018-01-14 00:20:22 +01:00
Frank Denis
5a65a3a084
Correct format
2018-01-14 00:17:46 +01:00
Frank Denis
01d424a942
Use net.ParseIP() to add missing port numbers
2018-01-14 00:15:01 +01:00
Frank Denis
1b7b6418f1
Restrict the set of resolvers used from a remote source
2018-01-14 00:10:20 +01:00
Frank Denis
13e30ade2b
Skip empty lines in the CSV file
2018-01-13 23:53:33 +01:00
Frank Denis
a361aa52f3
Preliminary support for remote sources
2018-01-13 23:52:44 +01:00
Frank Denis
e9faf4368c
Load the toml file from the current directory by default
2018-01-13 00:14:12 +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
822ae27a46
Always use negative caching except on srvfail (and obviously on success)
2018-01-10 23:26:03 +01:00
Frank Denis
1527d6ed5e
Improve caching
2018-01-10 22:47:29 +01:00
Frank Denis
3dd473910b
Doc
2018-01-10 19:49:39 +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
b60c728067
If computeCacheKey ever returns an error, bubble it up
2018-01-10 19:23:24 +01:00
Frank Denis
132add7955
Use a LRU for the cache
2018-01-10 19:02:43 +01:00
Frank Denis
8e73bb4a2c
Working DNS cache
2018-01-10 18:53:09 +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
fb16eadb24
Single entry for now
2018-01-10 16:43:11 +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
32a8a3d3e2
Get the path to the config file from the command line
2018-01-10 13:40:50 +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
20e3182692
Improve the plugins interface
2018-01-10 10:11:59 +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
705cf440b1
Skip queries without a question
2018-01-10 03:04:13 +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
ab9006e74c
Be more tolerant with invalid/unsupported certificates
2018-01-10 00:38:37 +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
ce5e0c8031
Try to retrieve the certificates using UDP before TCP
2018-01-09 18:37:37 +01:00
Frank Denis
841bf65d61
Reorganize
2018-01-09 18:32:14 +01:00