From ae554a32f32c7ffddd1a3495d47d4369747187b9 Mon Sep 17 00:00:00 2001 From: Shibby Date: Wed, 28 May 2014 14:18:32 +0200 Subject: [PATCH] dnscrypt-proxy 1.4.0 --- release/src/router/dnscrypt/.gitignore | 121 ++++ release/src/router/dnscrypt/ChangeLog | 632 +++++++++++++++++++++ release/src/router/dnscrypt/Makefile.am | 3 + release/src/router/dnscrypt/Makefile.in | 83 ++- release/src/router/dnscrypt/NEWS | 13 + .../src/router/dnscrypt/README-PLUGINS.markdown | 3 +- .../src/router/dnscrypt/README-WINDOWS.markdown | 34 +- release/src/router/dnscrypt/README.markdown | 195 ++++--- .../src/router/dnscrypt/autom4te.cache/output.0 | 33 +- .../src/router/dnscrypt/autom4te.cache/output.1 | 33 +- .../src/router/dnscrypt/autom4te.cache/output.2 | 33 +- .../src/router/dnscrypt/autom4te.cache/traces.0 | 177 +++--- .../src/router/dnscrypt/autom4te.cache/traces.1 | 420 +++++++------- .../src/router/dnscrypt/autom4te.cache/traces.2 | 177 +++--- release/src/router/dnscrypt/config.h.in | 3 + release/src/router/dnscrypt/configure | 33 +- release/src/router/dnscrypt/configure.ac | 5 +- release/src/router/dnscrypt/dnscrypt-resolvers.csv | 35 ++ .../src/router/dnscrypt/dnscrypt-resolvers.csv.sig | Bin 0 -> 72 bytes release/src/router/dnscrypt/man/dnscrypt-proxy.8 | 10 +- .../router/dnscrypt/man/dnscrypt-proxy.8.markdown | 8 +- release/src/router/dnscrypt/man/hostip.8 | 4 +- release/src/router/dnscrypt/man/hostip.8.markdown | 2 +- .../dnscrypt/org.dnscrypt.osx.DNSCryptProxy.plist | 1 + .../src/router/dnscrypt/packages/debian/changelog | 2 +- .../src/router/dnscrypt/packages/debian/control | 10 +- .../src/router/dnscrypt/packages/debian/copyright | 4 +- .../packages/debian/dnscrypt-proxy.default | 37 +- .../dnscrypt/packages/debian/dnscrypt-proxy.init | 133 +++++ .../packages/debian/dnscrypt-proxy.upstart | 7 +- release/src/router/dnscrypt/packages/fpm/fpm.sh | 6 +- .../files/dnscrypt-proxy_1_2_0.initd | 21 +- .../dnscrypt/packages/homebrew/dnscrypt-proxy.rb | 29 - release/src/router/dnscrypt/src/hostip/options.c | 5 +- .../src/libevent-modified/autom4te.cache/output.0 | 15 +- .../src/libevent-modified/autom4te.cache/output.1 | 15 +- .../src/libevent-modified/autom4te.cache/output.2 | 15 +- .../src/libevent-modified/autom4te.cache/traces.0 | 34 +- .../src/libevent-modified/autom4te.cache/traces.1 | 84 +-- .../src/libevent-modified/autom4te.cache/traces.2 | 34 +- .../src/libevent-modified/bufferevent_pair.c | 5 +- .../dnscrypt/src/libevent-modified/configure | 15 +- .../dnscrypt/src/libevent-modified/configure.ac | 13 +- .../dnscrypt/src/libevent-modified/epoll_sub.c | 13 + .../router/dnscrypt/src/libevent-modified/evdns.c | 21 +- .../example-ldns-opendns-set-client-ip.c | 30 +- .../src/plugins/example-logging/example-logging.c | 2 +- release/src/router/dnscrypt/src/proxy/Makefile.am | 5 +- release/src/router/dnscrypt/src/proxy/Makefile.in | 31 +- release/src/router/dnscrypt/src/proxy/app.c | 5 +- .../router/dnscrypt/src/proxy/dnscrypt_client.c | 10 + .../src/router/dnscrypt/src/proxy/dnscrypt_proxy.h | 14 + release/src/router/dnscrypt/src/proxy/minicsv.c | 106 ++++ release/src/router/dnscrypt/src/proxy/minicsv.h | 32 ++ release/src/router/dnscrypt/src/proxy/options.c | 280 ++++++++- release/src/router/dnscrypt/src/proxy/options.h | 2 + .../src/router/dnscrypt/src/proxy/udp_request.c | 22 +- .../router/dnscrypt/src/proxy/windows_service.c | 126 ++-- .../router/dnscrypt/src/proxy/windows_service.h | 14 +- 59 files changed, 2424 insertions(+), 831 deletions(-) create mode 100644 release/src/router/dnscrypt/.gitignore create mode 100644 release/src/router/dnscrypt/dnscrypt-resolvers.csv create mode 100644 release/src/router/dnscrypt/dnscrypt-resolvers.csv.sig create mode 100644 release/src/router/dnscrypt/packages/debian/dnscrypt-proxy.init delete mode 100644 release/src/router/dnscrypt/packages/homebrew/dnscrypt-proxy.rb create mode 100644 release/src/router/dnscrypt/src/proxy/minicsv.c create mode 100644 release/src/router/dnscrypt/src/proxy/minicsv.h diff --git a/release/src/router/dnscrypt/.gitignore b/release/src/router/dnscrypt/.gitignore new file mode 100644 index 0000000000..7fa37b9a00 --- /dev/null +++ b/release/src/router/dnscrypt/.gitignore @@ -0,0 +1,121 @@ +*.cmake +*.dSYM +*.la +*.lo +*.log +*.o +*.scan +*.status +*.tar.* +*~ +.DS_Store +.deps +.done +.libs +INSTALL +Makefile +Makefile.in +aclocal.m4 +android-toolchain +autom4te.cache +build +compile +confdefs.h +config.* +configure +depcomp +install-sh +libltdl +libtool +ltmain.sh +m4/argz.m4 +m4/libtool.m4 +m4/ltdl.m4 +m4/ltoptions.m4 +m4/ltsugar.m4 +m4/ltversion.m4 +m4/lt~obsolete.m4 +man/*.html +man/Makefile.in +missing +probes.h +probes_dnscrypt_proxy.h +src/*.o +src/.deps +src/Makefile.in +src/hostip/hostip +src/include/Doxyfile +src/include/dnscrypt/version.h +src/include/html/ +src/include/latex/ +src/libevent-modified/include/event2/event-config.h +src/libevent-modified/libevent.pc +src/libevent-modified/libevent_openssl.pc +src/libevent-modified/libevent_pthreads.pc +src/libevent-modified/m4/libtool.m4 +src/libevent-modified/m4/ltoptions.m4 +src/libevent-modified/m4/ltversion.m4 +src/libevent-modified/sample/dns-example +src/libevent-modified/sample/event-test +src/libevent-modified/sample/hello-world +src/libevent-modified/sample/http-server +src/libevent-modified/sample/signal-test +src/libevent-modified/sample/time-test +src/libevent-modified/test/bench +src/libevent-modified/test/bench_cascade +src/libevent-modified/test/bench_http +src/libevent-modified/test/bench_httpclient +src/libevent-modified/test/regress +src/libevent-modified/test/rpcgen-attempted +src/libevent-modified/test/test-changelist +src/libevent-modified/test/test-eof +src/libevent-modified/test/test-init +src/libevent-modified/test/test-ratelim +src/libevent-modified/test/test-time +src/libevent-modified/test/test-weof +src/libevent-modified/test/test.sh.trs +src/libevent/*.la +src/libevent/*.lo +src/libevent/*.pc +src/libevent/include/event2/event-config.h +src/libevent/m4/libtool.m4 +src/libevent/m4/ltoptions.m4 +src/libevent/m4/ltversion.m4 +src/libevent/sample/dns-example +src/libevent/sample/event-test +src/libevent/sample/hello-world +src/libevent/sample/http-server +src/libevent/sample/le-proxy +src/libevent/sample/signal-test +src/libevent/sample/time-test +src/libevent/test/bench +src/libevent/test/bench_cascade +src/libevent/test/bench_http +src/libevent/test/bench_httpclient +src/libevent/test/regress +src/libevent/test/rpcgen-attempted +src/libevent/test/test-changelist +src/libevent/test/test-eof +src/libevent/test/test-init +src/libevent/test/test-ratelim +src/libevent/test/test-time +src/libevent/test/test-weof +src/libnacl/ +src/libsodium/m4/argz.m4 +src/libsodium/m4/libtool.m4 +src/libsodium/m4/ltdl.m4 +src/libsodium/m4/ltoptions.m4 +src/libsodium/m4/ltsugar.m4 +src/libsodium/m4/ltversion.m4 +src/libsodium/m4/lt~obsolete.m4 +src/libsodium/src/libsodium/include/sodium/version.h +src/plugins/.tmp +src/plugins/example-ldns-blocking/example-ldns-blocking.plist/ +src/plugins/example-ldns-opendns-deviceid/example-ldns-opendns-deviceid.plist/ +src/proxy/Makefile.in +src/proxy/dnscrypt-proxy +src/proxy/registry.txt +stamp-* +test-driver +testing +update-changelog.sh diff --git a/release/src/router/dnscrypt/ChangeLog b/release/src/router/dnscrypt/ChangeLog index 5077394f11..a20cc3e556 100644 --- a/release/src/router/dnscrypt/ChangeLog +++ b/release/src/router/dnscrypt/ChangeLog @@ -1,3 +1,635 @@ +* Thu Apr 24 22:25:06 2014 -0700 + + Do not document --reinstall + +* Thu Apr 24 22:24:41 2014 -0700 + + Document how to open an elevated command prompt + +* Thu Apr 24 17:44:37 2014 -0700 + + Make dnscrypt-proxy half-decent on Windows + +* Thu Apr 24 23:23:49 2014 +0000 + + Add windows_service_registry_write_string(() + +* Wed Apr 23 23:10:14 2014 -0700 + + Quote dnscrypt-proxy + +* Wed Apr 23 21:38:21 2014 -0700 + + No need to check for inet_pton after all + +* Wed Apr 23 21:37:49 2014 -0700 + + Fu fu fu Windows, fu fu fuuuuu + +* Wed Apr 23 21:24:49 2014 -0700 + + Define a replacement inet_pton() function for Windows + +* Wed Apr 23 21:10:17 2014 -0700 + + Use inet_pton() instead of inet_aton() + +* Wed Apr 23 12:56:00 2014 -0700 + + Revert cf5a85b255f86db8b2c5ec4fe45aa383903a69bb + +* Wed Apr 23 08:20:26 2014 -0700 + + Update d0wn entries, requested by d0wn + +* Tue Apr 22 22:17:05 2014 -0700 + + Update dnscrypt-resolvers.csv signature + +* Tue Apr 22 22:12:54 2014 -0700 + + Update ns4.ca.dns.opennic.glue signature, via Nova King + +* Tue Apr 22 20:08:48 2014 -0700 + + Sign .csv file + +* Tue Apr 22 20:06:13 2014 -0700 + + Add CloudNS Tor addresses + +* Tue Apr 22 08:12:15 2014 -0700 + + Mention DNSCrypt-OSXClient, a new universal client for OSX. + +* Mon Apr 21 21:12:31 2014 -0700 + + Do not skip the last row of the CSV file. + +* Mon Apr 21 14:04:08 2014 -0700 + + Mention extra plugins + +* Mon Apr 21 14:00:26 2014 -0700 + + Markdown fixups + +* Mon Apr 21 13:58:36 2014 -0700 + + Update documentation + +* Mon Apr 21 13:58:17 2014 -0700 + + Do not recommend logging to /tmp + +* Mon Apr 21 13:01:01 2014 -0700 + + opennic-ca-ns17 is actually in Fremont, CA, US. + +* Mon Apr 21 12:53:23 2014 -0700 + + Full country names + +* Mon Apr 21 12:50:16 2014 -0700 + + for d0wn and OpenNIC servers, place the country code first to improve sorting + +* Mon Apr 21 12:46:06 2014 -0700 + + OK Turtles is okTurtles + +* Mon Apr 21 12:44:53 2014 -0700 + + opendns-ipv6 description should be unique + +* Mon Apr 21 12:44:03 2014 -0700 + + Sort, and add OpenDNS IPv6 and OpenDNS Familyshield + +* Mon Apr 21 12:35:00 2014 -0700 + + Complete d0wn servers + +* Mon Apr 21 12:33:18 2014 -0700 + + CSV is hard + +* Mon Apr 21 12:32:21 2014 -0700 + + Add missing version # + +* Mon Apr 21 12:31:13 2014 -0700 + + Missing , + +* Mon Apr 21 12:30:18 2014 -0700 + + Fix CSV + +* Mon Apr 21 12:28:38 2014 -0700 + + More d0wn servers + +* Mon Apr 21 12:17:31 2014 -0700 + + Phew, NovaKing has so many resolvers... + +* Mon Apr 21 12:10:01 2014 -0700 + + Slowly complete the list of resolvers... + +* Mon Apr 21 11:48:13 2014 -0700 + + Add dnscrypt.eu IPv6 addresses + +* Mon Apr 21 11:24:47 2014 -0700 + + Remove unneeded quotes from CSV file + +* Mon Apr 21 11:23:24 2014 -0700 + + Remove empty records from CSV file + +* Mon Apr 21 11:23:01 2014 -0700 + + Cleanup CSV file + +* Fri Apr 18 04:56:18 2014 -0700 + + Plugins shouldn't be considered experimental any more + +Merge: cadf94b d005fa4 +* Thu Apr 17 08:18:14 2014 -0700 + + Merge pull request #91 from pysiak/master + + Update GEO coordinates and pubkey for Soltysiak + +* Thu Apr 17 13:31:21 2014 +0200 + + Update GEO coordinates and pubkey for Soltysiak + +* Thu Apr 17 00:21:22 2014 -0700 + + Better usage() + +* Thu Apr 17 00:06:43 2014 -0700 + + Add ResolverName and ResolversList to the Windows registry keys + +* Wed Apr 16 23:58:19 2014 -0700 + + Install dnscrypt-resolvers.csv + +* Wed Apr 16 23:48:43 2014 -0700 + + Move the list of resolvers to $pkgdatadir + +* Wed Apr 16 23:22:11 2014 -0700 + + New option -R to automatically pick resolver config from a name + +* Wed Apr 16 23:21:41 2014 -0700 + + Initialize the default resolver name to NULL + +* Wed Apr 16 21:30:20 2014 -0700 + + Open the CSV file in binary mode. + +* Wed Apr 16 21:27:50 2014 -0700 + + Portably computing the size of a file in C is not a solved problem. + https://www.securecoding.cert.org/confluence/display/seccode/FIO19-C.+Do+not+use+fseek()+and+ftell()+to+compute+the+size+of+a+regular+file + +* Wed Apr 16 20:45:09 2014 -0700 + + Define the path to dnscrypt-resolvers.csv + +* Wed Apr 16 20:12:59 2014 -0700 + + Use sodium_mlock() if available. + +* Wed Apr 16 19:51:22 2014 -0700 + + Check for sodium_mlock existence + +* Wed Apr 16 00:28:33 2014 -0700 + + MiniCSV: move macros to minicsv.h + +* Wed Apr 16 00:23:27 2014 -0700 + + Import MiniCSV + +* Wed Apr 16 06:08:11 2014 -0700 + + Downgrade "Received a resolver reply from a different resolver" to LOG_DEBUG + +* Wed Apr 16 06:02:07 2014 -0700 + + Next release will be 1.4.0 + +* Wed Apr 16 06:02:07 2014 -0700 + + Fix buggy retry code. Issue #71 + +* Sat Apr 12 13:33:20 2014 -0700 + + Fragmentation is allowed only if the packet size > the outgoing interface MTU. + +* Wed Apr 9 19:44:42 2014 -0700 + + Require provider information. + +* Wed Apr 9 12:15:28 2014 -0700 + + libevent: disable regress by default, as it requires network communications. + +* Tue Apr 8 14:43:27 2014 -0700 + + + DNSCrypt Tools + +Merge: 72a9e48 4fac7f8 +* Tue Apr 8 11:01:21 2014 -0700 + + Merge pull request #81 from aureq/master + + package compliance with debian distribution + +Merge: 6e646ad 9ee793f +* Mon Apr 7 09:37:11 2014 -0700 + + Merge pull request #87 from Teknocrat/master + + New initd File for Gentoo allows configuration of different DNS servers + +* Mon Apr 7 12:29:21 2014 -0400 + + New initd File for Gentoo allows configuration of different DNS + resolvers vid conf.d config file variables + +* Sat Mar 29 21:34:48 2014 -0700 + + Fix a crash in evdns related to shutting down evdns + (Improved version to deal correctly with probe requests) + Patch from YASUOKA Masahiko; fix for libevent github issue #113. + +* Tue Mar 25 15:23:56 2014 -0700 + + Fix documentation: --resolver-address not --server-address + +* Tue Mar 25 08:06:03 2014 -0700 + + Fix a crash in evdns related to shutting down evdns + Patch from YASUOKA Masahiko; fix for libevent github issue #113. + +* Sun Mar 23 19:15:19 2014 +1100 + + return a fail if stop is request and the process wasn't running + +* Sun Mar 23 19:10:47 2014 +1100 + + pass the configuration to the argument parser + added --brackground to start-stop-daemon so the process is started correctly in the background + only retrieve the most recent pid for the daemon + cosmetic changes with "echo" + if process can't be killed, then return a fail (log_end_msg 1) + +* Sun Mar 23 18:34:24 2014 +1100 + + exclude 'resolvconf' from the upstart script when processing options + +* Sun Mar 23 18:03:45 2014 +1100 + + fixed syntax error in init script + +* Sun Mar 23 17:56:12 2014 +1100 + + debian init script as debian doesn't use upstart + +* Sun Mar 23 17:28:01 2014 +1100 + + removed --user=dnscrypt as moved to dnscrypt-proxy.default instead + +* Sun Mar 23 17:27:24 2014 +1100 + + added 'user=' to the default configuration file + +* Sun Mar 23 16:59:05 2014 +1100 + + added 'resolvconf' package dependency (Suggests only) for the init script to update /etc/resolv.connf + +* Sun Mar 23 16:52:09 2014 +1100 + + added 'resolvconf' variablee for the init script + +* Sun Mar 23 11:56:48 2014 +1100 + + (lintian) description-synopsis-starts-with-article + +* Sun Mar 23 11:54:49 2014 +1100 + + (lintian) dnscrypt-proxy: debian-revision-should-not-be-zero + +* Fri Mar 21 13:43:45 2014 -0700 + + OKTurtles does not support DNSSEC + +* Fri Mar 21 13:28:21 2014 -0700 + + Add OkTurtles to the list of providers. + +* Fri Mar 21 13:20:43 2014 -0700 + + DNSCrypt Winclient does more than OpenDNS and CloudNS now. + +* Fri Mar 21 13:16:34 2014 -0700 + + Prepare for removal of default settings. + +* Wed Mar 5 17:14:11 2014 -0800 + + libevent sync + * Wed Feb 19 06:49:31 2014 +0100 + + Add -Qunused-arguments for clang on macos + + The clang compiler provided with macosx emits warnings like: + + CC bufferevent.lo + clang: warning: argument unused during compilation: '-I .' + clang: warning: argument unused during compilation: '-I ./compat' + clang: warning: argument unused during compilation: '-I ./include' + clang: warning: argument unused during compilation: '-I ./include' + + for each file being compiled. This generates a lot of noise during + compilation making it hard to see "real" errors. This patch mute + those warnings. + +* Sun Feb 9 12:10:05 2014 -0800 + + Simplify hostip example + +* Sun Feb 9 12:04:33 2014 -0800 + + dnscrypt-proxy has been available in Homebrew for a while + +* Sun Feb 9 12:04:04 2014 -0800 + + Update repository. + +* Sun Feb 9 11:58:32 2014 -0800 + + Display something as LOG_NOTICE when the service starts + +* Sun Feb 9 11:58:22 2014 -0800 + + Regen hostip + +* Sun Feb 9 11:45:14 2014 -0800 + + 213.154.224.3 now only accepts connections over TLS. + +* Sun Feb 9 11:36:26 2014 -0800 + + One line for the version is enough. + +* Sun Feb 9 11:33:51 2014 -0800 + + Use LOG_NOTICE level for startup/shutdown messages + +* Sun Feb 9 11:26:08 2014 -0800 + + bufferevent_pair: don't call downcast(NULL) + +* Thu Jan 30 13:06:04 2014 -0800 + + Add dnscrypt.eu IPv6 address for resolver #2 + +* Thu Jan 30 10:07:50 2014 -0800 + + Refer to Noxwizard's repository again. + +Merge: e47ef88 627e26a +* Fri Jan 24 08:33:56 2014 -0800 + + Merge pull request #62 from Shnatsel/master + + Fix applying AppArmor profile on startupp + +Merge: f4c73e9 e3085a8 +* Fri Jan 24 08:33:16 2014 -0800 + + Merge pull request #63 from Shnatsel/fix-etc-defaults + + Fix /etc/default in Ubuntu package + +* Fri Jan 24 19:34:02 2014 +0400 + + Link to resolver lists in /etc/default and note that specifying multiple resolvers is not yet supported + +* Fri Jan 24 19:29:33 2014 +0400 + + Revert "Add OpenNIC alternative root servers to /etc/default/dnscrypt-proxy." + + +* Fri Jan 24 14:44:33 2014 +0400 + + don't fail if loading of AppArmor profile from Upstart script failed for whatever reason + +* Fri Jan 24 14:21:15 2014 +0400 + + Fix a common bug with DNSCrypt having the AppArmor profile defined but not being confined by it + +* Wed Jan 22 16:17:03 2014 -0800 + + libevent: Check if arch has the epoll_create and __NR_epoll_wait syscalls. + Some architectures (like AArch64) do not have deprecated syscalls. + +* Wed Jan 15 11:34:02 2014 -0800 + + New OpenNIC servers in Fremont, CA + +* Mon Jan 13 14:53:54 2014 -0800 + + Typo + +* Mon Jan 13 14:52:13 2014 -0800 + + Link DNSCrypt Windows Service Manager + +* Mon Jan 13 14:47:29 2014 -0800 + + Update dnscrypt.eu resolvers + +Merge: 99ca5c8 57520bc +* Mon Jan 13 14:08:55 2014 -0800 + + Merge pull request #56 from Kami/fix_readme_typo + + Fix typo in the README + +* Mon Jan 13 22:50:53 2014 +0100 + + Fix a typo, argument is called pidfile and not pid-file. + +* Wed Jan 1 17:09:12 2014 +0100 + + Year++ + +* Tue Dec 31 16:36:16 2013 +0100 + + Remove the need for droid-gcc to compile for android + +* Fri Dec 27 20:00:58 2013 +0100 + + libevent typo fixes + +Merge: a4cd640 5cdf433 +* Wed Dec 18 13:14:44 2013 -0800 + + Merge branch 'master' of github.com:jedisct1/dnscrypt-proxy + + * 'master' of github.com:jedisct1/dnscrypt-proxy: + Add OpenNIC alternative root servers to /etc/default/dnscrypt-proxy. + +* Wed Dec 18 13:13:15 2013 -0800 + + Remove references to encryption. + Make it clear that dnscrypt is about authentication, not privacy. + +Merge: d243c7a 52d2c7c +* Fri Dec 13 09:20:46 2013 -0800 + + Merge pull request #48 from pataquets/master + + Add OpenNIC alternative root servers to /etc/default/dnscrypt-proxy. + +* Fri Dec 13 10:54:42 2013 +0100 + + Add OpenNIC alternative root servers to /etc/default/dnscrypt-proxy. + +Merge: c3942f2 e607279 +* Thu Dec 12 20:58:13 2013 -0800 + + Merge pull request #47 from pataquets/patch-2 + + Add OpenNIC alternative DNS servers + +* Fri Dec 13 03:12:40 2013 +0100 + + Add OpenNIC alternative DNS servers + +* Wed Dec 11 22:45:32 2013 -0800 + + Fix hostip default -r arg + +* Sat Dec 7 21:56:29 2013 -0800 + + Update libevent ChangeLog + +* Mon Nov 18 15:00:10 2013 -0800 + + Target iOS 7.1 + +* Sun Nov 17 21:10:31 2013 -0800 + + Remove unmaintained packages + +Merge: 2b48929 f0a155d +* Tue Nov 5 23:24:36 2013 -0800 + + Merge pull request #39 from Shnatsel/master + + Add Debian/Ubuntu packaging + +Merge: 5535ff7 567c700 +* Mon Nov 4 22:15:23 2013 -0800 + + Merge branch 'master' of github.com:jedisct1/dnscrypt-proxy + + * 'master' of github.com:jedisct1/dnscrypt-proxy: + Gentoo ebuild: Backport patch to fix always compiling plugins + Bump libsodium Gentoo ebuild to version 0.4.5 + Update Gentoo ebuilds to use autotools-utils + Add masters attribute to Gentoo overlay layout.conf + +* Mon Nov 4 22:15:06 2013 -0800 + + libevent: Avoid redundant invocations of init_extension_functions for IOCP + +* Sun Nov 3 19:14:58 2013 +0400 + + Added Debian/Ubuntu packaging + +Merge: 34034ca c71e1e4 +* Fri Nov 1 09:16:05 2013 -0700 + + Merge pull request #38 from Strayer/gentoo-ebuild-fixes + + Gentoo ebuild fixes + +* Thu Oct 31 21:31:04 2013 +0100 + + Gentoo ebuild: Backport patch to fix always compiling plugins + +* Wed Oct 30 21:26:01 2013 +0100 + + Bump libsodium Gentoo ebuild to version 0.4.5 + +* Tue Oct 29 23:24:56 2013 +0100 + + Update Gentoo ebuilds to use autotools-utils + +* Tue Oct 29 23:20:59 2013 +0100 + + Add masters attribute to Gentoo overlay layout.conf + +Merge: 659f6cf 3bc5106 +* Fri Nov 1 00:57:34 2013 -0700 + + Merge pull request #37 from Strayer/fix-autotools-configure-arguments + + Handle --disable-plugins* correctly in configure.ac + +* Thu Oct 31 21:06:11 2013 +0100 + + Handle --disable-plugins* correctly in configure.ac + +* Sun Oct 27 12:56:52 2013 -0700 + + port 2053 for the new Polish server + +* Sun Oct 27 12:50:16 2013 -0700 + + Add the new DNSCrypt service in Poland + +Merge: cfd5184 13e171f +* Fri Oct 25 19:35:00 2013 -0700 + + Merge remote-tracking branch 'Shnatsel/master' + + * Shnatsel/master: + bump AppArmor profile modification date + Improve AppArmor profile: - Use @{multiarch} tunable instead of *-linux-gnu* - they are the same on my system, but using the global tunable is more robust/portable - Drop block_suspend capability because it requires Linux >= 3.5 and does not seem to be needed (as of my testing) - Allow access to libpthread and librt, extensive testing indicates it is sometimes needed (libsodium multithreading?) - Allow access to libsodium if it's installed in the system default path with multiarch support instead of just /usr/lib/ and /usr/local/lib + +* Fri Oct 25 19:34:14 2013 +0400 + + bump AppArmor profile modification date + +* Fri Oct 25 19:30:18 2013 +0400 + + Improve AppArmor profile: + - Use @{multiarch} tunable instead of *-linux-gnu* - they are the same on my system, but using the global tunable is more robust/portable + - Drop block_suspend capability because it requires Linux >= 3.5 and does not seem to be needed (as of my testing) + - Allow access to libpthread and librt, extensive testing indicates it is sometimes needed (libsodium multithreading?) + - Allow access to libsodium if it's installed in the system default path with multiarch support instead of just /usr/lib/ and /usr/local/lib + +* Tue Oct 22 13:06:06 2013 -0700 + + Update ChangeLog + * Tue Oct 22 13:05:32 2013 -0700 Check for arc4random_addrandom() presence - Needed for OpenBSD-current. diff --git a/release/src/router/dnscrypt/Makefile.am b/release/src/router/dnscrypt/Makefile.am index e242556be5..2b303009d3 100644 --- a/release/src/router/dnscrypt/Makefile.am +++ b/release/src/router/dnscrypt/Makefile.am @@ -22,3 +22,6 @@ endif SUBDIRS += \ src \ test + +dist_pkgdata_DATA = \ + dnscrypt-resolvers.csv diff --git a/release/src/router/dnscrypt/Makefile.in b/release/src/router/dnscrypt/Makefile.in index 8b8f178e61..afb17860e0 100644 --- a/release/src/router/dnscrypt/Makefile.in +++ b/release/src/router/dnscrypt/Makefile.in @@ -13,6 +13,7 @@ # PARTICULAR PURPOSE. @SET_MAKE@ + VPATH = @srcdir@ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' am__make_running_with_option = \ @@ -86,8 +87,8 @@ DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \ $(top_srcdir)/configure $(am__configure_deps) \ $(srcdir)/config.h.in \ $(top_srcdir)/src/include/dnscrypt/version.h.in \ - $(top_srcdir)/test/Makefile.in COPYING THANKS \ - libltdl/config/compile libltdl/config/config.guess \ + $(top_srcdir)/test/Makefile.in $(dist_pkgdata_DATA) COPYING \ + THANKS libltdl/config/compile libltdl/config/config.guess \ libltdl/config/config.sub libltdl/config/depcomp \ libltdl/config/install-sh libltdl/config/missing \ libltdl/config/ltmain.sh \ @@ -139,6 +140,35 @@ am__can_run_installinfo = \ n|no|NO) false;; \ *) (install-info --version) >/dev/null 2>&1;; \ esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgdatadir)" +DATA = $(dist_pkgdata_DATA) RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ distclean-recursive maintainer-clean-recursive am__recursive_targets = \ @@ -364,6 +394,9 @@ EXTRA_DIST = \ org.dnscrypt.osx.DNSCryptProxy.plist SUBDIRS = dist-build man $(am__append_1) src test +dist_pkgdata_DATA = \ + dnscrypt-resolvers.csv + all: config.h $(MAKE) $(AM_MAKEFLAGS) all-recursive @@ -430,6 +463,27 @@ clean-libtool: distclean-libtool: -rm -f libtool config.lt +install-dist_pkgdataDATA: $(dist_pkgdata_DATA) + @$(NORMAL_INSTALL) + @list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgdatadir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgdatadir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgdatadir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgdatadir)" || exit $$?; \ + done + +uninstall-dist_pkgdataDATA: + @$(NORMAL_UNINSTALL) + @list='$(dist_pkgdata_DATA)'; test -n "$(pkgdatadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgdatadir)'; $(am__uninstall_files_from_dir) # This directory's subdirectories are mostly independent; you can cd # into them and run 'make' without going through this Makefile. @@ -719,9 +773,12 @@ distcleancheck: distclean exit 1; } >&2 check-am: all-am check: check-recursive -all-am: Makefile config.h +all-am: Makefile $(DATA) config.h installdirs: installdirs-recursive installdirs-am: + for dir in "$(DESTDIR)$(pkgdatadir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done install: install-recursive install-exec: install-exec-recursive install-data: install-data-recursive @@ -774,7 +831,7 @@ info: info-recursive info-am: -install-data-am: +install-data-am: install-dist_pkgdataDATA install-dvi: install-dvi-recursive @@ -820,7 +877,7 @@ ps: ps-recursive ps-am: -uninstall-am: +uninstall-am: uninstall-dist_pkgdataDATA .MAKE: $(am__recursive_targets) all install-am install-strip @@ -832,14 +889,14 @@ uninstall-am: distclean-hdr distclean-libtool distclean-tags distcleancheck \ distdir distuninstallcheck dvi dvi-am html html-am info \ info-am install install-am install-data install-data-am \ - install-dvi install-dvi-am install-exec install-exec-am \ - install-html install-html-am install-info install-info-am \ - install-man install-pdf install-pdf-am install-ps \ - install-ps-am install-strip installcheck installcheck-am \ - installdirs installdirs-am maintainer-clean \ - maintainer-clean-generic mostlyclean mostlyclean-generic \ - mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ - uninstall-am + install-dist_pkgdataDATA install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-dist_pkgdataDATA # Tell versions [3.59,3.63) of GNU make to not export all variables. diff --git a/release/src/router/dnscrypt/NEWS b/release/src/router/dnscrypt/NEWS index 2af6627987..030fe1ee70 100644 --- a/release/src/router/dnscrypt/NEWS +++ b/release/src/router/dnscrypt/NEWS @@ -1,4 +1,17 @@ +* Version 1.4.0: + - Security: versions 0.11 to 1.3.3 were vulnerable to a denial of +service when running out of output buffer space. Reported by @iamultra. + - Windows: --uninstall now actually stops the service + - Windows: registry keys are automatically created for a given +provider when installing the service. + - The resolver to use and its configuration can now be specified as a +definition file + the name of the resolver to use. The new +command-line options to use are --resolvers-list= (optional +on non-Windows platforms) and --resolver-name=. This deprecates +--provider-key, --provider-name and --resolver-address. + - Documentation and diagnostics have been improved. + * Version 1.3.3: - Try to send questions as big as the response can be. Upgrading is highly recommended, as the server can refuse to respond to queries using diff --git a/release/src/router/dnscrypt/README-PLUGINS.markdown b/release/src/router/dnscrypt/README-PLUGINS.markdown index f59913e15d..f61703579a 100644 --- a/release/src/router/dnscrypt/README-PLUGINS.markdown +++ b/release/src/router/dnscrypt/README-PLUGINS.markdown @@ -4,8 +4,7 @@ DNSCrypt Plugins Overview -------- -Starting with version 1.1.0, `dnscrypt-proxy` can be extended with -plugins. +`dnscrypt-proxy` can be extended with plugins. A plugin can implement *pre-filters* and *post-filters*. diff --git a/release/src/router/dnscrypt/README-WINDOWS.markdown b/release/src/router/dnscrypt/README-WINDOWS.markdown index 2aabea95e2..48f5213f70 100644 --- a/release/src/router/dnscrypt/README-WINDOWS.markdown +++ b/release/src/router/dnscrypt/README-WINDOWS.markdown @@ -13,18 +13,34 @@ Quickstart [Windows package for dnscrypt](http://dnscrypt.org) 2) Copy the `dnscrypt-proxy.exe` file to any location, as well as the -`libsodium-4.dll` file. Both should be in the same location. If you -are using plugins depending on ldns, copy the ldns DLL as well. +dnscrypt-resolvers.csv file and the DLL files. +All the files should be in the same location. -3) Open a terminal (run `cmd.exe`) and type (you may need to specify +3) Open an elevated command prompt and type (you may need to specify the full path to the file): - dnscrypt-proxy.exe --install + dnscrypt-proxy.exe --resolver-name= --resolvers-list= --test=0 + +Replace `name` with one of the resolvers from CSV file. The (possibly +updated) file can also be viewed online: +[public DNS resolvers supporting DNSCrypt](https://github.com/jedisct1/dnscrypt-proxy/blob/master/dnscrypt-resolvers.csv) + +This command should display the server key fingerprint and exit. If +this is not the case, try a different server. If this is the case, +install the service: + + dnscrypt-proxy.exe --resolver-name= --resolvers-list= --install 4) Change your DNS settings to `127.0.0.1` Congratulations, you're now using DNSCrypt. +How to open an elevated command prompt +-------------------------------------- + +On Windows 8, go to the apps screen, type CMD, and hold the Shift and +Control keys while clicking "Command Prompt". + Advanced usage -------------- @@ -32,7 +48,6 @@ The Windows build of `dnscrypt-proxy` adds the following command-line options: - `--install`: install the proxy as a service. -- `--reinstall`: ditto. - `--uninstall`: uninstall the service. Startup options should specified as subkeys from this registry key: @@ -47,6 +62,8 @@ The following subkeys are recognized and should be self-explanatory: ProviderKey (REG_SZ) ProviderName (REG_SZ) ResolverAddress (REG_SZ) + ResolverName (REG_SZ) + ResolversList (REG_SZ) EDNSPayloadSize (DWORD) MaxActiveRequests (DWORD) TCPOnly (DWORD) @@ -55,6 +72,13 @@ For example, in order to listen to local address `127.0.0.7` instead of `127.0.0.1`, the string value `127.0.0.7` should be set for the key `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\dnscrypt-proxy\Parameters\LocalAddress`. +Mandatory entries to run `dnscrypt-proxy` as a Windows service are: +- `ResolversList`: has to be set to the full path to the `dnscrypt-resolvers.csv` file. +- `ResolverName`: has to be set to the resolver name to be used. See +the `dnscrypt-resolvers.csv` file for a list of compatible public resolvers. + +These entries are automatically created/updated when installing the service. + Plugins should be listed as full paths to .DLL files, optionally followed by a coma and plugin-specific arguments. diff --git a/release/src/router/dnscrypt/README.markdown b/release/src/router/dnscrypt/README.markdown index dc0e339b27..c690f5561d 100644 --- a/release/src/router/dnscrypt/README.markdown +++ b/release/src/router/dnscrypt/README.markdown @@ -8,10 +8,9 @@ A tool for securing communications between a client and a DNS resolver. Description ----------- -dnscrypt-proxy provides local service which can be used directly as +`dnscrypt-proxy` provides local service which can be used directly as your local resolver or as a DNS forwarder, authenticating requests -using the DNSCrypt protocol and passing them to an upstream server, by -default OpenDNS. +using the DNSCrypt protocol and passing them to an upstream server. The DNSCrypt protocol uses high-speed high-security elliptic-curve cryptography and is very similar to [DNSCurve](http://dnscurve.org/), @@ -23,56 +22,6 @@ network, which is often the weakest point of the chain, against man-in-the-middle attacks. It also provides some confidentiality to DNS queries. -Current list of free, DNSCrypt-enabled resolvers ------------------------------------------------- - -* [OpenDNS](http://www.opendns.com) - - Server address: 208.67.220.220:443 - - Provider name: 2.dnscrypt-cert.opendns.com - - Public key: B735:1140:206F:225D:3E2B:D822:D7FD:691E:A1C3:3CC8:D666:8D0C:BE04:BFAB:CA43:FB79 - -* [CloudNS](https://cloudns.com.au/) - No logs, DNSSEC - * Canberra, Australia - - Server address: 113.20.6.2:443 or gc2tzw6lbmeagrp3.onion:443 - - Provider name: 2.dnscrypt-cert.cloudns.com.au - - Public key: 1971:7C1A:C550:6C09:F09B:ACB1:1AF7:C349:6425:2676:247F:B738:1C5A:243A:C1CC:89F4 - * Sydney, Australia - - Server address: 113.20.8.17:443 or l65q62lf7wnfme7m.onion:443 - - Provider name: 2.dnscrypt-cert-2.cloudns.com.au - - Public key: 67A4:323E:581F:79B9:BC54:825F:54FE:1025:8B4F:37EB:0D07:0BCE:4010:6195:D94F:E330 - -* [OpenNIC](http://www.opennicproject.org/) - No logs - * Japan - - Server address: 106.186.17.181:2053 - - Provider name: 2.dnscrypt-cert.ns2.jp.dns.opennic.glue - - Public key: 8768:C3DB:F70A:FBC6:3B64:8630:8167:2FD4:EE6F:E175:ECFD:46C9:22FC:7674:A1AC:2E2A - * UK - * NovaKing (ns8) - - Server address: 185.19.104.45:443 - - Provider name: 2.dnscrypt-cert.ns8.uk.dns.opennic.glue - - Public key: A17C:06FC:BA21:F2AC:F4CD:9374:016A:684F:4F56:564A:EB30:A422:3D9D:1580:A461:B6A6 - * NovaKing (ns9) - - Server address: 185.19.105.6:443 - - Provider name: 2.dnscrypt-cert.ns9.uk.dns.opennic.glue - - Public key: E864:80D9:DFBD:9DB4:58EA:8063:292F:EC41:9126:8394:BC44:FAB8:4B6E:B104:8C3B:E0B4 - * NovaKing (ns10) - - Server address: 185.19.105.14:443 - - Provider name: 2.dnscrypt-cert.ns10.uk.dns.opennic.glue - - Public key: B1AB:7025:1119:9AEE:E42E:1B12:F2EF:12D4:53D9:CD92:E07B:9AF4:4794:F6EB:E5A4:F725 - -* [DNSCrypt.eu](http://dnscrypt.eu/) - No logs, DNSSEC - * Holland - - Server address: 176.56.237.171:443 - - Provider name: 2.dnscrypt-cert.dnscrypt.eu - - Public key: 67C0:0F2C:21C5:5481:45DD:7CB4:6A27:1AF2:EB96:9931:40A3:09B6:2B8D:1653:1185:9C66 - -* [Soltysiak.com](http://dc1.soltysiak.com/) - No logs, DNSSEC - * Poznan, Poland - - Server address: 178.216.201.222:2053 - - Provider name: 2.dnscrypt-cert.soltysiak.com - - Public key: 25C4:E188:2915:4697:8F9C:2BBD:B6A7:AFA4:01ED:A051:0508:5D53:03E7:1928:C066:8F21 - - Download and integrity check ---------------------------- @@ -80,16 +29,16 @@ DNSCrypt can be downloaded here: [dnscrypt download](http://dnscrypt.org) After having downloaded a file, compute its SHA256 digest. For example: - $ openssl dgst -sha256 dnscrypt-proxy-1.3.3.tar.bz2 + $ openssl dgst -sha256 dnscrypt-proxy-1.4.0.tar.bz2 Verify this digest against the expected one, that can be retrieved using a simple DNS query: - $ drill -D TXT dnscrypt-proxy-1.3.3.tar.bz2.download.dnscrypt.org + $ drill -D TXT dnscrypt-proxy-1.4.0.tar.bz2.download.dnscrypt.org or - $ dig +dnssec TXT dnscrypt-proxy-1.3.3.tar.bz2.download.dnscrypt.org + $ dig +dnssec TXT dnscrypt-proxy-1.4.0.tar.bz2.download.dnscrypt.org If the content of the TXT record doesn't match the SHA256 digest you computed, please file a bug report on Github as soon as possible and @@ -113,7 +62,7 @@ the paths the dynamic linker is going to look at. Before issuing # echo /usr/local/lib > /etc/ld.so.conf.d/usr_local_lib.conf -Now, download the latest dnscrypt-proxy version and extract it: +Now, download the latest `dnscrypt-proxy` version and extract it: $ bunzip2 -cd dnscrypt-proxy-*.tar.bz2 | tar xvf - $ cd dnscrypt-proxy-* @@ -142,16 +91,33 @@ If you need a simple graphical user interface in order to start/stop the proxy and change your DNS settings, check out the following project: -- [DNSCrypt WinClient](https://github.com/FivfBx2dOQTC3gc8YS4yMNo0el/dnscrypt-winclient): +- [DNSCrypt WinClient](https://github.com/Noxwizard/dnscrypt-winclient): Easily enable/disable DNSCrypt on multiple adapters. Supports different ports and protocols, IPv6, parental controls and the proxy -can act as a gateway service. Windows only, written in .NET. Designed -for OpenDNS and CloudNS. +can act as a gateway service. Windows only, written in .NET. -Server-side proxy ------------------ +- [DNSCrypt Windows Service Manager](http://simonclausen.dk/projects/dnscrypt-winservicemgr/): +Assists in setting up DNSCrypt as a service, configure it and change network adapter DNS +settings to use DNSCrypt. It includes the option to use TCP/UDP protocol, IPV4/IPV6 +connectivity, choice of network adapter to configure, as well as configurations for currently +available DNSCrypt providers. + +- [DNSCrypt OSXClient](https://github.com/alterstep/dnscrypt-osxclient): +Mac OSX application to control the DNSCrypt Proxy. + +- [DNSCrypt Tools for Linux](http://opendesktop.org/content/show.php/DNScrypt+Tools?content=164488): +A set of tools for `dnscrypt-proxy`. Features a start and stop button as well as options to enable +or disable from startup. Developed for Porteus Linux. -[DNSCrypt-Wrapper](https://github.com/Cofyc/dnscrypt-wrapper) is a +DNSCrypt-enabled resolvers +-------------------------- + +To get started, you can use any of the +[public DNS resolvers supporting DNSCrypt](https://github.com/jedisct1/dnscrypt-proxy/blob/master/dnscrypt-resolvers.csv). + +If you want to add DNSCrypt support to your own public or private +resolver, check out +[DNSCrypt-Wrapper](https://github.com/Cofyc/dnscrypt-wrapper), a server-side dnscrypt proxy that works with any name resolver. Usage @@ -164,11 +130,14 @@ for this user's uid as soon as possible. The easiest way to start the daemon is: - # dnscrypt-proxy --daemonize + # dnscrypt-proxy --daemonize --resolver-name= + +Replace `` with the name of the resolver you want to +use (the first column in the list of public resolvers). The proxy will accept incoming requests on 127.0.0.1, tag them with an -authentication code, forward them to OpenDNS resolvers, and validate -each answer before passing it to the client. +authentication code, forward them to the resolver, and validate each +answer before passing it to the client. Given such a setup, in order to actually start using DNSCrypt, you need to update your `/etc/resolv.conf` file and replace your current @@ -182,41 +151,35 @@ Other common command-line switches include: * `--local-address=[:port]` in order to locally bind a different IP address than 127.0.0.1 * `--logfile=` in order to write log data to a dedicated file. By - default, logs are sent to stdout if the server is running in foreground, - and to syslog if it is running in background. +default, logs are sent to stdout if the server is running in foreground, +and to syslog if it is running in background. * `--loglevel=` if you need less verbosity in log files. * `--max-active-requests=` to set the maximum number of active - requests. The default value is 250. -* `--pid-file=` in order to store the PID number to a file. +requests. The default value is 250. +* `--pidfile=` in order to store the PID number to a file. * `--user=` in order to chroot()/drop privileges. +* `--resolvers-list=`: to specity the path to the CSV file containing +the list of available resolvers, and the parameters to use them. * `--test` in order to check that the server-side proxy is properly configured and that a valid certificate can be used. This is useful for monitoring your own dnscrypt proxy. See the man page for more information. -DNSCrypt comes pre-configured for OpenDNS, although the +The `--resolver-address=[:port]`, `--provider-name=` -and `--provider-key=` can be specified in -order to change the default settings. +and `--provider-key=` switches can be specified in +order to use a DNSCrypt-enabled recursive DNS service not listed in +the configuration file. Installation as a service (Windows only) ---------------------------------------- The proxy can be installed as a Windows service. -Copy the `dnscrypt-proxy.exe` file to any location, as well as the -`libsodium-4.dll` file. Both should be in the same location. If you -are using plugins depending on ldns, copy the ldns DLL as well. Then open a -terminal and type (eventually with the full path to `dnscrypt-proxy.exe`): - - dnscrypt-proxy.exe --install - -It will install a new service named `dnscrypt-proxy`. - -After being stopped, the service can be removed with: - - dnscrypt-proxy.exe --uninstall +See +[README-WINDOWS.markdown](https://github.com/jedisct1/dnscrypt-proxy/blob/master/README-WINDOWS.markdown) +for more information on DNSCrypt on Windows. Using DNSCrypt in combination with a DNS cache ---------------------------------------------- @@ -269,7 +232,7 @@ As a workaround, the port number can be changed using the `--resolver-port=` option. For example, OpenDNS servers reply to queries sent to ports 53, 443 and 5353. -By default, dnscrypt-proxy sends outgoing queries to UDP port 443. +By default, `dnscrypt-proxy` sends outgoing queries to UDP port 443. In addition, the DNSCrypt proxy can force outgoing queries to be sent over TCP. For example, TCP port 443, which is commonly used for @@ -322,3 +285,63 @@ This tool can be useful for starting some services before `dnscrypt-proxy`. Queries made by `hostip` are not authenticated. + +Plugins +------- + +`dnscrypt-proxy` can be extended with plugins. A plugin acts as a +filter that can locally inspect and modify queries and responses. + +The plugin API is documented in the `README-PLUGINS.markdown` file. + +Any number of plugins can be combined (chained) by repeating the +`--plugin` command-line switch. + +The default distribution ships with some example plugins: + +* `libdcplugin_example_ldns_aaaa_blocking`: Directly return an empty +response to AAAA queries + +Example usage: + + # dnscrypt-proxy ... \ + --plugin libdcplugin_example_ldns_aaaa_blocking.la + +If IPv6 connectivity is not available on your network, this plugin +avoids waiting for responses about IPv6 addresses from upstream +resolvers. This can improve your web browsing experience. + +* `libdcplugin_example_ldns_blocking`: Block specific domains and IP +addresses. + +This plugin returns a REFUSED response if the query name is in a +llist of blacklisted names, or if at least one of the returned +IP addresses happens to be in a list of blacklisted IPs. + +Recognized switches are: + + --domains= + --ips= + +A file should list one entry per line. + +IPv4 and IPv6 addresses are supported. +For names, leading and trailing wildcards (`*`) are also supported +(e.g. `*xxx*`, `*.example.com`, `ads.*`) + + # dnscrypt-proxy ... \ + --plugin libdcplugin_example,--ips=/etc/blk-ips,--domains=/etc/blk-names + +* `libdcplugin_example-logging`: Log client queries + +This plugin logs the client queries to the standard output (default) +or to a file. + + # dnscrypt-proxy ... \ + --plugin libdcplugin_example_logging,/var/log/dns.log + +* Extra plugins + +Additional plugins can be found on Github: +[Masquerade plugin](https://github.com/gchehab/dnscrypt-plugin-masquerade), +[GeoIP plugin](https://github.com/jedisct1/dnscrypt-plugin-geoip-block). diff --git a/release/src/router/dnscrypt/autom4te.cache/output.0 b/release/src/router/dnscrypt/autom4te.cache/output.0 index de17229628..a202d8ccaf 100644 --- a/release/src/router/dnscrypt/autom4te.cache/output.0 +++ b/release/src/router/dnscrypt/autom4te.cache/output.0 @@ -1,6 +1,6 @@ @%:@! /bin/sh @%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.69 for dnscrypt-proxy 1.3.4. +@%:@ Generated by GNU Autoconf 2.69 for dnscrypt-proxy 1.4.0. @%:@ @%:@ Report bugs to . @%:@ @@ -594,8 +594,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='dnscrypt-proxy' PACKAGE_TARNAME='dnscrypt-proxy' -PACKAGE_VERSION='1.3.4' -PACKAGE_STRING='dnscrypt-proxy 1.3.4' +PACKAGE_VERSION='1.4.0' +PACKAGE_STRING='dnscrypt-proxy 1.4.0' PACKAGE_BUGREPORT='http://dnscrypt.org' PACKAGE_URL='' @@ -1376,7 +1376,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures dnscrypt-proxy 1.3.4 to adapt to many kinds of systems. +\`configure' configures dnscrypt-proxy 1.4.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1446,7 +1446,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of dnscrypt-proxy 1.3.4:";; + short | recursive ) echo "Configuration of dnscrypt-proxy 1.4.0:";; esac cat <<\_ACEOF @@ -1466,7 +1466,7 @@ Optional Features: --disable-ssp Do not compile with -fstack-protector --disable-pie Do not produce position independent executables --enable-debug For maintainers only - please do not use - --enable-plugins Enable support for plugins - experimental + --enable-plugins Enable support for plugins --enable-relaxed-plugins-permissions Allow loading plugins owned by other users --enable-plugins-root Only load plugins sitting in the default plugins @@ -1575,7 +1575,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -dnscrypt-proxy configure 1.3.4 +dnscrypt-proxy configure 1.4.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2044,7 +2044,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by dnscrypt-proxy $as_me 1.3.4, which was +It was created by dnscrypt-proxy $as_me 1.4.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2986,7 +2986,7 @@ fi # Define the identity of the package. PACKAGE='dnscrypt-proxy' - VERSION='1.3.4' + VERSION='1.4.0' cat >>confdefs.h <<_ACEOF @@ -15379,6 +15379,17 @@ _ACEOF fi done +for ac_func in sodium_mlock +do : + ac_fn_c_check_func "$LINENO" "sodium_mlock" "ac_cv_func_sodium_mlock" +if test "x$ac_cv_func_sodium_mlock" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_SODIUM_MLOCK 1 +_ACEOF + +fi +done + @@ -17063,7 +17074,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by dnscrypt-proxy $as_me 1.3.4, which was +This file was extended by dnscrypt-proxy $as_me 1.4.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17129,7 +17140,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -dnscrypt-proxy config.status 1.3.4 +dnscrypt-proxy config.status 1.4.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/release/src/router/dnscrypt/autom4te.cache/output.1 b/release/src/router/dnscrypt/autom4te.cache/output.1 index de17229628..a202d8ccaf 100644 --- a/release/src/router/dnscrypt/autom4te.cache/output.1 +++ b/release/src/router/dnscrypt/autom4te.cache/output.1 @@ -1,6 +1,6 @@ @%:@! /bin/sh @%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.69 for dnscrypt-proxy 1.3.4. +@%:@ Generated by GNU Autoconf 2.69 for dnscrypt-proxy 1.4.0. @%:@ @%:@ Report bugs to . @%:@ @@ -594,8 +594,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='dnscrypt-proxy' PACKAGE_TARNAME='dnscrypt-proxy' -PACKAGE_VERSION='1.3.4' -PACKAGE_STRING='dnscrypt-proxy 1.3.4' +PACKAGE_VERSION='1.4.0' +PACKAGE_STRING='dnscrypt-proxy 1.4.0' PACKAGE_BUGREPORT='http://dnscrypt.org' PACKAGE_URL='' @@ -1376,7 +1376,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures dnscrypt-proxy 1.3.4 to adapt to many kinds of systems. +\`configure' configures dnscrypt-proxy 1.4.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1446,7 +1446,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of dnscrypt-proxy 1.3.4:";; + short | recursive ) echo "Configuration of dnscrypt-proxy 1.4.0:";; esac cat <<\_ACEOF @@ -1466,7 +1466,7 @@ Optional Features: --disable-ssp Do not compile with -fstack-protector --disable-pie Do not produce position independent executables --enable-debug For maintainers only - please do not use - --enable-plugins Enable support for plugins - experimental + --enable-plugins Enable support for plugins --enable-relaxed-plugins-permissions Allow loading plugins owned by other users --enable-plugins-root Only load plugins sitting in the default plugins @@ -1575,7 +1575,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -dnscrypt-proxy configure 1.3.4 +dnscrypt-proxy configure 1.4.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2044,7 +2044,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by dnscrypt-proxy $as_me 1.3.4, which was +It was created by dnscrypt-proxy $as_me 1.4.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2986,7 +2986,7 @@ fi # Define the identity of the package. PACKAGE='dnscrypt-proxy' - VERSION='1.3.4' + VERSION='1.4.0' cat >>confdefs.h <<_ACEOF @@ -15379,6 +15379,17 @@ _ACEOF fi done +for ac_func in sodium_mlock +do : + ac_fn_c_check_func "$LINENO" "sodium_mlock" "ac_cv_func_sodium_mlock" +if test "x$ac_cv_func_sodium_mlock" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_SODIUM_MLOCK 1 +_ACEOF + +fi +done + @@ -17063,7 +17074,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by dnscrypt-proxy $as_me 1.3.4, which was +This file was extended by dnscrypt-proxy $as_me 1.4.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17129,7 +17140,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -dnscrypt-proxy config.status 1.3.4 +dnscrypt-proxy config.status 1.4.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/release/src/router/dnscrypt/autom4te.cache/output.2 b/release/src/router/dnscrypt/autom4te.cache/output.2 index de17229628..a202d8ccaf 100644 --- a/release/src/router/dnscrypt/autom4te.cache/output.2 +++ b/release/src/router/dnscrypt/autom4te.cache/output.2 @@ -1,6 +1,6 @@ @%:@! /bin/sh @%:@ Guess values for system-dependent variables and create Makefiles. -@%:@ Generated by GNU Autoconf 2.69 for dnscrypt-proxy 1.3.4. +@%:@ Generated by GNU Autoconf 2.69 for dnscrypt-proxy 1.4.0. @%:@ @%:@ Report bugs to . @%:@ @@ -594,8 +594,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='dnscrypt-proxy' PACKAGE_TARNAME='dnscrypt-proxy' -PACKAGE_VERSION='1.3.4' -PACKAGE_STRING='dnscrypt-proxy 1.3.4' +PACKAGE_VERSION='1.4.0' +PACKAGE_STRING='dnscrypt-proxy 1.4.0' PACKAGE_BUGREPORT='http://dnscrypt.org' PACKAGE_URL='' @@ -1376,7 +1376,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures dnscrypt-proxy 1.3.4 to adapt to many kinds of systems. +\`configure' configures dnscrypt-proxy 1.4.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1446,7 +1446,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of dnscrypt-proxy 1.3.4:";; + short | recursive ) echo "Configuration of dnscrypt-proxy 1.4.0:";; esac cat <<\_ACEOF @@ -1466,7 +1466,7 @@ Optional Features: --disable-ssp Do not compile with -fstack-protector --disable-pie Do not produce position independent executables --enable-debug For maintainers only - please do not use - --enable-plugins Enable support for plugins - experimental + --enable-plugins Enable support for plugins --enable-relaxed-plugins-permissions Allow loading plugins owned by other users --enable-plugins-root Only load plugins sitting in the default plugins @@ -1575,7 +1575,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -dnscrypt-proxy configure 1.3.4 +dnscrypt-proxy configure 1.4.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2044,7 +2044,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by dnscrypt-proxy $as_me 1.3.4, which was +It was created by dnscrypt-proxy $as_me 1.4.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2986,7 +2986,7 @@ fi # Define the identity of the package. PACKAGE='dnscrypt-proxy' - VERSION='1.3.4' + VERSION='1.4.0' cat >>confdefs.h <<_ACEOF @@ -15379,6 +15379,17 @@ _ACEOF fi done +for ac_func in sodium_mlock +do : + ac_fn_c_check_func "$LINENO" "sodium_mlock" "ac_cv_func_sodium_mlock" +if test "x$ac_cv_func_sodium_mlock" = xyes; then : + cat >>confdefs.h <<_ACEOF +@%:@define HAVE_SODIUM_MLOCK 1 +_ACEOF + +fi +done + @@ -17063,7 +17074,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by dnscrypt-proxy $as_me 1.3.4, which was +This file was extended by dnscrypt-proxy $as_me 1.4.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17129,7 +17140,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -dnscrypt-proxy config.status 1.3.4 +dnscrypt-proxy config.status 1.4.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/release/src/router/dnscrypt/autom4te.cache/traces.0 b/release/src/router/dnscrypt/autom4te.cache/traces.0 index 1c58246afe..edc309abad 100644 --- a/release/src/router/dnscrypt/autom4te.cache/traces.0 +++ b/release/src/router/dnscrypt/autom4te.cache/traces.0 @@ -2688,91 +2688,92 @@ m4trace:configure.ac:400: -1- m4_pattern_allow([^LDNS_LIBS$]) m4trace:configure.ac:404: -1- m4_pattern_allow([^HAVE_LIBWS2_32$]) m4trace:configure.ac:405: -1- m4_pattern_allow([^HAVE_LIBPSAPI$]) m4trace:configure.ac:406: -1- m4_pattern_allow([^HAVE_LIBIPHLPAPI$]) -m4trace:configure.ac:417: -1- LT_INIT([dlopen]) -m4trace:configure.ac:418: -1- LT_CONFIG_LTDL_DIR([libltdl]) -m4trace:configure.ac:419: -1- LTDL_INIT -m4trace:configure.ac:419: -1- m4_pattern_allow([^LIBLTDL$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LTDLDEPS$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LTDLINCL$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^INCLTDL$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_LTDL$]) -m4trace:configure.ac:419: -1- _LTDL_SETUP -m4trace:configure.ac:419: -1- LT_SYS_MODULE_EXT -m4trace:configure.ac:419: -1- m4_pattern_allow([LT_MODULE_EXT]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_MODULE_EXT$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([LT_SHARED_EXT]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_SHARED_EXT$]) -m4trace:configure.ac:419: -1- LT_SYS_MODULE_PATH -m4trace:configure.ac:419: -1- m4_pattern_allow([LT_MODULE_PATH_VAR]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_MODULE_PATH_VAR$]) -m4trace:configure.ac:419: -1- LT_SYS_DLSEARCH_PATH -m4trace:configure.ac:419: -1- m4_pattern_allow([LT_DLSEARCH_PATH]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_DLSEARCH_PATH$]) -m4trace:configure.ac:419: -1- LT_LIB_DLLOAD -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_DLLOADERS$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_DLLOADERS$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_LIBDL$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_LIBDL$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_LIBDL$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_DLERROR$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LIBADD_DLOPEN$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_SHL_LOAD$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_SHL_LOAD$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LIBADD_SHL_LOAD$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_DYLD$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_DECL_CYGWIN_CONV_PATH$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_DLD$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LIBADD_DLD_LINK$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_DLPREOPEN$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_LIBDLLOADER$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_DLPREOPEN$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LIBADD_DL$]) -m4trace:configure.ac:419: -1- LT_SYS_SYMBOL_USCORE -m4trace:configure.ac:419: -1- m4_pattern_allow([^sys_symbol_underscore$]) -m4trace:configure.ac:419: -1- LT_FUNC_DLSYM_USCORE -m4trace:configure.ac:419: -1- m4_pattern_allow([^NEED_USCORE$]) -m4trace:configure.ac:419: -1- LT_SYS_DLOPEN_DEPLIBS -m4trace:configure.ac:419: -1- m4_pattern_allow([^LTDL_DLOPEN_DEPLIBS$]) -m4trace:configure.ac:419: -1- gl_FUNC_ARGZ -m4trace:configure.ac:419: -1- gl_PREREQ_ARGZ -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_ARGZ_H$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_ERROR_T$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^error_t$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^__error_t_defined$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^_LT_LIBOBJS$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_WORKING_ARGZ$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^_LT_LIBOBJS$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^ARGZ_H$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_PRELOADED_SYMBOLS$]) -m4trace:configure.ac:419: -1- AM_CONDITIONAL([INSTALL_LTDL], [test x"${enable_ltdl_install-no}" != xno]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^INSTALL_LTDL_TRUE$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^INSTALL_LTDL_FALSE$]) -m4trace:configure.ac:419: -1- _AM_SUBST_NOTMAKE([INSTALL_LTDL_TRUE]) -m4trace:configure.ac:419: -1- _AM_SUBST_NOTMAKE([INSTALL_LTDL_FALSE]) -m4trace:configure.ac:419: -1- AM_CONDITIONAL([CONVENIENCE_LTDL], [test x"${enable_ltdl_convenience-no}" != xno]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^CONVENIENCE_LTDL_TRUE$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^CONVENIENCE_LTDL_FALSE$]) -m4trace:configure.ac:419: -1- _AM_SUBST_NOTMAKE([CONVENIENCE_LTDL_TRUE]) -m4trace:configure.ac:419: -1- _AM_SUBST_NOTMAKE([CONVENIENCE_LTDL_FALSE]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^subdirs$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_CONFIG_H$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^_LT_LIBOBJS$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^_LT_LIBOBJS$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([LT_LIBEXT]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_LIBEXT$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([LT_LIBPREFIX]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_LIBPREFIX$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LTDLOPEN$]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^LTLIBOBJS$]) -m4trace:configure.ac:465: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) -m4trace:configure.ac:465: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) -m4trace:configure.ac:465: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^LT_CONFIG_H$]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^ltdl_LIBOBJS$]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^ltdl_LTLIBOBJS$]) -m4trace:configure.ac:465: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"]) -m4trace:configure.ac:465: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS -m4trace:configure.ac:465: -1- _LT_PROG_LTMAIN +m4trace:configure.ac:414: -1- m4_pattern_allow([^HAVE_SODIUM_MLOCK$]) +m4trace:configure.ac:418: -1- LT_INIT([dlopen]) +m4trace:configure.ac:419: -1- LT_CONFIG_LTDL_DIR([libltdl]) +m4trace:configure.ac:420: -1- LTDL_INIT +m4trace:configure.ac:420: -1- m4_pattern_allow([^LIBLTDL$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LTDLDEPS$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LTDLINCL$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^INCLTDL$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_LTDL$]) +m4trace:configure.ac:420: -1- _LTDL_SETUP +m4trace:configure.ac:420: -1- LT_SYS_MODULE_EXT +m4trace:configure.ac:420: -1- m4_pattern_allow([LT_MODULE_EXT]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_MODULE_EXT$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([LT_SHARED_EXT]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_SHARED_EXT$]) +m4trace:configure.ac:420: -1- LT_SYS_MODULE_PATH +m4trace:configure.ac:420: -1- m4_pattern_allow([LT_MODULE_PATH_VAR]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_MODULE_PATH_VAR$]) +m4trace:configure.ac:420: -1- LT_SYS_DLSEARCH_PATH +m4trace:configure.ac:420: -1- m4_pattern_allow([LT_DLSEARCH_PATH]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_DLSEARCH_PATH$]) +m4trace:configure.ac:420: -1- LT_LIB_DLLOAD +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_DLLOADERS$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_DLLOADERS$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_LIBDL$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_LIBDL$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_LIBDL$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_DLERROR$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LIBADD_DLOPEN$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_SHL_LOAD$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_SHL_LOAD$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LIBADD_SHL_LOAD$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_DYLD$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_DECL_CYGWIN_CONV_PATH$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_DLD$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LIBADD_DLD_LINK$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_DLPREOPEN$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_LIBDLLOADER$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_DLPREOPEN$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LIBADD_DL$]) +m4trace:configure.ac:420: -1- LT_SYS_SYMBOL_USCORE +m4trace:configure.ac:420: -1- m4_pattern_allow([^sys_symbol_underscore$]) +m4trace:configure.ac:420: -1- LT_FUNC_DLSYM_USCORE +m4trace:configure.ac:420: -1- m4_pattern_allow([^NEED_USCORE$]) +m4trace:configure.ac:420: -1- LT_SYS_DLOPEN_DEPLIBS +m4trace:configure.ac:420: -1- m4_pattern_allow([^LTDL_DLOPEN_DEPLIBS$]) +m4trace:configure.ac:420: -1- gl_FUNC_ARGZ +m4trace:configure.ac:420: -1- gl_PREREQ_ARGZ +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_ARGZ_H$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_ERROR_T$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^error_t$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^__error_t_defined$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^_LT_LIBOBJS$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_WORKING_ARGZ$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^_LT_LIBOBJS$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^ARGZ_H$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_PRELOADED_SYMBOLS$]) +m4trace:configure.ac:420: -1- AM_CONDITIONAL([INSTALL_LTDL], [test x"${enable_ltdl_install-no}" != xno]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^INSTALL_LTDL_TRUE$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^INSTALL_LTDL_FALSE$]) +m4trace:configure.ac:420: -1- _AM_SUBST_NOTMAKE([INSTALL_LTDL_TRUE]) +m4trace:configure.ac:420: -1- _AM_SUBST_NOTMAKE([INSTALL_LTDL_FALSE]) +m4trace:configure.ac:420: -1- AM_CONDITIONAL([CONVENIENCE_LTDL], [test x"${enable_ltdl_convenience-no}" != xno]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^CONVENIENCE_LTDL_TRUE$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^CONVENIENCE_LTDL_FALSE$]) +m4trace:configure.ac:420: -1- _AM_SUBST_NOTMAKE([CONVENIENCE_LTDL_TRUE]) +m4trace:configure.ac:420: -1- _AM_SUBST_NOTMAKE([CONVENIENCE_LTDL_FALSE]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^subdirs$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_CONFIG_H$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^_LT_LIBOBJS$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^_LT_LIBOBJS$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([LT_LIBEXT]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_LIBEXT$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([LT_LIBPREFIX]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_LIBPREFIX$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LTDLOPEN$]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^LTLIBOBJS$]) +m4trace:configure.ac:466: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) +m4trace:configure.ac:466: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) +m4trace:configure.ac:466: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^LT_CONFIG_H$]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^ltdl_LIBOBJS$]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^ltdl_LTLIBOBJS$]) +m4trace:configure.ac:466: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"]) +m4trace:configure.ac:466: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS +m4trace:configure.ac:466: -1- _LT_PROG_LTMAIN diff --git a/release/src/router/dnscrypt/autom4te.cache/traces.1 b/release/src/router/dnscrypt/autom4te.cache/traces.1 index 2feae77e00..f05eb78ebd 100644 --- a/release/src/router/dnscrypt/autom4te.cache/traces.1 +++ b/release/src/router/dnscrypt/autom4te.cache/traces.1 @@ -7,7 +7,7 @@ m4trace:aclocal.m4:1098: -1- m4_include([m4/ltoptions.m4]) m4trace:aclocal.m4:1099: -1- m4_include([m4/ltsugar.m4]) m4trace:aclocal.m4:1100: -1- m4_include([m4/ltversion.m4]) m4trace:aclocal.m4:1101: -1- m4_include([m4/lt~obsolete.m4]) -m4trace:configure.ac:2: -1- AC_INIT([dnscrypt-proxy], [1.3.4], [http://dnscrypt.org]) +m4trace:configure.ac:2: -1- AC_INIT([dnscrypt-proxy], [1.4.0], [http://dnscrypt.org]) m4trace:configure.ac:2: -1- m4_pattern_forbid([^_?A[CHUM]_]) m4trace:configure.ac:2: -1- m4_pattern_forbid([_AC_]) m4trace:configure.ac:2: -1- m4_pattern_forbid([^LIBOBJS$], [do not use LIBOBJS directly, use AC_LIBOBJ (see section `AC_LIBOBJ vs LIBOBJS']) @@ -758,227 +758,231 @@ m4trace:configure.ac:413: -1- AH_OUTPUT([HAVE_PUTC_UNLOCKED], [/* Define to 1 if @%:@undef HAVE_PUTC_UNLOCKED]) m4trace:configure.ac:413: -1- AH_OUTPUT([HAVE_GMTIME_R], [/* Define to 1 if you have the `gmtime_r\' function. */ @%:@undef HAVE_GMTIME_R]) -m4trace:configure.ac:417: -1- LT_INIT([dlopen]) -m4trace:configure.ac:418: -1- LT_CONFIG_LTDL_DIR([libltdl]) -m4trace:configure.ac:419: -1- AC_SUBST([LIBLTDL]) -m4trace:configure.ac:419: -1- AC_SUBST_TRACE([LIBLTDL]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LIBLTDL$]) -m4trace:configure.ac:419: -1- AC_SUBST([LTDLDEPS]) -m4trace:configure.ac:419: -1- AC_SUBST_TRACE([LTDLDEPS]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LTDLDEPS$]) -m4trace:configure.ac:419: -1- AC_SUBST([LTDLINCL]) -m4trace:configure.ac:419: -1- AC_SUBST_TRACE([LTDLINCL]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LTDLINCL$]) -m4trace:configure.ac:419: -1- AC_SUBST([INCLTDL]) -m4trace:configure.ac:419: -1- AC_SUBST_TRACE([INCLTDL]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^INCLTDL$]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LTDL]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_LTDL$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_LTDL], [/* Define this if a modern libltdl is already installed */ +m4trace:configure.ac:414: -1- AH_OUTPUT([HAVE_SODIUM_MLOCK], [/* Define to 1 if you have the `sodium_mlock\' function. */ +@%:@undef HAVE_SODIUM_MLOCK]) +m4trace:configure.ac:414: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SODIUM_MLOCK]) +m4trace:configure.ac:414: -1- m4_pattern_allow([^HAVE_SODIUM_MLOCK$]) +m4trace:configure.ac:418: -1- LT_INIT([dlopen]) +m4trace:configure.ac:419: -1- LT_CONFIG_LTDL_DIR([libltdl]) +m4trace:configure.ac:420: -1- AC_SUBST([LIBLTDL]) +m4trace:configure.ac:420: -1- AC_SUBST_TRACE([LIBLTDL]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LIBLTDL$]) +m4trace:configure.ac:420: -1- AC_SUBST([LTDLDEPS]) +m4trace:configure.ac:420: -1- AC_SUBST_TRACE([LTDLDEPS]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LTDLDEPS$]) +m4trace:configure.ac:420: -1- AC_SUBST([LTDLINCL]) +m4trace:configure.ac:420: -1- AC_SUBST_TRACE([LTDLINCL]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LTDLINCL$]) +m4trace:configure.ac:420: -1- AC_SUBST([INCLTDL]) +m4trace:configure.ac:420: -1- AC_SUBST_TRACE([INCLTDL]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^INCLTDL$]) +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LTDL]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_LTDL$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_LTDL], [/* Define this if a modern libltdl is already installed */ @%:@undef HAVE_LTDL]) -m4trace:configure.ac:419: -1- m4_pattern_allow([LT_MODULE_EXT]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([LT_MODULE_EXT]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_MODULE_EXT$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([LT_MODULE_EXT], [/* Define to the extension used for runtime loadable modules, say, ".so". */ +m4trace:configure.ac:420: -1- m4_pattern_allow([LT_MODULE_EXT]) +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([LT_MODULE_EXT]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_MODULE_EXT$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([LT_MODULE_EXT], [/* Define to the extension used for runtime loadable modules, say, ".so". */ @%:@undef LT_MODULE_EXT]) -m4trace:configure.ac:419: -1- m4_pattern_allow([LT_SHARED_EXT]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([LT_SHARED_EXT]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_SHARED_EXT$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([LT_SHARED_EXT], [/* Define to the shared library suffix, say, ".dylib". */ +m4trace:configure.ac:420: -1- m4_pattern_allow([LT_SHARED_EXT]) +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([LT_SHARED_EXT]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_SHARED_EXT$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([LT_SHARED_EXT], [/* Define to the shared library suffix, say, ".dylib". */ @%:@undef LT_SHARED_EXT]) -m4trace:configure.ac:419: -1- m4_pattern_allow([LT_MODULE_PATH_VAR]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([LT_MODULE_PATH_VAR]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_MODULE_PATH_VAR$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([LT_MODULE_PATH_VAR], [/* Define to the name of the environment variable that determines the run-time +m4trace:configure.ac:420: -1- m4_pattern_allow([LT_MODULE_PATH_VAR]) +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([LT_MODULE_PATH_VAR]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_MODULE_PATH_VAR$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([LT_MODULE_PATH_VAR], [/* Define to the name of the environment variable that determines the run-time module search path. */ @%:@undef LT_MODULE_PATH_VAR]) -m4trace:configure.ac:419: -1- m4_pattern_allow([LT_DLSEARCH_PATH]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([LT_DLSEARCH_PATH]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_DLSEARCH_PATH$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([LT_DLSEARCH_PATH], [/* Define to the system default library search path. */ +m4trace:configure.ac:420: -1- m4_pattern_allow([LT_DLSEARCH_PATH]) +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([LT_DLSEARCH_PATH]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_DLSEARCH_PATH$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([LT_DLSEARCH_PATH], [/* Define to the system default library search path. */ @%:@undef LT_DLSEARCH_PATH]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_DLLOADERS$]) -m4trace:configure.ac:419: -1- AC_SUBST([LT_DLLOADERS]) -m4trace:configure.ac:419: -1- AC_SUBST_TRACE([LT_DLLOADERS]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_DLLOADERS$]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDL]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_LIBDL$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_LIBDL], [/* Define if you have the libdl library or equivalent. */ +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_DLLOADERS$]) +m4trace:configure.ac:420: -1- AC_SUBST([LT_DLLOADERS]) +m4trace:configure.ac:420: -1- AC_SUBST_TRACE([LT_DLLOADERS]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_DLLOADERS$]) +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDL]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_LIBDL$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_LIBDL], [/* Define if you have the libdl library or equivalent. */ @%:@undef HAVE_LIBDL]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDL]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_LIBDL$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_LIBDL], [/* Define if you have the libdl library or equivalent. */ +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDL]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_LIBDL$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_LIBDL], [/* Define if you have the libdl library or equivalent. */ @%:@undef HAVE_LIBDL]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDL]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_LIBDL$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_LIBDL], [/* Define if you have the libdl library or equivalent. */ +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDL]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_LIBDL$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_LIBDL], [/* Define if you have the libdl library or equivalent. */ @%:@undef HAVE_LIBDL]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_DLERROR], [/* Define to 1 if you have the `dlerror\' function. */ +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_DLERROR], [/* Define to 1 if you have the `dlerror\' function. */ @%:@undef HAVE_DLERROR]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DLERROR]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_DLERROR$]) -m4trace:configure.ac:419: -1- AC_SUBST([LIBADD_DLOPEN]) -m4trace:configure.ac:419: -1- AC_SUBST_TRACE([LIBADD_DLOPEN]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LIBADD_DLOPEN$]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SHL_LOAD]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_SHL_LOAD$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_SHL_LOAD], [/* Define if you have the shl_load function. */ +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DLERROR]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_DLERROR$]) +m4trace:configure.ac:420: -1- AC_SUBST([LIBADD_DLOPEN]) +m4trace:configure.ac:420: -1- AC_SUBST_TRACE([LIBADD_DLOPEN]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LIBADD_DLOPEN$]) +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SHL_LOAD]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_SHL_LOAD$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_SHL_LOAD], [/* Define if you have the shl_load function. */ @%:@undef HAVE_SHL_LOAD]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SHL_LOAD]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_SHL_LOAD$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_SHL_LOAD], [/* Define if you have the shl_load function. */ +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([HAVE_SHL_LOAD]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_SHL_LOAD$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_SHL_LOAD], [/* Define if you have the shl_load function. */ @%:@undef HAVE_SHL_LOAD]) -m4trace:configure.ac:419: -1- AC_SUBST([LIBADD_SHL_LOAD]) -m4trace:configure.ac:419: -1- AC_SUBST_TRACE([LIBADD_SHL_LOAD]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LIBADD_SHL_LOAD$]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DYLD]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_DYLD$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_DYLD], [/* Define if you have the _dyld_func_lookup function. */ +m4trace:configure.ac:420: -1- AC_SUBST([LIBADD_SHL_LOAD]) +m4trace:configure.ac:420: -1- AC_SUBST_TRACE([LIBADD_SHL_LOAD]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LIBADD_SHL_LOAD$]) +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DYLD]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_DYLD$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_DYLD], [/* Define if you have the _dyld_func_lookup function. */ @%:@undef HAVE_DYLD]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_CYGWIN_CONV_PATH]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_DECL_CYGWIN_CONV_PATH$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_DECL_CYGWIN_CONV_PATH], [/* Define to 1 if you have the declaration of `cygwin_conv_path\', and to 0 if +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DECL_CYGWIN_CONV_PATH]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_DECL_CYGWIN_CONV_PATH$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_DECL_CYGWIN_CONV_PATH], [/* Define to 1 if you have the declaration of `cygwin_conv_path\', and to 0 if you don\'t. */ @%:@undef HAVE_DECL_CYGWIN_CONV_PATH]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DLD]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_DLD$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_DLD], [/* Define if you have the GNU dld library. */ +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([HAVE_DLD]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_DLD$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_DLD], [/* Define if you have the GNU dld library. */ @%:@undef HAVE_DLD]) -m4trace:configure.ac:419: -1- AC_SUBST([LIBADD_DLD_LINK]) -m4trace:configure.ac:419: -1- AC_SUBST_TRACE([LIBADD_DLD_LINK]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LIBADD_DLD_LINK$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_DLPREOPEN$]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDLLOADER]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_LIBDLLOADER$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_LIBDLLOADER], [/* Define if libdlloader will be built on this platform */ +m4trace:configure.ac:420: -1- AC_SUBST([LIBADD_DLD_LINK]) +m4trace:configure.ac:420: -1- AC_SUBST_TRACE([LIBADD_DLD_LINK]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LIBADD_DLD_LINK$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_DLPREOPEN$]) +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([HAVE_LIBDLLOADER]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_LIBDLLOADER$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_LIBDLLOADER], [/* Define if libdlloader will be built on this platform */ @%:@undef HAVE_LIBDLLOADER]) -m4trace:configure.ac:419: -1- AC_SUBST([LT_DLPREOPEN]) -m4trace:configure.ac:419: -1- AC_SUBST_TRACE([LT_DLPREOPEN]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_DLPREOPEN$]) -m4trace:configure.ac:419: -1- AC_SUBST([LIBADD_DL]) -m4trace:configure.ac:419: -1- AC_SUBST_TRACE([LIBADD_DL]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LIBADD_DL$]) -m4trace:configure.ac:419: -1- AC_SUBST([sys_symbol_underscore]) -m4trace:configure.ac:419: -1- AC_SUBST_TRACE([sys_symbol_underscore]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^sys_symbol_underscore$]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([NEED_USCORE]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^NEED_USCORE$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([NEED_USCORE], [/* Define if dlsym() requires a leading underscore in symbol names. */ +m4trace:configure.ac:420: -1- AC_SUBST([LT_DLPREOPEN]) +m4trace:configure.ac:420: -1- AC_SUBST_TRACE([LT_DLPREOPEN]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_DLPREOPEN$]) +m4trace:configure.ac:420: -1- AC_SUBST([LIBADD_DL]) +m4trace:configure.ac:420: -1- AC_SUBST_TRACE([LIBADD_DL]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LIBADD_DL$]) +m4trace:configure.ac:420: -1- AC_SUBST([sys_symbol_underscore]) +m4trace:configure.ac:420: -1- AC_SUBST_TRACE([sys_symbol_underscore]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^sys_symbol_underscore$]) +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([NEED_USCORE]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^NEED_USCORE$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([NEED_USCORE], [/* Define if dlsym() requires a leading underscore in symbol names. */ @%:@undef NEED_USCORE]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([LTDL_DLOPEN_DEPLIBS]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LTDL_DLOPEN_DEPLIBS$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([LTDL_DLOPEN_DEPLIBS], [/* Define if the OS needs help to load dependent libraries for dlopen(). */ +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([LTDL_DLOPEN_DEPLIBS]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LTDL_DLOPEN_DEPLIBS$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([LTDL_DLOPEN_DEPLIBS], [/* Define if the OS needs help to load dependent libraries for dlopen(). */ @%:@undef LTDL_DLOPEN_DEPLIBS]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_ARGZ_H], [/* Define to 1 if you have the header file. */ +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_ARGZ_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_ARGZ_H]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ARGZ_H]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_ARGZ_H$]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ERROR_T]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_ERROR_T$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_ERROR_T], [/* Define to 1 if the system has the type `error_t\'. */ +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ARGZ_H]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_ARGZ_H$]) +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([HAVE_ERROR_T]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_ERROR_T$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_ERROR_T], [/* Define to 1 if the system has the type `error_t\'. */ @%:@undef HAVE_ERROR_T]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([error_t]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^error_t$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([error_t], [/* Define to a type to use for `error_t\' if it is not otherwise available. */ +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([error_t]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^error_t$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([error_t], [/* Define to a type to use for `error_t\' if it is not otherwise available. */ @%:@undef error_t]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([__error_t_defined]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^__error_t_defined$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([__error_t_defined], [/* Define so that glibc/gnulib argp.h does not typedef error_t. */ +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([__error_t_defined]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^__error_t_defined$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([__error_t_defined], [/* Define so that glibc/gnulib argp.h does not typedef error_t. */ @%:@undef __error_t_defined]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_ARGZ_ADD], [/* Define to 1 if you have the `argz_add\' function. */ +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_ARGZ_ADD], [/* Define to 1 if you have the `argz_add\' function. */ @%:@undef HAVE_ARGZ_ADD]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_ARGZ_APPEND], [/* Define to 1 if you have the `argz_append\' function. */ +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_ARGZ_APPEND], [/* Define to 1 if you have the `argz_append\' function. */ @%:@undef HAVE_ARGZ_APPEND]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_ARGZ_COUNT], [/* Define to 1 if you have the `argz_count\' function. */ +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_ARGZ_COUNT], [/* Define to 1 if you have the `argz_count\' function. */ @%:@undef HAVE_ARGZ_COUNT]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_ARGZ_CREATE_SEP], [/* Define to 1 if you have the `argz_create_sep\' function. */ +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_ARGZ_CREATE_SEP], [/* Define to 1 if you have the `argz_create_sep\' function. */ @%:@undef HAVE_ARGZ_CREATE_SEP]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_ARGZ_INSERT], [/* Define to 1 if you have the `argz_insert\' function. */ +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_ARGZ_INSERT], [/* Define to 1 if you have the `argz_insert\' function. */ @%:@undef HAVE_ARGZ_INSERT]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_ARGZ_NEXT], [/* Define to 1 if you have the `argz_next\' function. */ +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_ARGZ_NEXT], [/* Define to 1 if you have the `argz_next\' function. */ @%:@undef HAVE_ARGZ_NEXT]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_ARGZ_STRINGIFY], [/* Define to 1 if you have the `argz_stringify\' function. */ +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_ARGZ_STRINGIFY], [/* Define to 1 if you have the `argz_stringify\' function. */ @%:@undef HAVE_ARGZ_STRINGIFY]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^_LT_LIBOBJS$]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WORKING_ARGZ]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_WORKING_ARGZ$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_WORKING_ARGZ], [/* This value is set to 1 to indicate that the system argz facility works */ +m4trace:configure.ac:420: -1- m4_pattern_allow([^_LT_LIBOBJS$]) +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([HAVE_WORKING_ARGZ]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_WORKING_ARGZ$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_WORKING_ARGZ], [/* This value is set to 1 to indicate that the system argz facility works */ @%:@undef HAVE_WORKING_ARGZ]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^_LT_LIBOBJS$]) -m4trace:configure.ac:419: -1- AC_SUBST([ARGZ_H]) -m4trace:configure.ac:419: -1- AC_SUBST_TRACE([ARGZ_H]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^ARGZ_H$]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PRELOADED_SYMBOLS]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_PRELOADED_SYMBOLS$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_PRELOADED_SYMBOLS], [/* Define if libtool can extract symbol lists from object files. */ +m4trace:configure.ac:420: -1- m4_pattern_allow([^_LT_LIBOBJS$]) +m4trace:configure.ac:420: -1- AC_SUBST([ARGZ_H]) +m4trace:configure.ac:420: -1- AC_SUBST_TRACE([ARGZ_H]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^ARGZ_H$]) +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([HAVE_PRELOADED_SYMBOLS]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_PRELOADED_SYMBOLS$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_PRELOADED_SYMBOLS], [/* Define if libtool can extract symbol lists from object files. */ @%:@undef HAVE_PRELOADED_SYMBOLS]) -m4trace:configure.ac:419: -1- AM_CONDITIONAL([INSTALL_LTDL], [test x"${enable_ltdl_install-no}" != xno]) -m4trace:configure.ac:419: -1- AC_SUBST([INSTALL_LTDL_TRUE]) -m4trace:configure.ac:419: -1- AC_SUBST_TRACE([INSTALL_LTDL_TRUE]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^INSTALL_LTDL_TRUE$]) -m4trace:configure.ac:419: -1- AC_SUBST([INSTALL_LTDL_FALSE]) -m4trace:configure.ac:419: -1- AC_SUBST_TRACE([INSTALL_LTDL_FALSE]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^INSTALL_LTDL_FALSE$]) -m4trace:configure.ac:419: -1- _AM_SUBST_NOTMAKE([INSTALL_LTDL_TRUE]) -m4trace:configure.ac:419: -1- _AM_SUBST_NOTMAKE([INSTALL_LTDL_FALSE]) -m4trace:configure.ac:419: -1- AM_CONDITIONAL([CONVENIENCE_LTDL], [test x"${enable_ltdl_convenience-no}" != xno]) -m4trace:configure.ac:419: -1- AC_SUBST([CONVENIENCE_LTDL_TRUE]) -m4trace:configure.ac:419: -1- AC_SUBST_TRACE([CONVENIENCE_LTDL_TRUE]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^CONVENIENCE_LTDL_TRUE$]) -m4trace:configure.ac:419: -1- AC_SUBST([CONVENIENCE_LTDL_FALSE]) -m4trace:configure.ac:419: -1- AC_SUBST_TRACE([CONVENIENCE_LTDL_FALSE]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^CONVENIENCE_LTDL_FALSE$]) -m4trace:configure.ac:419: -1- _AM_SUBST_NOTMAKE([CONVENIENCE_LTDL_TRUE]) -m4trace:configure.ac:419: -1- _AM_SUBST_NOTMAKE([CONVENIENCE_LTDL_FALSE]) -m4trace:configure.ac:419: -1- AC_CONFIG_SUBDIRS([libltdl]) -m4trace:configure.ac:419: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([libltdl])"]) -m4trace:configure.ac:419: -1- AC_SUBST_TRACE([subdirs]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^subdirs$]) -m4trace:configure.ac:419: -1- AC_SUBST([LT_CONFIG_H]) -m4trace:configure.ac:419: -1- AC_SUBST_TRACE([LT_CONFIG_H]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_CONFIG_H$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ +m4trace:configure.ac:420: -1- AM_CONDITIONAL([INSTALL_LTDL], [test x"${enable_ltdl_install-no}" != xno]) +m4trace:configure.ac:420: -1- AC_SUBST([INSTALL_LTDL_TRUE]) +m4trace:configure.ac:420: -1- AC_SUBST_TRACE([INSTALL_LTDL_TRUE]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^INSTALL_LTDL_TRUE$]) +m4trace:configure.ac:420: -1- AC_SUBST([INSTALL_LTDL_FALSE]) +m4trace:configure.ac:420: -1- AC_SUBST_TRACE([INSTALL_LTDL_FALSE]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^INSTALL_LTDL_FALSE$]) +m4trace:configure.ac:420: -1- _AM_SUBST_NOTMAKE([INSTALL_LTDL_TRUE]) +m4trace:configure.ac:420: -1- _AM_SUBST_NOTMAKE([INSTALL_LTDL_FALSE]) +m4trace:configure.ac:420: -1- AM_CONDITIONAL([CONVENIENCE_LTDL], [test x"${enable_ltdl_convenience-no}" != xno]) +m4trace:configure.ac:420: -1- AC_SUBST([CONVENIENCE_LTDL_TRUE]) +m4trace:configure.ac:420: -1- AC_SUBST_TRACE([CONVENIENCE_LTDL_TRUE]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^CONVENIENCE_LTDL_TRUE$]) +m4trace:configure.ac:420: -1- AC_SUBST([CONVENIENCE_LTDL_FALSE]) +m4trace:configure.ac:420: -1- AC_SUBST_TRACE([CONVENIENCE_LTDL_FALSE]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^CONVENIENCE_LTDL_FALSE$]) +m4trace:configure.ac:420: -1- _AM_SUBST_NOTMAKE([CONVENIENCE_LTDL_TRUE]) +m4trace:configure.ac:420: -1- _AM_SUBST_NOTMAKE([CONVENIENCE_LTDL_FALSE]) +m4trace:configure.ac:420: -1- AC_CONFIG_SUBDIRS([libltdl]) +m4trace:configure.ac:420: -1- AC_SUBST([subdirs], ["$subdirs m4_normalize([libltdl])"]) +m4trace:configure.ac:420: -1- AC_SUBST_TRACE([subdirs]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^subdirs$]) +m4trace:configure.ac:420: -1- AC_SUBST([LT_CONFIG_H]) +m4trace:configure.ac:420: -1- AC_SUBST_TRACE([LT_CONFIG_H]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_CONFIG_H$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_UNISTD_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_UNISTD_H]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_DL_H], [/* Define to 1 if you have the header file. */ +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_DL_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_DL_H]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_SYS_DL_H], [/* Define to 1 if you have the header file. */ +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_SYS_DL_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_SYS_DL_H]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_DLD_H], [/* Define to 1 if you have the header file. */ +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_DLD_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_DLD_H]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_MACH_O_DYLD_H], [/* Define to 1 if you have the header file. */ +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_MACH_O_DYLD_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_MACH_O_DYLD_H]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_DIRENT_H], [/* Define to 1 if you have the header file. */ +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_DIRENT_H], [/* Define to 1 if you have the header file. */ @%:@undef HAVE_DIRENT_H]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_CLOSEDIR], [/* Define to 1 if you have the `closedir\' function. */ +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_CLOSEDIR], [/* Define to 1 if you have the `closedir\' function. */ @%:@undef HAVE_CLOSEDIR]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_OPENDIR], [/* Define to 1 if you have the `opendir\' function. */ +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_OPENDIR], [/* Define to 1 if you have the `opendir\' function. */ @%:@undef HAVE_OPENDIR]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_READDIR], [/* Define to 1 if you have the `readdir\' function. */ +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_READDIR], [/* Define to 1 if you have the `readdir\' function. */ @%:@undef HAVE_READDIR]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^_LT_LIBOBJS$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_STRLCAT], [/* Define to 1 if you have the `strlcat\' function. */ +m4trace:configure.ac:420: -1- m4_pattern_allow([^_LT_LIBOBJS$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_STRLCAT], [/* Define to 1 if you have the `strlcat\' function. */ @%:@undef HAVE_STRLCAT]) -m4trace:configure.ac:419: -1- AH_OUTPUT([HAVE_STRLCPY], [/* Define to 1 if you have the `strlcpy\' function. */ +m4trace:configure.ac:420: -1- AH_OUTPUT([HAVE_STRLCPY], [/* Define to 1 if you have the `strlcpy\' function. */ @%:@undef HAVE_STRLCPY]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^_LT_LIBOBJS$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([LT_LIBEXT]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([LT_LIBEXT]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_LIBEXT$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([LT_LIBEXT], [/* The archive extension */ +m4trace:configure.ac:420: -1- m4_pattern_allow([^_LT_LIBOBJS$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([LT_LIBEXT]) +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([LT_LIBEXT]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_LIBEXT$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([LT_LIBEXT], [/* The archive extension */ @%:@undef LT_LIBEXT]) -m4trace:configure.ac:419: -1- m4_pattern_allow([LT_LIBPREFIX]) -m4trace:configure.ac:419: -1- AC_DEFINE_TRACE_LITERAL([LT_LIBPREFIX]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_LIBPREFIX$]) -m4trace:configure.ac:419: -1- AH_OUTPUT([LT_LIBPREFIX], [/* The archive prefix */ +m4trace:configure.ac:420: -1- m4_pattern_allow([LT_LIBPREFIX]) +m4trace:configure.ac:420: -1- AC_DEFINE_TRACE_LITERAL([LT_LIBPREFIX]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_LIBPREFIX$]) +m4trace:configure.ac:420: -1- AH_OUTPUT([LT_LIBPREFIX], [/* The archive prefix */ @%:@undef LT_LIBPREFIX]) -m4trace:configure.ac:419: -1- AC_SUBST([LTDLOPEN]) -m4trace:configure.ac:419: -1- AC_SUBST_TRACE([LTDLOPEN]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LTDLOPEN$]) -m4trace:configure.ac:442: -1- AH_OUTPUT([NDEBUG], [/* Never ever ignore assertions */ +m4trace:configure.ac:420: -1- AC_SUBST([LTDLOPEN]) +m4trace:configure.ac:420: -1- AC_SUBST_TRACE([LTDLOPEN]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LTDLOPEN$]) +m4trace:configure.ac:443: -1- AH_OUTPUT([NDEBUG], [/* Never ever ignore assertions */ #ifdef NDEBUG #/**/undef/**/ NDEBUG #endif]) -m4trace:configure.ac:447: -1- AC_CONFIG_FILES([Makefile +m4trace:configure.ac:448: -1- AC_CONFIG_FILES([Makefile dist-build/Makefile man/Makefile src/Makefile @@ -995,37 +999,37 @@ m4trace:configure.ac:447: -1- AC_CONFIG_FILES([Makefile src/plugins/example-ldns-opendns-deviceid/Makefile src/plugins/example-ldns-opendns-set-client-ip/Makefile test/Makefile]) -m4trace:configure.ac:465: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) -m4trace:configure.ac:465: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:465: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) -m4trace:configure.ac:465: -1- AC_SUBST_TRACE([LTLIBOBJS]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^LTLIBOBJS$]) -m4trace:configure.ac:465: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) -m4trace:configure.ac:465: -1- AC_SUBST([am__EXEEXT_TRUE]) -m4trace:configure.ac:465: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) -m4trace:configure.ac:465: -1- AC_SUBST([am__EXEEXT_FALSE]) -m4trace:configure.ac:465: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) -m4trace:configure.ac:465: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) -m4trace:configure.ac:465: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^LT_CONFIG_H$]) -m4trace:configure.ac:465: -1- AC_SUBST([ltdl_LIBOBJS], [$_ltdl_libobjs]) -m4trace:configure.ac:465: -1- AC_SUBST_TRACE([ltdl_LIBOBJS]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^ltdl_LIBOBJS$]) -m4trace:configure.ac:465: -1- AC_SUBST([ltdl_LTLIBOBJS], [$_ltdl_ltlibobjs]) -m4trace:configure.ac:465: -1- AC_SUBST_TRACE([ltdl_LTLIBOBJS]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^ltdl_LTLIBOBJS$]) -m4trace:configure.ac:465: -1- AC_SUBST_TRACE([top_builddir]) -m4trace:configure.ac:465: -1- AC_SUBST_TRACE([top_build_prefix]) -m4trace:configure.ac:465: -1- AC_SUBST_TRACE([srcdir]) -m4trace:configure.ac:465: -1- AC_SUBST_TRACE([abs_srcdir]) -m4trace:configure.ac:465: -1- AC_SUBST_TRACE([top_srcdir]) -m4trace:configure.ac:465: -1- AC_SUBST_TRACE([abs_top_srcdir]) -m4trace:configure.ac:465: -1- AC_SUBST_TRACE([builddir]) -m4trace:configure.ac:465: -1- AC_SUBST_TRACE([abs_builddir]) -m4trace:configure.ac:465: -1- AC_SUBST_TRACE([abs_top_builddir]) -m4trace:configure.ac:465: -1- AC_SUBST_TRACE([INSTALL]) -m4trace:configure.ac:465: -1- AC_SUBST_TRACE([MKDIR_P]) -m4trace:configure.ac:465: -1- AC_REQUIRE_AUX_FILE([ltmain.sh]) +m4trace:configure.ac:466: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) +m4trace:configure.ac:466: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.ac:466: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) +m4trace:configure.ac:466: -1- AC_SUBST_TRACE([LTLIBOBJS]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^LTLIBOBJS$]) +m4trace:configure.ac:466: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) +m4trace:configure.ac:466: -1- AC_SUBST([am__EXEEXT_TRUE]) +m4trace:configure.ac:466: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) +m4trace:configure.ac:466: -1- AC_SUBST([am__EXEEXT_FALSE]) +m4trace:configure.ac:466: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) +m4trace:configure.ac:466: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) +m4trace:configure.ac:466: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^LT_CONFIG_H$]) +m4trace:configure.ac:466: -1- AC_SUBST([ltdl_LIBOBJS], [$_ltdl_libobjs]) +m4trace:configure.ac:466: -1- AC_SUBST_TRACE([ltdl_LIBOBJS]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^ltdl_LIBOBJS$]) +m4trace:configure.ac:466: -1- AC_SUBST([ltdl_LTLIBOBJS], [$_ltdl_ltlibobjs]) +m4trace:configure.ac:466: -1- AC_SUBST_TRACE([ltdl_LTLIBOBJS]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^ltdl_LTLIBOBJS$]) +m4trace:configure.ac:466: -1- AC_SUBST_TRACE([top_builddir]) +m4trace:configure.ac:466: -1- AC_SUBST_TRACE([top_build_prefix]) +m4trace:configure.ac:466: -1- AC_SUBST_TRACE([srcdir]) +m4trace:configure.ac:466: -1- AC_SUBST_TRACE([abs_srcdir]) +m4trace:configure.ac:466: -1- AC_SUBST_TRACE([top_srcdir]) +m4trace:configure.ac:466: -1- AC_SUBST_TRACE([abs_top_srcdir]) +m4trace:configure.ac:466: -1- AC_SUBST_TRACE([builddir]) +m4trace:configure.ac:466: -1- AC_SUBST_TRACE([abs_builddir]) +m4trace:configure.ac:466: -1- AC_SUBST_TRACE([abs_top_builddir]) +m4trace:configure.ac:466: -1- AC_SUBST_TRACE([INSTALL]) +m4trace:configure.ac:466: -1- AC_SUBST_TRACE([MKDIR_P]) +m4trace:configure.ac:466: -1- AC_REQUIRE_AUX_FILE([ltmain.sh]) diff --git a/release/src/router/dnscrypt/autom4te.cache/traces.2 b/release/src/router/dnscrypt/autom4te.cache/traces.2 index 4a71afd3a0..51925c7b13 100644 --- a/release/src/router/dnscrypt/autom4te.cache/traces.2 +++ b/release/src/router/dnscrypt/autom4te.cache/traces.2 @@ -2688,91 +2688,92 @@ m4trace:configure.ac:400: -1- m4_pattern_allow([^LDNS_LIBS$]) m4trace:configure.ac:404: -1- m4_pattern_allow([^HAVE_LIBWS2_32$]) m4trace:configure.ac:405: -1- m4_pattern_allow([^HAVE_LIBPSAPI$]) m4trace:configure.ac:406: -1- m4_pattern_allow([^HAVE_LIBIPHLPAPI$]) -m4trace:configure.ac:417: -1- LT_INIT([dlopen]) -m4trace:configure.ac:418: -1- LT_CONFIG_LTDL_DIR([libltdl]) -m4trace:configure.ac:419: -1- LTDL_INIT -m4trace:configure.ac:419: -1- m4_pattern_allow([^LIBLTDL$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LTDLDEPS$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LTDLINCL$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^INCLTDL$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_LTDL$]) -m4trace:configure.ac:419: -1- _LTDL_SETUP -m4trace:configure.ac:419: -1- LT_SYS_MODULE_EXT -m4trace:configure.ac:419: -1- m4_pattern_allow([LT_MODULE_EXT]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_MODULE_EXT$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([LT_SHARED_EXT]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_SHARED_EXT$]) -m4trace:configure.ac:419: -1- LT_SYS_MODULE_PATH -m4trace:configure.ac:419: -1- m4_pattern_allow([LT_MODULE_PATH_VAR]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_MODULE_PATH_VAR$]) -m4trace:configure.ac:419: -1- LT_SYS_DLSEARCH_PATH -m4trace:configure.ac:419: -1- m4_pattern_allow([LT_DLSEARCH_PATH]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_DLSEARCH_PATH$]) -m4trace:configure.ac:419: -1- LT_LIB_DLLOAD -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_DLLOADERS$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_DLLOADERS$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_LIBDL$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_LIBDL$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_LIBDL$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_DLERROR$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LIBADD_DLOPEN$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_SHL_LOAD$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_SHL_LOAD$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LIBADD_SHL_LOAD$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_DYLD$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_DECL_CYGWIN_CONV_PATH$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_DLD$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LIBADD_DLD_LINK$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_DLPREOPEN$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_LIBDLLOADER$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_DLPREOPEN$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LIBADD_DL$]) -m4trace:configure.ac:419: -1- LT_SYS_SYMBOL_USCORE -m4trace:configure.ac:419: -1- m4_pattern_allow([^sys_symbol_underscore$]) -m4trace:configure.ac:419: -1- LT_FUNC_DLSYM_USCORE -m4trace:configure.ac:419: -1- m4_pattern_allow([^NEED_USCORE$]) -m4trace:configure.ac:419: -1- LT_SYS_DLOPEN_DEPLIBS -m4trace:configure.ac:419: -1- m4_pattern_allow([^LTDL_DLOPEN_DEPLIBS$]) -m4trace:configure.ac:419: -1- gl_FUNC_ARGZ -m4trace:configure.ac:419: -1- gl_PREREQ_ARGZ -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_ARGZ_H$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_ERROR_T$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^error_t$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^__error_t_defined$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^_LT_LIBOBJS$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_WORKING_ARGZ$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^_LT_LIBOBJS$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^ARGZ_H$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^HAVE_PRELOADED_SYMBOLS$]) -m4trace:configure.ac:419: -1- AM_CONDITIONAL([INSTALL_LTDL], [test x"${enable_ltdl_install-no}" != xno]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^INSTALL_LTDL_TRUE$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^INSTALL_LTDL_FALSE$]) -m4trace:configure.ac:419: -1- _AM_SUBST_NOTMAKE([INSTALL_LTDL_TRUE]) -m4trace:configure.ac:419: -1- _AM_SUBST_NOTMAKE([INSTALL_LTDL_FALSE]) -m4trace:configure.ac:419: -1- AM_CONDITIONAL([CONVENIENCE_LTDL], [test x"${enable_ltdl_convenience-no}" != xno]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^CONVENIENCE_LTDL_TRUE$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^CONVENIENCE_LTDL_FALSE$]) -m4trace:configure.ac:419: -1- _AM_SUBST_NOTMAKE([CONVENIENCE_LTDL_TRUE]) -m4trace:configure.ac:419: -1- _AM_SUBST_NOTMAKE([CONVENIENCE_LTDL_FALSE]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^subdirs$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_CONFIG_H$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^_LT_LIBOBJS$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^_LT_LIBOBJS$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([LT_LIBEXT]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_LIBEXT$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([LT_LIBPREFIX]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LT_LIBPREFIX$]) -m4trace:configure.ac:419: -1- m4_pattern_allow([^LTDLOPEN$]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^LTLIBOBJS$]) -m4trace:configure.ac:465: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) -m4trace:configure.ac:465: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) -m4trace:configure.ac:465: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^LT_CONFIG_H$]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^ltdl_LIBOBJS$]) -m4trace:configure.ac:465: -1- m4_pattern_allow([^ltdl_LTLIBOBJS$]) -m4trace:configure.ac:465: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"]) -m4trace:configure.ac:465: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS -m4trace:configure.ac:465: -1- _LT_PROG_LTMAIN +m4trace:configure.ac:414: -1- m4_pattern_allow([^HAVE_SODIUM_MLOCK$]) +m4trace:configure.ac:418: -1- LT_INIT([dlopen]) +m4trace:configure.ac:419: -1- LT_CONFIG_LTDL_DIR([libltdl]) +m4trace:configure.ac:420: -1- LTDL_INIT +m4trace:configure.ac:420: -1- m4_pattern_allow([^LIBLTDL$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LTDLDEPS$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LTDLINCL$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^INCLTDL$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_LTDL$]) +m4trace:configure.ac:420: -1- _LTDL_SETUP +m4trace:configure.ac:420: -1- LT_SYS_MODULE_EXT +m4trace:configure.ac:420: -1- m4_pattern_allow([LT_MODULE_EXT]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_MODULE_EXT$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([LT_SHARED_EXT]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_SHARED_EXT$]) +m4trace:configure.ac:420: -1- LT_SYS_MODULE_PATH +m4trace:configure.ac:420: -1- m4_pattern_allow([LT_MODULE_PATH_VAR]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_MODULE_PATH_VAR$]) +m4trace:configure.ac:420: -1- LT_SYS_DLSEARCH_PATH +m4trace:configure.ac:420: -1- m4_pattern_allow([LT_DLSEARCH_PATH]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_DLSEARCH_PATH$]) +m4trace:configure.ac:420: -1- LT_LIB_DLLOAD +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_DLLOADERS$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_DLLOADERS$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_LIBDL$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_LIBDL$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_LIBDL$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_DLERROR$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LIBADD_DLOPEN$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_SHL_LOAD$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_SHL_LOAD$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LIBADD_SHL_LOAD$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_DYLD$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_DECL_CYGWIN_CONV_PATH$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_DLD$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LIBADD_DLD_LINK$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_DLPREOPEN$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_LIBDLLOADER$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_DLPREOPEN$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LIBADD_DL$]) +m4trace:configure.ac:420: -1- LT_SYS_SYMBOL_USCORE +m4trace:configure.ac:420: -1- m4_pattern_allow([^sys_symbol_underscore$]) +m4trace:configure.ac:420: -1- LT_FUNC_DLSYM_USCORE +m4trace:configure.ac:420: -1- m4_pattern_allow([^NEED_USCORE$]) +m4trace:configure.ac:420: -1- LT_SYS_DLOPEN_DEPLIBS +m4trace:configure.ac:420: -1- m4_pattern_allow([^LTDL_DLOPEN_DEPLIBS$]) +m4trace:configure.ac:420: -1- gl_FUNC_ARGZ +m4trace:configure.ac:420: -1- gl_PREREQ_ARGZ +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_ARGZ_H$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_ERROR_T$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^error_t$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^__error_t_defined$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^_LT_LIBOBJS$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_WORKING_ARGZ$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^_LT_LIBOBJS$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^ARGZ_H$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^HAVE_PRELOADED_SYMBOLS$]) +m4trace:configure.ac:420: -1- AM_CONDITIONAL([INSTALL_LTDL], [test x"${enable_ltdl_install-no}" != xno]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^INSTALL_LTDL_TRUE$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^INSTALL_LTDL_FALSE$]) +m4trace:configure.ac:420: -1- _AM_SUBST_NOTMAKE([INSTALL_LTDL_TRUE]) +m4trace:configure.ac:420: -1- _AM_SUBST_NOTMAKE([INSTALL_LTDL_FALSE]) +m4trace:configure.ac:420: -1- AM_CONDITIONAL([CONVENIENCE_LTDL], [test x"${enable_ltdl_convenience-no}" != xno]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^CONVENIENCE_LTDL_TRUE$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^CONVENIENCE_LTDL_FALSE$]) +m4trace:configure.ac:420: -1- _AM_SUBST_NOTMAKE([CONVENIENCE_LTDL_TRUE]) +m4trace:configure.ac:420: -1- _AM_SUBST_NOTMAKE([CONVENIENCE_LTDL_FALSE]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^subdirs$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_CONFIG_H$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^_LT_LIBOBJS$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^_LT_LIBOBJS$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([LT_LIBEXT]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_LIBEXT$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([LT_LIBPREFIX]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LT_LIBPREFIX$]) +m4trace:configure.ac:420: -1- m4_pattern_allow([^LTDLOPEN$]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^LTLIBOBJS$]) +m4trace:configure.ac:466: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) +m4trace:configure.ac:466: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) +m4trace:configure.ac:466: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^LT_CONFIG_H$]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^ltdl_LIBOBJS$]) +m4trace:configure.ac:466: -1- m4_pattern_allow([^ltdl_LTLIBOBJS$]) +m4trace:configure.ac:466: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"]) +m4trace:configure.ac:466: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS +m4trace:configure.ac:466: -1- _LT_PROG_LTMAIN diff --git a/release/src/router/dnscrypt/config.h.in b/release/src/router/dnscrypt/config.h.in index 8096db0be5..535ff4c094 100644 --- a/release/src/router/dnscrypt/config.h.in +++ b/release/src/router/dnscrypt/config.h.in @@ -133,6 +133,9 @@ /* define if you have sin_len */ #undef HAVE_SIN_LEN +/* Define to 1 if you have the `sodium_mlock' function. */ +#undef HAVE_SODIUM_MLOCK + /* define if you have ss_len */ #undef HAVE_SS_LEN diff --git a/release/src/router/dnscrypt/configure b/release/src/router/dnscrypt/configure index 3f2fe141dc..697b585a76 100755 --- a/release/src/router/dnscrypt/configure +++ b/release/src/router/dnscrypt/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for dnscrypt-proxy 1.3.4. +# Generated by GNU Autoconf 2.69 for dnscrypt-proxy 1.4.0. # # Report bugs to . # @@ -594,8 +594,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='dnscrypt-proxy' PACKAGE_TARNAME='dnscrypt-proxy' -PACKAGE_VERSION='1.3.4' -PACKAGE_STRING='dnscrypt-proxy 1.3.4' +PACKAGE_VERSION='1.4.0' +PACKAGE_STRING='dnscrypt-proxy 1.4.0' PACKAGE_BUGREPORT='http://dnscrypt.org' PACKAGE_URL='' @@ -1376,7 +1376,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures dnscrypt-proxy 1.3.4 to adapt to many kinds of systems. +\`configure' configures dnscrypt-proxy 1.4.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1446,7 +1446,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of dnscrypt-proxy 1.3.4:";; + short | recursive ) echo "Configuration of dnscrypt-proxy 1.4.0:";; esac cat <<\_ACEOF @@ -1466,7 +1466,7 @@ Optional Features: --disable-ssp Do not compile with -fstack-protector --disable-pie Do not produce position independent executables --enable-debug For maintainers only - please do not use - --enable-plugins Enable support for plugins - experimental + --enable-plugins Enable support for plugins --enable-relaxed-plugins-permissions Allow loading plugins owned by other users --enable-plugins-root Only load plugins sitting in the default plugins @@ -1575,7 +1575,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -dnscrypt-proxy configure 1.3.4 +dnscrypt-proxy configure 1.4.0 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2044,7 +2044,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by dnscrypt-proxy $as_me 1.3.4, which was +It was created by dnscrypt-proxy $as_me 1.4.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2986,7 +2986,7 @@ fi # Define the identity of the package. PACKAGE='dnscrypt-proxy' - VERSION='1.3.4' + VERSION='1.4.0' cat >>confdefs.h <<_ACEOF @@ -15379,6 +15379,17 @@ _ACEOF fi done +for ac_func in sodium_mlock +do : + ac_fn_c_check_func "$LINENO" "sodium_mlock" "ac_cv_func_sodium_mlock" +if test "x$ac_cv_func_sodium_mlock" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SODIUM_MLOCK 1 +_ACEOF + +fi +done + @@ -17063,7 +17074,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by dnscrypt-proxy $as_me 1.3.4, which was +This file was extended by dnscrypt-proxy $as_me 1.4.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -17129,7 +17140,7 @@ _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -dnscrypt-proxy config.status 1.3.4 +dnscrypt-proxy config.status 1.4.0 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff --git a/release/src/router/dnscrypt/configure.ac b/release/src/router/dnscrypt/configure.ac index 8560275fb4..9a49e32eb9 100644 --- a/release/src/router/dnscrypt/configure.ac +++ b/release/src/router/dnscrypt/configure.ac @@ -1,5 +1,5 @@ AC_PREREQ([2.65]) -AC_INIT([dnscrypt-proxy],[1.3.4],[http://dnscrypt.org]) +AC_INIT([dnscrypt-proxy],[1.4.0],[http://dnscrypt.org]) AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_AUX_DIR([libltdl/config]) AC_CONFIG_SRCDIR([src/proxy/app.c]) @@ -68,7 +68,7 @@ AC_ARG_ENABLE(debug, plugins=disabled AC_ARG_ENABLE(plugins, -[AS_HELP_STRING(--enable-plugins,Enable support for plugins - experimental)], +[AS_HELP_STRING(--enable-plugins,Enable support for plugins)], [ AS_IF([test "x$enableval" != "xno"], [ CPPFLAGS="$CPPFLAGS -DPLUGINS=1" @@ -411,6 +411,7 @@ AC_CHECK_HEADER([CoreServices/CoreServices.h], [LIBS="$LIBS -framework CoreFoundation -framework CoreServices"]) AC_CHECK_FUNCS([getpwnam sandbox_init setrlimit putc_unlocked gmtime_r]) +AC_CHECK_FUNCS([sodium_mlock]) dnl Libtool. diff --git a/release/src/router/dnscrypt/dnscrypt-resolvers.csv b/release/src/router/dnscrypt/dnscrypt-resolvers.csv new file mode 100644 index 0000000000..42c5c8967b --- /dev/null +++ b/release/src/router/dnscrypt/dnscrypt-resolvers.csv @@ -0,0 +1,35 @@ +Name,Full name,Description,Location,Coordinates,URL,Version,DNSSEC validation,No logs,Namecoin,Resolver address,Provider name,Provider public key,Provider public key TXT record +cloudns-can,CloudNS Canberra,"CloudNS is an Australian based security focused DNS provider.","Canberra, AU",,https://cloudns.com.au,1.0,yes,yes,yes,113.20.6.2:443,2.dnscrypt-cert.cloudns.com.au,1971:7C1A:C550:6C09:F09B:ACB1:1AF7:C349:6425:2676:247F:B738:1C5A:243A:C1CC:89F4, +cloudns-syd,CloudNS Sydney,"CloudNS is an Australian based security focused DNS provider.","Sydney, AU",,https://cloudns.com.au,1.0,yes,yes,yes,113.20.8.17:443,2.dnscrypt-cert-2.cloudns.com.au,67A4:323E:581F:79B9:BC54:825F:54FE:1025:8B4F:37EB:0D07:0BCE:4010:6195:D94F:E330, +d0wn-fr-ns1,First d0wn server in France,"Server provided by Martin 'd0wn' Albus",France,,https://dns.d0wn.biz,1.0,no,yes,no,188.165.25.65:54,2.dnscrypt-cert.d0wn.biz,F64D:AECA:A8AA:E31D:3896:8A93:1D96:EB54:9D70:CE57:A439:58B0:7685:6960:044B:EA62, +d0wn-fr-ns2,Second d0wn server in France,"Server provided by Martin 'd0wn' Albus",France,,https://dns.d0wn.biz,1.0,no,yes,no,37.187.0.40:54,2.dnscrypt-cert.d0wn.biz,F64D:AECA:A8AA:E31D:3896:8A93:1D96:EB54:9D70:CE57:A439:58B0:7685:6960:044B:EA62, +d0wn-im-ns1,d0wn server in Isle of Man,"Server provided by Martin 'd0wn' Albus",Isle of Man,,https://dns.d0wn.biz,1.0,no,yes,no,37.235.55.197:54,2.dnscrypt-cert.d0wn.biz,F64D:AECA:A8AA:E31D:3896:8A93:1D96:EB54:9D70:CE57:A439:58B0:7685:6960:044B:EA62, +d0wn-li-ns1,d0wn server in Lichtenstein,"Server provided by Martin 'd0wn' Albus",Lichtenstein,,https://dns.d0wn.biz,1.0,no,yes,no,88.82.108.30:54,2.dnscrypt-cert.d0wn.biz,F64D:AECA:A8AA:E31D:3896:8A93:1D96:EB54:9D70:CE57:A439:58B0:7685:6960:044B:EA62, +d0wn-nl-ns1,First d0wn server in Netherlands,"Server provided by Martin 'd0wn' Albus",Netherlands,,https://dns.d0wn.biz,1.0,no,yes,no,95.85.9.86:54,2.dnscrypt-cert.d0wn.biz,F64D:AECA:A8AA:E31D:3896:8A93:1D96:EB54:9D70:CE57:A439:58B0:7685:6960:044B:EA62, +d0wn-nl-ns2,Second d0wn server in Netherlands,"Server provided by Martin 'd0wn' Albus",Netherlands,,https://dns.d0wn.biz,1.0,no,yes,no,31.220.27.46:54,2.dnscrypt-cert.d0wn.biz,F64D:AECA:A8AA:E31D:3896:8A93:1D96:EB54:9D70:CE57:A439:58B0:7685:6960:044B:EA62, +d0wn-ro-ns1,First d0wn server in Romania,"Server provided by Martin 'd0wn' Albus",Romania,,https://dns.d0wn.biz,1.0,no,yes,no,89.46.222.115:54,2.dnscrypt-cert.d0wn.biz,F64D:AECA:A8AA:E31D:3896:8A93:1D96:EB54:9D70:CE57:A439:58B0:7685:6960:044B:EA62, +d0wn-ro-ns2,Second d0wn server in Romania,"Server provided by Martin 'd0wn' Albus",Romania,,https://dns.d0wn.biz,1.0,no,yes,no,89.46.222.116:54,2.dnscrypt-cert.d0wn.biz,F64D:AECA:A8AA:E31D:3896:8A93:1D96:EB54:9D70:CE57:A439:58B0:7685:6960:044B:EA62, +d0wn-sg-ns1,d0wn server in Singapore,"Server provided by Martin 'd0wn' Albus",Singapore,,https://dns.d0wn.biz,1.0,no,yes,no,128.199.248.105:54,2.dnscrypt-cert.d0wn.biz,F64D:AECA:A8AA:E31D:3896:8A93:1D96:EB54:9D70:CE57:A439:58B0:7685:6960:044B:EA62, +dnscrypt.eu-dk,DNSCrypt.eu Denmark,"Free, non-logged, uncensored. Hosted by Netgroup.",Denmark,,https://dnscrypt.eu,1.0,yes,yes,no,77.66.84.233:443,2.dnscrypt-cert.resolver2.dnscrypt.eu,3748:5585:E3B9:D088:FD25:AD36:B037:01F5:520C:D648:9E9A:DD52:1457:4955:9F0A:9955,pubkey.resolver2.dnscrypt.eu +dnscrypt.eu-dk-ipv6,DNSCrypt.eu Denmark over IPv6,"Free, non-logged, uncensored. Hosted by Netgroup.",Denmark,,https://dnscrypt.eu,1.0,yes,yes,no,[2001:1448:243::dc2]:443,2.dnscrypt-cert.resolver2.dnscrypt.eu,3748:5585:E3B9:D088:FD25:AD36:B037:01F5:520C:D648:9E9A:DD52:1457:4955:9F0A:9955,pubkey.resolver2.dnscrypt.eu +dnscrypt.eu-nl,DNSCrypt.eu Holland,"Free, non-logged, uncensored. Hosted by RamNode.",Netherlands,,https://dnscrypt.eu,1.0,yes,yes,no,176.56.237.171:443,2.dnscrypt-cert.resolver1.dnscrypt.eu,67C0:0F2C:21C5:5481:45DD:7CB4:6A27:1AF2:EB96:9931:40A3:09B6:2B8D:1653:1185:9C66,pubkey.resolver1.dnscrypt.eu +dnscrypt.eu-nl-ipv6,DNSCrypt.eu Holland over IPv6,"Free, non-logged, uncensored. Hosted by RamNode.",Netherlands,,https://dnscrypt.eu,1.0,yes,yes,no,[2a00:d880:3:1::a6c1:2e89]:443,2.dnscrypt-cert.resolver1.dnscrypt.eu,67C0:0F2C:21C5:5481:45DD:7CB4:6A27:1AF2:EB96:9931:40A3:09B6:2B8D:1653:1185:9C66,pubkey.resolver1.dnscrypt.eu +okturtles,okTurtles,For a surveillance-free world. HTTPS is broken. DNSChain fixes it.,"Georgia, US","33.032501, -83.895699",http://okturtles.com/,1.0,no,yes,yes,23.226.227.93:443,2.dnscrypt-cert.okturtles.com,1D85:3953:E34F:AFD0:05F9:4C6F:D1CC:E635:D411:9904:0D48:D19A:5D35:0B6A:7C81:73CB, +opendns,OpenDNS,The world’s largest internet security network,Anycast,,http://www.opendns.com,1.0,no,no,no,208.67.220.220:443,2.dnscrypt-cert.opendns.com,B735:1140:206F:225D:3E2B:D822:D7FD:691E:A1C3:3CC8:D666:8D0C:BE04:BFAB:CA43:FB79, +opendns-familyshield,OpenDNS with FamilyShield,Blocks web sites not suitable for children,Anycast,,http://www.opendns.com/home-internet-security/parental-controls/,1.0,no,no,no,208.67.220.220:443,2.dnscrypt-cert.opendns.com,B735:1140:206F:225D:3E2B:D822:D7FD:691E:A1C3:3CC8:D666:8D0C:BE04:BFAB:CA43:FB79, +opendns-ipv6,OpenDNS over IPv6,OpenDNS IPv6 sandbox,Anycast,,http://www.opendns.com/about/innovations/ipv6/,1.0,no,no,no,[2620:0:ccc::2]:443,2.dnscrypt-cert.opendns.com,B735:1140:206F:225D:3E2B:D822:D7FD:691E:A1C3:3CC8:D666:8D0C:BE04:BFAB:CA43:FB79, +opennic-ca-ns3,OpenNIC server ns3.ca,"OpenNIC server in Canada provided by NovaKing",Canada,,http://www.opennicproject.org,1.0,no,yes,no,142.4.204.111:443,2.dnscrypt-cert.ns3.ca.dns.opennic.glue,1C19:7933:1BE8:23CC:CF08:9A79:0693:7E5C:3410:2A56:AC7F:6270:E046:25B2:EDDB:04E3, +opennic-ca-ns3-ipv6,OpenNIC server ns3.ca over IPv6,"OpenNIC server in Canada provided by NovaKing",Canada,,http://www.opennicproject.org,1.0,no,yes,no,[2607:5300:60:47aa:142:4:204:111]:443,2.dnscrypt-cert.ns3.ca.dns.opennic.glue,1C19:7933:1BE8:23CC:CF08:9A79:0693:7E5C:3410:2A56:AC7F:6270:E046:25B2:EDDB:04E3, +opennic-ca-ns4,OpenNIC server ns4.ca,"OpenNIC server in Canada provided by NovaKing",Canada,,http://www.opennicproject.org,1.0,no,yes,no,142.4.205.47:443,2.dnscrypt-cert.ns4.ca.dns.opennic.glue,12FA:EC04:3489:B374:B973:CA7C:827F:D7FA:033F:D280:8641:F2F1:430A:E5DC:6068:42B8, +opennic-ca-ns4-ipv6,OpenNIC server ns4.ca over IPv6,"OpenNIC server in Canada provided by NovaKing",Canada,,http://www.opennicproject.org,1.0,no,yes,no,[2607:5300:60:47aa:142:4:205:47]:443,2.dnscrypt-cert.ns4.ca.dns.opennic.glue,12FA:EC04:3489:B374:B973:CA7C:827F:D7FA:033F:D280:8641:F2F1:430A:E5DC:6068:42B8, +opennic-jp-ns2,OpenNIC server ns2.jp,"OpenNIC server in Japan provided by Guillaume Parent",Japan,,http://www.opennicproject.org,1.0,no,yes,no,106.186.17.181:2053,2.dnscrypt-cert.ns2.jp.dns.opennic.glue,8768:C3DB:F70A:FBC6:3B64:8630:8167:2FD4:EE6F:E175:ECFD:46C9:22FC:7674:A1AC:2E2A, +opennic-jp-ns3-ipv6,OpenNIC server ns3.jp over IPv6,"OpenNIC server in Japan provided by Guillaume Parent",Japan,,http://www.opennicproject.org,1.0,no,yes,no,[2400:8900::f03c:91ff:fe70:c452]:2053,2.dnscrypt-cert.ns2.jp.dns.opennic.glue,8768:C3DB:F70A:FBC6:3B64:8630:8167:2FD4:EE6F:E175:ECFD:46C9:22FC:7674:A1AC:2E2A, +opennic-uk-ns10,OpenNIC server ns10.uk,"OpenNIC server in UK provided by NovaKing",UK,,http://www.opennicproject.org,1.0,no,yes,no,185.19.105.14:443,2.dnscrypt-cert.ns10.uk.dns.opennic.glue,B1AB:7025:1119:9AEE:E42E:1B12:F2EF:12D4:53D9:CD92:E07B:9AF4:4794:F6EB:E5A4:F725, +opennic-uk-ns10-ipv6,OpenNIC server ns10.uk over IPv6,"OpenNIC server in UK provided by NovaKing",UK,,http://www.opennicproject.org,1.0,no,yes,no,[2a04:1400:1337:2000::14]:443,2.dnscrypt-cert.ns10.uk.dns.opennic.glue,B1AB:7025:1119:9AEE:E42E:1B12:F2EF:12D4:53D9:CD92:E07B:9AF4:4794:F6EB:E5A4:F725, +opennic-uk-ns8,OpenNIC server ns8.uk,"OpenNIC server in UK provided by NovaKing",UK,,http://www.opennicproject.org,1.0,no,yes,no,185.19.104.45:443,2.dnscrypt-cert.ns8.uk.dns.opennic.glue,A17C:06FC:BA21:F2AC:F4CD:9374:016A:684F:4F56:564A:EB30:A422:3D9D:1580:A461:B6A6, +opennic-uk-ns8-ipv6,OpenNIC server ns8.uk over IPv6,"OpenNIC server in UK provided by NovaKing",UK,,http://www.opennicproject.org,1.0,no,yes,no,[2a04:1400:1337:1534::45]:443,2.dnscrypt-cert.ns8.uk.dns.opennic.glue,A17C:06FC:BA21:F2AC:F4CD:9374:016A:684F:4F56:564A:EB30:A422:3D9D:1580:A461:B6A6, +opennic-uk-ns9,OpenNIC server ns9.uk,"OpenNIC server in UK provided by NovaKing",UK,,http://www.opennicproject.org,1.0,no,yes,no,185.19.105.6:443,2.dnscrypt-cert.ns9.uk.dns.opennic.glue,E864:80D9:DFBD:9DB4:58EA:8063:292F:EC41:9126:8394:BC44:FAB8:4B6E:B104:8C3B:E0B4, +opennic-uk-ns9-ipv6,OpenNIC server ns9.uk over IPv6,"OpenNIC server in UK provided by NovaKing",UK,,http://www.opennicproject.org,1.0,no,yes,no,[2a04:1400:1337:2000::6]:443,2.dnscrypt-cert.ns9.uk.dns.opennic.glue,E864:80D9:DFBD:9DB4:58EA:8063:292F:EC41:9126:8394:BC44:FAB8:4B6E:B104:8C3B:E0B4, +opennic-us-ca-ns17,OpenNIC server ns17.ca.us,"OpenNIC server in California provided by Philip Southam","Fremont, CA, US",,http://www.opennicproject.org,1.0,no,yes,no,173.230.156.28:443,2.dnscrypt-cert.ns17.ca.us.dns.opennic.glue,2342:215C:409A:85A5:FB63:2A3B:42CD:5089:6BA8:551A:8BDC:2654:CF57:804F:B1B2:5019, +opennic-us-ca-ns17-ipv6,OpenNIC server ns17.ca.us over IPv6,"OpenNIC server in California provided by Philip Southam","Fremont, CA, US",,http://www.opennicproject.org,1.0,no,yes,no,[2600:3c01::f03c:91ff:fe6e:1f6b]:443,2.dnscrypt-cert.ns17.ca.us.dns.opennic.glue,2342:215C:409A:85A5:FB63:2A3B:42CD:5089:6BA8:551A:8BDC:2654:CF57:804F:B1B2:5019, +soltysiak,Soltysiak,Public DNSCrypt server in Poland,Poland,"52.4014619, 16.9278078",http://dc1.soltysiak.com/,1.0,yes,yes,yes,178.216.201.222:2053,2.dnscrypt-cert.soltysiak.com,25C4:E188:2915:4697:8F9C:2BBD:B6A7:AFA4:01ED:A051:0508:5D53:03E7:1928:C066:8F21,pubkey.dc1.soltysiak.com diff --git a/release/src/router/dnscrypt/dnscrypt-resolvers.csv.sig b/release/src/router/dnscrypt/dnscrypt-resolvers.csv.sig new file mode 100644 index 0000000000000000000000000000000000000000..522ac9b9a7ea91c073a0d8ada9ad262dc54e685c GIT binary patch literal 72 zcwPZW0Jr~$Mg#y60ssaD0#jN6G5`t*5Rz-f7aZQCIcrn^pHW27tt!GWm|Y;PVa!TX eIB%Qi6abzw!;lGRInMpf=r{R@kA?8P1OAE|?Ho=3 literal 0 HcwPel00001 diff --git a/release/src/router/dnscrypt/man/dnscrypt-proxy.8 b/release/src/router/dnscrypt/man/dnscrypt-proxy.8 index aa1e758c26..59d3a9321a 100644 --- a/release/src/router/dnscrypt/man/dnscrypt-proxy.8 +++ b/release/src/router/dnscrypt/man/dnscrypt-proxy.8 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "DNSCRYPT\-PROXY" "8" "January 2014" "" "" +.TH "DNSCRYPT\-PROXY" "8" "April 2014" "" "" . .SH "NAME" \fBdnscrypt\-proxy\fR \- A DNSCrypt forwarder @@ -45,6 +45,9 @@ Intead, run a DNS cache like \fBUnbound\fR, and configure it to use \fBdnscrypt\ \fB\-k\fR, \fB\-\-provider\-key=\fR: specify the provider public key (see below)\. . .IP "\(bu" 4 +\fB\-L\fR, \fB\-\-resolvers\-list=\fR: path to the CSV file containing the list of available resolvers, and the parameters to use them\. +. +.IP "\(bu" 4 \fB\-l\fR, \fB\-\-logfile=\fR: log events to this file instead of the standard output\. . .IP "\(bu" 4 @@ -57,6 +60,9 @@ Intead, run a DNS cache like \fBUnbound\fR, and configure it to use \fBdnscrypt\ \fB\-p\fR, \fB\-\-pidfile=\fR: write the PID number to a file\. . .IP "\(bu" 4 +\fB\-R\fR, \fB\-\-resolver\-name=\fR: name of the resolver to use, from the list of available resolvers (see \fB\-L\fR)\. +. +.IP "\(bu" 4 \fB\-r\fR, \fB\-\-resolver\-address=[:port]\fR: a DNSCrypt\-capable resolver IP address with an optional port\. The default port is 443\. . .IP "\(bu" 4 @@ -83,7 +89,7 @@ A public key is 256\-bit long, and it has to be specified as a hexadecimal strin . .nf -$ dnscrypt\-proxy \-\-daemonize +$ dnscrypt\-proxy \-\-daemonize \-\-resolver\-name=\.\.\. . .fi . diff --git a/release/src/router/dnscrypt/man/dnscrypt-proxy.8.markdown b/release/src/router/dnscrypt/man/dnscrypt-proxy.8.markdown index 1690f93871..55d762ccfb 100644 --- a/release/src/router/dnscrypt/man/dnscrypt-proxy.8.markdown +++ b/release/src/router/dnscrypt/man/dnscrypt-proxy.8.markdown @@ -49,6 +49,9 @@ ports. * `-k`, `--provider-key=`: specify the provider public key (see below). + * `-L`, `--resolvers-list=`: path to the CSV file containing + the list of available resolvers, and the parameters to use them. + * `-l`, `--logfile=`: log events to this file instead of the standard output. @@ -61,6 +64,9 @@ ports. * `-p`, `--pidfile=`: write the PID number to a file. + * `-R`, `--resolver-name=`: name of the resolver to use, from + the list of available resolvers (see `-L`). + * `-r`, `--resolver-address=[:port]`: a DNSCrypt-capable resolver IP address with an optional port. The default port is 443. @@ -89,7 +95,7 @@ string, with optional columns. ## SIMPLE USAGE EXAMPLE - $ dnscrypt-proxy --daemonize + $ dnscrypt-proxy --daemonize --resolver-name=... ## ADVANCED USAGE EXAMPLE diff --git a/release/src/router/dnscrypt/man/hostip.8 b/release/src/router/dnscrypt/man/hostip.8 index dce0982183..a8a28d690a 100644 --- a/release/src/router/dnscrypt/man/hostip.8 +++ b/release/src/router/dnscrypt/man/hostip.8 @@ -1,7 +1,7 @@ .\" generated with Ronn/v0.7.3 .\" http://github.com/rtomayko/ronn/tree/0.7.3 . -.TH "HOSTIP" "8" "January 2014" "" "" +.TH "HOSTIP" "8" "February 2014" "" "" . .SH "NAME" \fBhostip\fR \- Resolve a host name to an IP address @@ -43,7 +43,7 @@ $ hostip www\.example\.com . .nf -$ hostip \-6 \-r 213\.154\.224\.3 www\.google\.com +$ hostip \-6 \-r 4\.2\.2\.2 www\.google\.com . .fi . diff --git a/release/src/router/dnscrypt/man/hostip.8.markdown b/release/src/router/dnscrypt/man/hostip.8.markdown index 9874c3d5cf..bd5981cdb3 100644 --- a/release/src/router/dnscrypt/man/hostip.8.markdown +++ b/release/src/router/dnscrypt/man/hostip.8.markdown @@ -30,7 +30,7 @@ dnscrypt-proxy(8) is started. ## ADVANCED USAGE EXAMPLE - $ hostip -6 -r 213.154.224.3 www.google.com + $ hostip -6 -r 4.2.2.2 www.google.com ## EXIT STATUS diff --git a/release/src/router/dnscrypt/org.dnscrypt.osx.DNSCryptProxy.plist b/release/src/router/dnscrypt/org.dnscrypt.osx.DNSCryptProxy.plist index 2f9c25d757..88caf52075 100644 --- a/release/src/router/dnscrypt/org.dnscrypt.osx.DNSCryptProxy.plist +++ b/release/src/router/dnscrypt/org.dnscrypt.osx.DNSCryptProxy.plist @@ -12,6 +12,7 @@ /usr/local/sbin/dnscrypt-proxy --user=nobody + --resolver-name=***CHANGETHIS*** StandardErrorPath /dev/null diff --git a/release/src/router/dnscrypt/packages/debian/changelog b/release/src/router/dnscrypt/packages/debian/changelog index 7b28deedd7..52e01c7646 100644 --- a/release/src/router/dnscrypt/packages/debian/changelog +++ b/release/src/router/dnscrypt/packages/debian/changelog @@ -1,4 +1,4 @@ -dnscrypt-proxy (1.3.3-0) unstable; urgency=low +dnscrypt-proxy (1.3.3-1) unstable; urgency=low * New upstream release * Added .defaults file with configuration, updated Upstart job accordingly diff --git a/release/src/router/dnscrypt/packages/debian/control b/release/src/router/dnscrypt/packages/debian/control index 694a5fc2ca..16f7675013 100644 --- a/release/src/router/dnscrypt/packages/debian/control +++ b/release/src/router/dnscrypt/packages/debian/control @@ -5,17 +5,17 @@ Maintainer: Sergey "Shnatsel" Davidoff Build-Depends: debhelper (>= 8.0.0), autotools-dev, dh-apparmor, libsodium-dev Standards-Version: 3.9.4 Homepage: http://dnscrypt.org -Vcs-Git: git://github.com/opendns/dnscrypt-proxy.git -Vcs-Browser: https://github.com/opendns/dnscrypt-proxy +Vcs-Git: git://github.com/jedisct1/dnscrypt-proxy.git +Vcs-Browser: https://github.com/jedisct1/dnscrypt-proxy Package: dnscrypt-proxy Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, adduser -Description: A tool for securing communications between a client and a DNS resolver +Suggests: resolvconf +Description: Tool for securing communications between a client and a DNS resolver dnscrypt-proxy provides local service which can be used directly as your local resolver or as a DNS forwarder, encrypting and authenticating requests using - the DNSCrypt protocol and passing them to an upstream server, by default - OpenDNS who run this on their resolvers. + the DNSCrypt protocol and passing them to an upstream server. . The DNSCrypt protocol uses high-speed high-security elliptic-curve cryptography and is very similar to DNSCurve, but focuses on securing diff --git a/release/src/router/dnscrypt/packages/debian/copyright b/release/src/router/dnscrypt/packages/debian/copyright index 4e92bdad60..236d3d3508 100644 --- a/release/src/router/dnscrypt/packages/debian/copyright +++ b/release/src/router/dnscrypt/packages/debian/copyright @@ -1,9 +1,9 @@ Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: dnscrypt-proxy -Source: https://github.com/opendns/dnscrypt-proxy/ +Source: https://github.com/jedisct1/dnscrypt-proxy/ Files: * -Copyright: 2011-2013 Frank Denis +Copyright: 2011-2014 Frank Denis License: ISC Permission to use, copy, modify, and distribute this software for any purpose with or without fee is hereby granted, provided that the above diff --git a/release/src/router/dnscrypt/packages/debian/dnscrypt-proxy.default b/release/src/router/dnscrypt/packages/debian/dnscrypt-proxy.default index 67203390a9..6cf35ed6c6 100644 --- a/release/src/router/dnscrypt/packages/debian/dnscrypt-proxy.default +++ b/release/src/router/dnscrypt/packages/debian/dnscrypt-proxy.default @@ -4,40 +4,23 @@ # What local IP the daemon will listen to, with an optional port. The default port is 53. local-address=127.0.0.2:53 +# instructs resolvconf (if installed) to update the machine dns servers +resolvconf=no + # Write PID to a file. pidfile=/run/dnscrypt-proxy.pid +# runs dnscrypt-proxy as a dedicated user with restrict privileges +# This is a security feature and should never be disabled. +user=dnscrypt + # Remote DNS(Crypt) provider settings -# -# OpenDNS: +# You can find a list of resolvers at https://github.com/jedisct1/dnscrypt-proxy/ +# or locally in file /usr/share/doc/dnscrypt-proxy/README.markdown.gz +# Specifying multiple resolvers is not yet supported! #resolver-address=208.67.220.220:443 #provider-name=2.dnscrypt-cert.opendns.com #provider-key=B735:1140:206F:225D:3E2B:D822:D7FD:691E:A1C3:3CC8:D666:8D0C:BE04:BFAB:CA43:FB79 -# -# DNSCrypt.eu: -#resolver-address=176.56.237.171:443 -#provider-name=2.dnscrypt-cert.dnscrypt.eu -#provider-key=67C0:0F2C:21C5:5481:45DD:7CB4:6A27:1AF2:EB96:9931:40A3:09B6:2B8D:1653:1185:9C66 -# -# OpenNIC (Japan): -#resolver-address=106.186.17.181:2053 -#provider-name=2.dnscrypt-cert.ns2.jp.dns.opennic.glue -#provider-key=8768:C3DB:F70A:FBC6:3B64:8630:8167:2FD4:EE6F:E175:ECFD:46C9:22FC:7674:A1AC:2E2A -# -# OpenNIC (UK) - NovaKing (ns8): -#resolver-address=185.19.104.45:443 -#provider-name=2.dnscrypt-cert.ns8.uk.dns.opennic.glue -#provider-key=A17C:06FC:BA21:F2AC:F4CD:9374:016A:684F:4F56:564A:EB30:A422:3D9D:1580:A461:B6A6 -# -# OpenNIC (UK) - NovaKing (ns9): -#resolver-address=185.19.105.6:443 -#provider-name=2.dnscrypt-cert.ns9.uk.dns.opennic.glue -#provider-key=E864:80D9:DFBD:9DB4:58EA:8063:292F:EC41:9126:8394:BC44:FAB8:4B6E:B104:8C3B:E0B4 -# -# OpenNIC (UK) - NovaKing (ns10): -#resolver-address=185.19.105.14:443 -#provider-name=2.dnscrypt-cert.ns10.uk.dns.opennic.glue -#provider-key=B1AB:7025:1119:9AEE:E42E:1B12:F2EF:12D4:53D9:CD92:E07B:9AF4:4794:F6EB:E5A4:F725 # Transparently add an OPT pseudo-RR to outgoing queries in order to enable the EDNS0 extension mechanism. # This feature is enabled by default, with a payload size of 1252 bytes. Any value below 512 disables it. diff --git a/release/src/router/dnscrypt/packages/debian/dnscrypt-proxy.init b/release/src/router/dnscrypt/packages/debian/dnscrypt-proxy.init new file mode 100644 index 0000000000..d453ada71f --- /dev/null +++ b/release/src/router/dnscrypt/packages/debian/dnscrypt-proxy.init @@ -0,0 +1,133 @@ +#!/bin/sh -e + +### BEGIN INIT INFO +# Provides: dnscrypt-proxy +# Required-Start: $remote_fs +# Required-Stop: $remote_fs +# Should-Start: $network $syslog +# Should-Stop: $network $syslog +# Default-Start: 2 3 4 5 +# Default-Stop: 0 1 6 +# Short-Description: Start and stop dnscrypt-proxy +# Description: dnscrypt-proxy is Domain Name resolver with extra security +# features and enhanced privacy. +### END INIT INFO + +PATH=/sbin:/bin:/usr/sbin:/usr/bin + +# for a chrooted server: "user=dnscrypt" +# Don't modify this line, change or create /etc/default/dnscrypt-proxy. +OPTIONS="" +CONF="/etc/default/dnscrypt-proxy" + +. /lib/lsb/init-functions +PIDFILE="$(grep '^pidfile' $CONF | head -n 1 | cut -d '=' -f 2)" +test -n "$PIDFILE" || PIDFILE=/run/dnscrypt-proxy.pid + +check_network() { + if [ -x /usr/bin/uname ] && [ "X$(/usr/bin/uname -o)" = XSolaris ]; then + IFCONFIG_OPTS="-au" + else + IFCONFIG_OPTS="" + fi + if [ -z "$(/sbin/ifconfig $IFCONFIG_OPTS)" ]; then + #log_action_msg "No networks configured." + return 1 + fi + return 0 +} + +case "$1" in + start) + log_daemon_msg "Starting domain name proxy service..." "dnscrypt-proxy" + + if [ ! -x /usr/sbin/dnscrypt-proxy ]; then + log_action_msg "dnscrypt-proxy binary missing - not starting" + log_end_msg 1 + fi + + if ! check_network; then + log_action_msg "no networks configured" + log_end_msg 1 + fi + + params="$(grep -v '^#' $CONF | cut -d '#' -f 1 | grep -v 'resolvconf')" + for parameter in $params; do + test -n "$parameter" && OPTIONS="$OPTIONS --$parameter" + done + + if start-stop-daemon --start --background --oknodo --quiet --exec /usr/sbin/dnscrypt-proxy \ + --pidfile ${PIDFILE} -- $OPTIONS; then + if [ "X$resolvconf" != "Xno" ] && [ -x /sbin/resolvconf ] ; then + echo "nameserver $(grep '^local-address' $CONF | head -n 1 \ + | cut -d '=' -f 2 | cut -d ':' -f 1)" \ + | /sbin/resolvconf -a lo.dnscrypt + fi + log_end_msg 0 + else + log_end_msg 1 + fi + ;; + + stop) + log_daemon_msg "Stopping domain name proxy service..." "dnscrypt-proxy" + if ! check_network; then + log_action_msg "no networks configured" + log_end_msg 1 + fi + + if [ "X$resolvconf" != "Xno" ] && [ -x /sbin/resolvconf ] ; then + /sbin/resolvconf -d lo.dnscrypt + fi + pid=$(pgrep --newest -f ^/usr/sbin/dnscrypt-proxy) || true + start-stop-daemon --stop --oknodo --quiet --exec /usr/sbin/dnscrypt-proxy \ + --pidfile ${PIDFILE} -- $OPTIONS + n=0 + if [ -n "$pid" ]; then + sig=0 + while kill -$sig $pid 2>/dev/null; do + if [ $n -eq 1 ]; then + echo -n " waiting for pid $pid to die" + fi + if [ $n -eq 11 ]; then + echo -n ". giving up on pid $pid with kill -0; trying -9" + sig=9 + fi + if [ $n -gt 20 ]; then + echo -n ". giving up on pid $pid." + break + fi + n=$(($n+1)) + sleep 1 + done + fi + if [ $n -gt 20 ] || [ $n -lt 1 ]; then + log_end_msg 1 + else + log_end_msg 0 + fi + ;; + + restart|reload|force-reload) + if ! check_network; then + log_action_msg "no networks configured" + exit 1 + fi + + $0 stop + $0 start + ;; + + status) + ret=0 + status_of_proc -p ${PIDFILE} /usr/sbin/dnscrypt-proxy dnscrypt-proxy 2>/dev/null || ret=$? + exit $ret + ;; + + *) + log_action_msg "Usage: /etc/init.d/dnscrypt-proxy {start|stop|reload|restart|force-reload|status}" + exit 1 + ;; +esac + +exit 0 diff --git a/release/src/router/dnscrypt/packages/debian/dnscrypt-proxy.upstart b/release/src/router/dnscrypt/packages/debian/dnscrypt-proxy.upstart index 956066e969..edc63aaaaa 100644 --- a/release/src/router/dnscrypt/packages/debian/dnscrypt-proxy.upstart +++ b/release/src/router/dnscrypt/packages/debian/dnscrypt-proxy.upstart @@ -7,17 +7,20 @@ pre-start script # This is the home dir of user "dnscrypt" # dnscrypt-proxy will chroot there for security reasons mkdir -p /run/dnscrypt + + #Load the AppArmor profile, otherwise it wouldn't be applied + /lib/init/apparmor-profile-load usr.sbin.dnscrypt-proxy || true end script script conffile="/etc/default/dnscrypt-proxy" if test -r "$conffile"; then - params="$(grep -v '^#' $conffile | cut -d '#' -f 1)" + params="$(grep -v '^#' $conffile | cut -d '#' -f 1 | grep -v '^resolvconf')" for parameter in $params; do test -n "$parameter" && options="$options --$parameter" done fi - exec /usr/sbin/dnscrypt-proxy --user=dnscrypt $options + exec /usr/sbin/dnscrypt-proxy $options end script diff --git a/release/src/router/dnscrypt/packages/fpm/fpm.sh b/release/src/router/dnscrypt/packages/fpm/fpm.sh index 1ce8f1b979..4f42be79b5 100755 --- a/release/src/router/dnscrypt/packages/fpm/fpm.sh +++ b/release/src/router/dnscrypt/packages/fpm/fpm.sh @@ -1,10 +1,10 @@ #! /bin/sh -VERSION="1.3.0" +VERSION="1.4.0" MAINTAINER="Frank Denis " CATEGORY="net" URL="http://dnscrypt.org" -VENDOR="OpenDNS" +VENDOR="Frank Denis" DESCRIPTION="A tool for securing communications between a client and a DNS resolver The DNSCrypt protocol is very similar to DNSCurve, but focuses on securing communications between a client and its first-level resolver. @@ -15,7 +15,7 @@ DNS queries. The DNSCrypt daemon acts as a DNS proxy between a regular client, like a DNS cache or an operating system stub resolver, and a DNSCrypt-aware -resolver, like OpenDNS." +resolver." TMPDIR=${TMPDIR:-/tmp} BASE_DIR=$(mktemp -d "$TMPDIR"/dnscrypt.XXXXXX) INSTALL_DIR="${BASE_DIR}/usr" diff --git a/release/src/router/dnscrypt/packages/gentoo/net-dns/dnscrypt-proxy/files/dnscrypt-proxy_1_2_0.initd b/release/src/router/dnscrypt/packages/gentoo/net-dns/dnscrypt-proxy/files/dnscrypt-proxy_1_2_0.initd index a7980221c8..bc6ed9b0c6 100644 --- a/release/src/router/dnscrypt/packages/gentoo/net-dns/dnscrypt-proxy/files/dnscrypt-proxy_1_2_0.initd +++ b/release/src/router/dnscrypt/packages/gentoo/net-dns/dnscrypt-proxy/files/dnscrypt-proxy_1_2_0.initd @@ -2,9 +2,24 @@ DNSCRYPT_LOGFILE=${DNSCRYPT_LOGFILE:-/var/log/dnscrypt-proxy.log} -rundir=${rundir:-/var/run/dnscrypt-proxy} +OPTIONS=" " +if [ -n "$DNSCRYPT_LOGLEVEL" ]; then + OPTIONS="${OPTIONS} --loglevel=${DNSCRYPT_LOGLEVEL}" +fi +if [ -n "$DNSCRYPT_PROVIDER_KEY" ]; then + OPTIONS="${OPTIONS} --provider-key=${DNSCRYPT_PROVIDER_KEY}" +fi + +if [ -n "$DNSCRYPT_PROVIDER_NAME" ]; then + OPTIONS="${OPTIONS} --provider-name=${DNSCRYPT_PROVIDER_NAME}" +fi + +if [ -n "$DNSCRYPT_PROVIDER_ADDRESS" ]; then + OPTIONS="${OPTIONS} --resolver-address=${DNSCRYPT_PROVIDER_ADDRESS}" +fi + +rundir=${rundir:-/run/dnscrypt-proxy} pidfile=${pidfile:-${rundir}/dnscrypt-proxy.pid} -rundir=${rundir:-/var/run/dnscrypt-proxy} runas_user=${runas_user:-dnscrypt} runas_group=${runas_user:-dnscrypt} @@ -26,7 +41,7 @@ start() { fi ebegin "Starting dnscrypt-proxy" - start-stop-daemon --start --quiet --pidfile=${pidfile} --exec /usr/sbin/dnscrypt-proxy -- -p ${pidfile} -l ${DNSCRYPT_LOGFILE} -d -u ${runas_group} -a ${DNSCRYPT_LOCALADDRESS} + start-stop-daemon --start --pidfile=${pidfile} --exec /usr/sbin/dnscrypt-proxy -- -p ${pidfile} -l ${DNSCRYPT_LOGFILE} -d -u ${runas_group} -a ${DNSCRYPT_LOCALADDRESS} ${OPTIONS} eend $? } diff --git a/release/src/router/dnscrypt/packages/homebrew/dnscrypt-proxy.rb b/release/src/router/dnscrypt/packages/homebrew/dnscrypt-proxy.rb deleted file mode 100644 index 8fcce587a8..0000000000 --- a/release/src/router/dnscrypt/packages/homebrew/dnscrypt-proxy.rb +++ /dev/null @@ -1,29 +0,0 @@ -require 'formula' - -class DnscryptProxy < Formula - homepage 'http://dnscrypt.org' - url 'http://download.dnscrypt.org/dnscrypt-proxy/dnscrypt-proxy-1.3.0.tar.bz2' - sha256 '211ee2d75acd631b09d012229c73654c2302234d73c9f12425e1c906520dc7c5' - - head 'https://github.com/opendns/dnscrypt-proxy.git', :branch => 'master' - - option "plugins", "Support plugins and install example plugins." - - if build.head? - depends_on :automake - depends_on :libtool - end - - def install - system "autoreconf", "-if" if build.head? - - args = ["--disable-dependency-tracking", "--prefix=#{prefix}"] - if build.include? "plugins" - args << "--enable-plugins" - args << "--enable-relaxed-plugins-permissions" - args << "--enable-plugins-root" - end - system "./configure", *args - system "make install" - end -end diff --git a/release/src/router/dnscrypt/src/hostip/options.c b/release/src/router/dnscrypt/src/hostip/options.c index bacb1c22d4..a8044f94b9 100644 --- a/release/src/router/dnscrypt/src/hostip/options.c +++ b/release/src/router/dnscrypt/src/hostip/options.c @@ -26,8 +26,7 @@ static const char *getopt_options = "6hr:V"; static void options_version(void) { - puts("hostip v" PACKAGE_VERSION "\n" - "Copyright (C) 2012 OpenDNS, Inc."); + puts("hostip v" PACKAGE_VERSION); } static void @@ -39,7 +38,7 @@ options_usage(void) " -r, --resolver-address=: the resolver IP address\n" " -V, --version: show version number\n" "\n" - "Example: hostip -r 208.67.222.222 www.example.com\n"); + "Example: hostip www.example.com\n"); } static diff --git a/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/output.0 b/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/output.0 index ad74e7ed16..c62e1ca604 100644 --- a/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/output.0 +++ b/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/output.0 @@ -1450,7 +1450,7 @@ Optional Features: --disable-debug-mode disable support for running in debug mode --disable-libevent-install, disable installation of libevent - --disable-libevent-regress, skip regress in make check + --enable-libevent-regress, enable regress in make check --enable-function-sections, make static library allow smaller binaries with --gc-sections @@ -4842,9 +4842,7 @@ fi @%:@ Check whether --enable-libevent-regress was given. if test "${enable_libevent_regress+set}" = set; then : - enableval=$enable_libevent_regress; -else - enable_libevent_regress=yes + enableval=$enable_libevent_regress; enable_libevent_regress=yes fi @%:@ Check whether --enable-function-sections was given. @@ -15090,6 +15088,15 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Disable the unused-function warnings, because these trigger # for minheap-internal.h related code. CFLAGS="$CFLAGS -Wno-unused-function" + + # clang on macosx emits warnigns for each directory specified which + # isn't "used" generating a lot of build noise (typically 3 warnings + # per file + case "$host_os" in + darwin*) + CFLAGS="$CFLAGS -Qunused-arguments" + ;; + esac fi ##This will break the world on some 64-bit architectures diff --git a/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/output.1 b/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/output.1 index ad74e7ed16..c62e1ca604 100644 --- a/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/output.1 +++ b/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/output.1 @@ -1450,7 +1450,7 @@ Optional Features: --disable-debug-mode disable support for running in debug mode --disable-libevent-install, disable installation of libevent - --disable-libevent-regress, skip regress in make check + --enable-libevent-regress, enable regress in make check --enable-function-sections, make static library allow smaller binaries with --gc-sections @@ -4842,9 +4842,7 @@ fi @%:@ Check whether --enable-libevent-regress was given. if test "${enable_libevent_regress+set}" = set; then : - enableval=$enable_libevent_regress; -else - enable_libevent_regress=yes + enableval=$enable_libevent_regress; enable_libevent_regress=yes fi @%:@ Check whether --enable-function-sections was given. @@ -15090,6 +15088,15 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Disable the unused-function warnings, because these trigger # for minheap-internal.h related code. CFLAGS="$CFLAGS -Wno-unused-function" + + # clang on macosx emits warnigns for each directory specified which + # isn't "used" generating a lot of build noise (typically 3 warnings + # per file + case "$host_os" in + darwin*) + CFLAGS="$CFLAGS -Qunused-arguments" + ;; + esac fi ##This will break the world on some 64-bit architectures diff --git a/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/output.2 b/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/output.2 index ad74e7ed16..c62e1ca604 100644 --- a/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/output.2 +++ b/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/output.2 @@ -1450,7 +1450,7 @@ Optional Features: --disable-debug-mode disable support for running in debug mode --disable-libevent-install, disable installation of libevent - --disable-libevent-regress, skip regress in make check + --enable-libevent-regress, enable regress in make check --enable-function-sections, make static library allow smaller binaries with --gc-sections @@ -4842,9 +4842,7 @@ fi @%:@ Check whether --enable-libevent-regress was given. if test "${enable_libevent_regress+set}" = set; then : - enableval=$enable_libevent_regress; -else - enable_libevent_regress=yes + enableval=$enable_libevent_regress; enable_libevent_regress=yes fi @%:@ Check whether --enable-function-sections was given. @@ -15090,6 +15088,15 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Disable the unused-function warnings, because these trigger # for minheap-internal.h related code. CFLAGS="$CFLAGS -Wno-unused-function" + + # clang on macosx emits warnigns for each directory specified which + # isn't "used" generating a lot of build noise (typically 3 warnings + # per file + case "$host_os" in + darwin*) + CFLAGS="$CFLAGS -Qunused-arguments" + ;; + esac fi ##This will break the world on some 64-bit architectures diff --git a/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/traces.0 b/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/traces.0 index c5e5243282..6dfb8578b2 100644 --- a/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/traces.0 +++ b/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/traces.0 @@ -2934,21 +2934,21 @@ m4trace:configure.ac:675: -1- m4_pattern_allow([^OPENSSL_TRUE$]) m4trace:configure.ac:675: -1- m4_pattern_allow([^OPENSSL_FALSE$]) m4trace:configure.ac:675: -1- _AM_SUBST_NOTMAKE([OPENSSL_TRUE]) m4trace:configure.ac:675: -1- _AM_SUBST_NOTMAKE([OPENSSL_FALSE]) -m4trace:configure.ac:807: -1- m4_pattern_allow([^LIBEVENT_GC_SECTIONS$]) -m4trace:configure.ac:809: -1- AM_CONDITIONAL([INSTALL_LIBEVENT], [test "$enable_libevent_install" = "yes"]) -m4trace:configure.ac:809: -1- m4_pattern_allow([^INSTALL_LIBEVENT_TRUE$]) -m4trace:configure.ac:809: -1- m4_pattern_allow([^INSTALL_LIBEVENT_FALSE$]) -m4trace:configure.ac:809: -1- _AM_SUBST_NOTMAKE([INSTALL_LIBEVENT_TRUE]) -m4trace:configure.ac:809: -1- _AM_SUBST_NOTMAKE([INSTALL_LIBEVENT_FALSE]) -m4trace:configure.ac:812: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments. +m4trace:configure.ac:816: -1- m4_pattern_allow([^LIBEVENT_GC_SECTIONS$]) +m4trace:configure.ac:818: -1- AM_CONDITIONAL([INSTALL_LIBEVENT], [test "$enable_libevent_install" = "yes"]) +m4trace:configure.ac:818: -1- m4_pattern_allow([^INSTALL_LIBEVENT_TRUE$]) +m4trace:configure.ac:818: -1- m4_pattern_allow([^INSTALL_LIBEVENT_FALSE$]) +m4trace:configure.ac:818: -1- _AM_SUBST_NOTMAKE([INSTALL_LIBEVENT_TRUE]) +m4trace:configure.ac:818: -1- _AM_SUBST_NOTMAKE([INSTALL_LIBEVENT_FALSE]) +m4trace:configure.ac:821: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments. You should run autoupdate.], []) -m4trace:configure.ac:812: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:812: -1- m4_pattern_allow([^LTLIBOBJS$]) -m4trace:configure.ac:812: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) -m4trace:configure.ac:812: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) -m4trace:configure.ac:812: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) -m4trace:configure.ac:812: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) -m4trace:configure.ac:812: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) -m4trace:configure.ac:812: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"]) -m4trace:configure.ac:812: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS -m4trace:configure.ac:812: -1- _LT_PROG_LTMAIN +m4trace:configure.ac:821: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.ac:821: -1- m4_pattern_allow([^LTLIBOBJS$]) +m4trace:configure.ac:821: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) +m4trace:configure.ac:821: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) +m4trace:configure.ac:821: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) +m4trace:configure.ac:821: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) +m4trace:configure.ac:821: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) +m4trace:configure.ac:821: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"]) +m4trace:configure.ac:821: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS +m4trace:configure.ac:821: -1- _LT_PROG_LTMAIN diff --git a/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/traces.1 b/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/traces.1 index a18720a624..f41eef795b 100644 --- a/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/traces.1 +++ b/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/traces.1 @@ -1141,46 +1141,46 @@ m4trace:configure.ac:675: -1- AC_SUBST_TRACE([OPENSSL_FALSE]) m4trace:configure.ac:675: -1- m4_pattern_allow([^OPENSSL_FALSE$]) m4trace:configure.ac:675: -1- _AM_SUBST_NOTMAKE([OPENSSL_TRUE]) m4trace:configure.ac:675: -1- _AM_SUBST_NOTMAKE([OPENSSL_FALSE]) -m4trace:configure.ac:807: -1- AC_SUBST([LIBEVENT_GC_SECTIONS]) -m4trace:configure.ac:807: -1- AC_SUBST_TRACE([LIBEVENT_GC_SECTIONS]) -m4trace:configure.ac:807: -1- m4_pattern_allow([^LIBEVENT_GC_SECTIONS$]) -m4trace:configure.ac:809: -1- AM_CONDITIONAL([INSTALL_LIBEVENT], [test "$enable_libevent_install" = "yes"]) -m4trace:configure.ac:809: -1- AC_SUBST([INSTALL_LIBEVENT_TRUE]) -m4trace:configure.ac:809: -1- AC_SUBST_TRACE([INSTALL_LIBEVENT_TRUE]) -m4trace:configure.ac:809: -1- m4_pattern_allow([^INSTALL_LIBEVENT_TRUE$]) -m4trace:configure.ac:809: -1- AC_SUBST([INSTALL_LIBEVENT_FALSE]) -m4trace:configure.ac:809: -1- AC_SUBST_TRACE([INSTALL_LIBEVENT_FALSE]) -m4trace:configure.ac:809: -1- m4_pattern_allow([^INSTALL_LIBEVENT_FALSE$]) -m4trace:configure.ac:809: -1- _AM_SUBST_NOTMAKE([INSTALL_LIBEVENT_TRUE]) -m4trace:configure.ac:809: -1- _AM_SUBST_NOTMAKE([INSTALL_LIBEVENT_FALSE]) -m4trace:configure.ac:811: -1- AC_CONFIG_FILES([libevent.pc libevent_openssl.pc libevent_pthreads.pc ]) -m4trace:configure.ac:812: -1- AC_CONFIG_FILES([Makefile include/Makefile test/Makefile sample/Makefile]) -m4trace:configure.ac:812: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments. +m4trace:configure.ac:816: -1- AC_SUBST([LIBEVENT_GC_SECTIONS]) +m4trace:configure.ac:816: -1- AC_SUBST_TRACE([LIBEVENT_GC_SECTIONS]) +m4trace:configure.ac:816: -1- m4_pattern_allow([^LIBEVENT_GC_SECTIONS$]) +m4trace:configure.ac:818: -1- AM_CONDITIONAL([INSTALL_LIBEVENT], [test "$enable_libevent_install" = "yes"]) +m4trace:configure.ac:818: -1- AC_SUBST([INSTALL_LIBEVENT_TRUE]) +m4trace:configure.ac:818: -1- AC_SUBST_TRACE([INSTALL_LIBEVENT_TRUE]) +m4trace:configure.ac:818: -1- m4_pattern_allow([^INSTALL_LIBEVENT_TRUE$]) +m4trace:configure.ac:818: -1- AC_SUBST([INSTALL_LIBEVENT_FALSE]) +m4trace:configure.ac:818: -1- AC_SUBST_TRACE([INSTALL_LIBEVENT_FALSE]) +m4trace:configure.ac:818: -1- m4_pattern_allow([^INSTALL_LIBEVENT_FALSE$]) +m4trace:configure.ac:818: -1- _AM_SUBST_NOTMAKE([INSTALL_LIBEVENT_TRUE]) +m4trace:configure.ac:818: -1- _AM_SUBST_NOTMAKE([INSTALL_LIBEVENT_FALSE]) +m4trace:configure.ac:820: -1- AC_CONFIG_FILES([libevent.pc libevent_openssl.pc libevent_pthreads.pc ]) +m4trace:configure.ac:821: -1- AC_CONFIG_FILES([Makefile include/Makefile test/Makefile sample/Makefile]) +m4trace:configure.ac:821: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments. You should run autoupdate.], []) -m4trace:configure.ac:812: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) -m4trace:configure.ac:812: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) -m4trace:configure.ac:812: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:812: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) -m4trace:configure.ac:812: -1- AC_SUBST_TRACE([LTLIBOBJS]) -m4trace:configure.ac:812: -1- m4_pattern_allow([^LTLIBOBJS$]) -m4trace:configure.ac:812: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) -m4trace:configure.ac:812: -1- AC_SUBST([am__EXEEXT_TRUE]) -m4trace:configure.ac:812: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE]) -m4trace:configure.ac:812: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) -m4trace:configure.ac:812: -1- AC_SUBST([am__EXEEXT_FALSE]) -m4trace:configure.ac:812: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE]) -m4trace:configure.ac:812: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) -m4trace:configure.ac:812: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) -m4trace:configure.ac:812: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) -m4trace:configure.ac:812: -1- AC_SUBST_TRACE([top_builddir]) -m4trace:configure.ac:812: -1- AC_SUBST_TRACE([top_build_prefix]) -m4trace:configure.ac:812: -1- AC_SUBST_TRACE([srcdir]) -m4trace:configure.ac:812: -1- AC_SUBST_TRACE([abs_srcdir]) -m4trace:configure.ac:812: -1- AC_SUBST_TRACE([top_srcdir]) -m4trace:configure.ac:812: -1- AC_SUBST_TRACE([abs_top_srcdir]) -m4trace:configure.ac:812: -1- AC_SUBST_TRACE([builddir]) -m4trace:configure.ac:812: -1- AC_SUBST_TRACE([abs_builddir]) -m4trace:configure.ac:812: -1- AC_SUBST_TRACE([abs_top_builddir]) -m4trace:configure.ac:812: -1- AC_SUBST_TRACE([INSTALL]) -m4trace:configure.ac:812: -1- AC_SUBST_TRACE([MKDIR_P]) -m4trace:configure.ac:812: -1- AC_REQUIRE_AUX_FILE([ltmain.sh]) +m4trace:configure.ac:821: -1- AC_SUBST([LIB@&t@OBJS], [$ac_libobjs]) +m4trace:configure.ac:821: -1- AC_SUBST_TRACE([LIB@&t@OBJS]) +m4trace:configure.ac:821: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.ac:821: -1- AC_SUBST([LTLIBOBJS], [$ac_ltlibobjs]) +m4trace:configure.ac:821: -1- AC_SUBST_TRACE([LTLIBOBJS]) +m4trace:configure.ac:821: -1- m4_pattern_allow([^LTLIBOBJS$]) +m4trace:configure.ac:821: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) +m4trace:configure.ac:821: -1- AC_SUBST([am__EXEEXT_TRUE]) +m4trace:configure.ac:821: -1- AC_SUBST_TRACE([am__EXEEXT_TRUE]) +m4trace:configure.ac:821: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) +m4trace:configure.ac:821: -1- AC_SUBST([am__EXEEXT_FALSE]) +m4trace:configure.ac:821: -1- AC_SUBST_TRACE([am__EXEEXT_FALSE]) +m4trace:configure.ac:821: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) +m4trace:configure.ac:821: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) +m4trace:configure.ac:821: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) +m4trace:configure.ac:821: -1- AC_SUBST_TRACE([top_builddir]) +m4trace:configure.ac:821: -1- AC_SUBST_TRACE([top_build_prefix]) +m4trace:configure.ac:821: -1- AC_SUBST_TRACE([srcdir]) +m4trace:configure.ac:821: -1- AC_SUBST_TRACE([abs_srcdir]) +m4trace:configure.ac:821: -1- AC_SUBST_TRACE([top_srcdir]) +m4trace:configure.ac:821: -1- AC_SUBST_TRACE([abs_top_srcdir]) +m4trace:configure.ac:821: -1- AC_SUBST_TRACE([builddir]) +m4trace:configure.ac:821: -1- AC_SUBST_TRACE([abs_builddir]) +m4trace:configure.ac:821: -1- AC_SUBST_TRACE([abs_top_builddir]) +m4trace:configure.ac:821: -1- AC_SUBST_TRACE([INSTALL]) +m4trace:configure.ac:821: -1- AC_SUBST_TRACE([MKDIR_P]) +m4trace:configure.ac:821: -1- AC_REQUIRE_AUX_FILE([ltmain.sh]) diff --git a/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/traces.2 b/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/traces.2 index aa72e5dcd9..9e63483168 100644 --- a/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/traces.2 +++ b/release/src/router/dnscrypt/src/libevent-modified/autom4te.cache/traces.2 @@ -2934,21 +2934,21 @@ m4trace:configure.ac:675: -1- m4_pattern_allow([^OPENSSL_TRUE$]) m4trace:configure.ac:675: -1- m4_pattern_allow([^OPENSSL_FALSE$]) m4trace:configure.ac:675: -1- _AM_SUBST_NOTMAKE([OPENSSL_TRUE]) m4trace:configure.ac:675: -1- _AM_SUBST_NOTMAKE([OPENSSL_FALSE]) -m4trace:configure.ac:807: -1- m4_pattern_allow([^LIBEVENT_GC_SECTIONS$]) -m4trace:configure.ac:809: -1- AM_CONDITIONAL([INSTALL_LIBEVENT], [test "$enable_libevent_install" = "yes"]) -m4trace:configure.ac:809: -1- m4_pattern_allow([^INSTALL_LIBEVENT_TRUE$]) -m4trace:configure.ac:809: -1- m4_pattern_allow([^INSTALL_LIBEVENT_FALSE$]) -m4trace:configure.ac:809: -1- _AM_SUBST_NOTMAKE([INSTALL_LIBEVENT_TRUE]) -m4trace:configure.ac:809: -1- _AM_SUBST_NOTMAKE([INSTALL_LIBEVENT_FALSE]) -m4trace:configure.ac:812: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments. +m4trace:configure.ac:816: -1- m4_pattern_allow([^LIBEVENT_GC_SECTIONS$]) +m4trace:configure.ac:818: -1- AM_CONDITIONAL([INSTALL_LIBEVENT], [test "$enable_libevent_install" = "yes"]) +m4trace:configure.ac:818: -1- m4_pattern_allow([^INSTALL_LIBEVENT_TRUE$]) +m4trace:configure.ac:818: -1- m4_pattern_allow([^INSTALL_LIBEVENT_FALSE$]) +m4trace:configure.ac:818: -1- _AM_SUBST_NOTMAKE([INSTALL_LIBEVENT_TRUE]) +m4trace:configure.ac:818: -1- _AM_SUBST_NOTMAKE([INSTALL_LIBEVENT_FALSE]) +m4trace:configure.ac:821: -1- _m4_warn([obsolete], [AC_OUTPUT should be used without arguments. You should run autoupdate.], []) -m4trace:configure.ac:812: -1- m4_pattern_allow([^LIB@&t@OBJS$]) -m4trace:configure.ac:812: -1- m4_pattern_allow([^LTLIBOBJS$]) -m4trace:configure.ac:812: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) -m4trace:configure.ac:812: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) -m4trace:configure.ac:812: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) -m4trace:configure.ac:812: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) -m4trace:configure.ac:812: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) -m4trace:configure.ac:812: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"]) -m4trace:configure.ac:812: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS -m4trace:configure.ac:812: -1- _LT_PROG_LTMAIN +m4trace:configure.ac:821: -1- m4_pattern_allow([^LIB@&t@OBJS$]) +m4trace:configure.ac:821: -1- m4_pattern_allow([^LTLIBOBJS$]) +m4trace:configure.ac:821: -1- AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"]) +m4trace:configure.ac:821: -1- m4_pattern_allow([^am__EXEEXT_TRUE$]) +m4trace:configure.ac:821: -1- m4_pattern_allow([^am__EXEEXT_FALSE$]) +m4trace:configure.ac:821: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_TRUE]) +m4trace:configure.ac:821: -1- _AM_SUBST_NOTMAKE([am__EXEEXT_FALSE]) +m4trace:configure.ac:821: -1- _AC_AM_CONFIG_HEADER_HOOK(["$ac_file"]) +m4trace:configure.ac:821: -1- _AM_OUTPUT_DEPENDENCY_COMMANDS +m4trace:configure.ac:821: -1- _LT_PROG_LTMAIN diff --git a/release/src/router/dnscrypt/src/libevent-modified/bufferevent_pair.c b/release/src/router/dnscrypt/src/libevent-modified/bufferevent_pair.c index 6ec5cac815..e9ed9f5907 100644 --- a/release/src/router/dnscrypt/src/libevent-modified/bufferevent_pair.c +++ b/release/src/router/dnscrypt/src/libevent-modified/bufferevent_pair.c @@ -310,13 +310,14 @@ struct bufferevent * bufferevent_pair_get_partner(struct bufferevent *bev) { struct bufferevent_pair *bev_p; - struct bufferevent *partner; + struct bufferevent *partner = NULL; bev_p = upcast(bev); if (! bev_p) return NULL; incref_and_lock(bev); - partner = downcast(bev_p->partner); + if (bev_p->partner) + partner = downcast(bev_p->partner); decref_and_unlock(bev); return partner; } diff --git a/release/src/router/dnscrypt/src/libevent-modified/configure b/release/src/router/dnscrypt/src/libevent-modified/configure index 32c2412828..8663181667 100755 --- a/release/src/router/dnscrypt/src/libevent-modified/configure +++ b/release/src/router/dnscrypt/src/libevent-modified/configure @@ -1450,7 +1450,7 @@ Optional Features: --disable-debug-mode disable support for running in debug mode --disable-libevent-install, disable installation of libevent - --disable-libevent-regress, skip regress in make check + --enable-libevent-regress, enable regress in make check --enable-function-sections, make static library allow smaller binaries with --gc-sections @@ -4842,9 +4842,7 @@ fi # Check whether --enable-libevent-regress was given. if test "${enable_libevent_regress+set}" = set; then : - enableval=$enable_libevent_regress; -else - enable_libevent_regress=yes + enableval=$enable_libevent_regress; enable_libevent_regress=yes fi # Check whether --enable-function-sections was given. @@ -15090,6 +15088,15 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext # Disable the unused-function warnings, because these trigger # for minheap-internal.h related code. CFLAGS="$CFLAGS -Wno-unused-function" + + # clang on macosx emits warnigns for each directory specified which + # isn't "used" generating a lot of build noise (typically 3 warnings + # per file + case "$host_os" in + darwin*) + CFLAGS="$CFLAGS -Qunused-arguments" + ;; + esac fi ##This will break the world on some 64-bit architectures diff --git a/release/src/router/dnscrypt/src/libevent-modified/configure.ac b/release/src/router/dnscrypt/src/libevent-modified/configure.ac index c9cba1e6e1..2207f60bb6 100644 --- a/release/src/router/dnscrypt/src/libevent-modified/configure.ac +++ b/release/src/router/dnscrypt/src/libevent-modified/configure.ac @@ -92,8 +92,8 @@ AC_ARG_ENABLE([libevent-install], AS_HELP_STRING([--disable-libevent-install, disable installation of libevent]), [], [enable_libevent_install=yes]) AC_ARG_ENABLE([libevent-regress], - AS_HELP_STRING([--disable-libevent-regress, skip regress in make check]), - [], [enable_libevent_regress=yes]) + AS_HELP_STRING([--enable-libevent-regress, enable regress in make check]), + [enable_libevent_regress=yes], []) AC_ARG_ENABLE([function-sections], AS_HELP_STRING([--enable-function-sections, make static library allow smaller binaries with --gc-sections]), [], [enable_function_sections=no]) @@ -726,6 +726,15 @@ if test x$enable_gcc_warnings = xyes && test "$GCC" = "yes"; then # Disable the unused-function warnings, because these trigger # for minheap-internal.h related code. CFLAGS="$CFLAGS -Wno-unused-function" + + # clang on macosx emits warnigns for each directory specified which + # isn't "used" generating a lot of build noise (typically 3 warnings + # per file + case "$host_os" in + darwin*) + CFLAGS="$CFLAGS -Qunused-arguments" + ;; + esac fi ##This will break the world on some 64-bit architectures diff --git a/release/src/router/dnscrypt/src/libevent-modified/epoll_sub.c b/release/src/router/dnscrypt/src/libevent-modified/epoll_sub.c index 3738b26bf1..facbc09fac 100644 --- a/release/src/router/dnscrypt/src/libevent-modified/epoll_sub.c +++ b/release/src/router/dnscrypt/src/libevent-modified/epoll_sub.c @@ -31,11 +31,20 @@ #include #include #include +#include int epoll_create(int size) { +#if !defined(__NR_epoll_create) && defined(__NR_epoll_create1) + if (size <= 0) { + errno = EINVAL; + return -1; + } + return (syscall(__NR_epoll_create1, 0)); +#else return (syscall(__NR_epoll_create, size)); +#endif } int @@ -48,5 +57,9 @@ epoll_ctl(int epfd, int op, int fd, struct epoll_event *event) int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout) { +#if !defined(__NR_epoll_wait) && defined(__NR_epoll_pwait) + return (syscall(__NR_epoll_pwait, epfd, events, maxevents, timeout, NULL, 0)); +#else return (syscall(__NR_epoll_wait, epfd, events, maxevents, timeout)); +#endif } diff --git a/release/src/router/dnscrypt/src/libevent-modified/evdns.c b/release/src/router/dnscrypt/src/libevent-modified/evdns.c index cff48f3b3f..0481d4bc21 100644 --- a/release/src/router/dnscrypt/src/libevent-modified/evdns.c +++ b/release/src/router/dnscrypt/src/libevent-modified/evdns.c @@ -4031,6 +4031,10 @@ evdns_nameserver_free(struct nameserver *server) event_debug_unassign(&server->event); if (server->state == 0) (void) event_del(&server->timeout_event); + if (server->probe_request) { + evdns_cancel_request(server->base, server->probe_request); + server->probe_request = NULL; + } event_debug_unassign(&server->timeout_event); mm_free(server); } @@ -4046,6 +4050,15 @@ evdns_base_free_and_unlock(struct evdns_base *base, int fail_requests) /* TODO(nickm) we might need to refcount here. */ + for (server = base->server_head; server; server = server_next) { + server_next = server->next; + evdns_nameserver_free(server); + if (server_next == base->server_head) + break; + } + base->server_head = NULL; + base->global_good_nameservers = 0; + for (i = 0; i < base->n_req_heads; ++i) { while (base->req_heads[i]) { if (fail_requests) @@ -4060,14 +4073,6 @@ evdns_base_free_and_unlock(struct evdns_base *base, int fail_requests) } base->global_requests_inflight = base->global_requests_waiting = 0; - for (server = base->server_head; server; server = server_next) { - server_next = server->next; - evdns_nameserver_free(server); - if (server_next == base->server_head) - break; - } - base->server_head = NULL; - base->global_good_nameservers = 0; if (base->global_search_state) { for (dom = base->global_search_state->head; dom; dom = dom_next) { diff --git a/release/src/router/dnscrypt/src/plugins/example-ldns-opendns-set-client-ip/example-ldns-opendns-set-client-ip.c b/release/src/router/dnscrypt/src/plugins/example-ldns-opendns-set-client-ip/example-ldns-opendns-set-client-ip.c index 6bc0f5073e..dda9ab0496 100644 --- a/release/src/router/dnscrypt/src/plugins/example-ldns-opendns-set-client-ip/example-ldns-opendns-set-client-ip.c +++ b/release/src/router/dnscrypt/src/plugins/example-ldns-opendns-set-client-ip/example-ldns-opendns-set-client-ip.c @@ -7,6 +7,7 @@ #endif #include +#include #include #include @@ -56,6 +57,33 @@ dcplugin_long_description(DCPlugin * const dcplugin) } static int +_inet_pton(const int af, const char * const src, void * const dst) +{ + unsigned char *dstc; + unsigned int a, b, c, d; + char more; + + if (af != AF_INET) { + errno = EAFNOSUPPORT; + return -1; + } + if (sscanf(src, "%u.%u.%u.%u%c", &a, &b, &c, &d, &more) != 4) { + return 0; + } + if (a > 0xff || b > 0xff || c > 0xff || d > 0xff) { + return 0; + } + dstc = (unsigned char *) dst; + assert(sizeof(struct in_addr) >= 4U); + dstc[0] = (unsigned char) a; + dstc[1] = (unsigned char) b; + dstc[2] = (unsigned char) c; + dstc[3] = (unsigned char) d; + + return 1; +} + +static int parse_client_ip(const char *ip_s, char * const edns_hex) { char ip_hex[8U + 1U]; @@ -64,7 +92,7 @@ parse_client_ip(const char *ip_s, char * const edns_hex) const size_t ip_s_len = strlen(ip_s); if (ip_s_len <= INET_ADDRSTRLEN && strchr(ip_s, '.') != NULL && - inet_aton(ip_s, &ip_in_addr) > 0) { + _inet_pton(AF_INET, ip_s, &ip_in_addr) > 0) { sa = (unsigned char *) &ip_in_addr.s_addr; snprintf(ip_hex, sizeof ip_hex, "%02X%02X%02X%02X", sa[0], sa[1], sa[2], sa[3]); diff --git a/release/src/router/dnscrypt/src/plugins/example-logging/example-logging.c b/release/src/router/dnscrypt/src/plugins/example-logging/example-logging.c index b8d96f08df..8986d3a5bb 100644 --- a/release/src/router/dnscrypt/src/plugins/example-logging/example-logging.c +++ b/release/src/router/dnscrypt/src/plugins/example-logging/example-logging.c @@ -25,7 +25,7 @@ dcplugin_long_description(DCPlugin * const dcplugin) "This plugin logs the client queries to the standard output (default)\n" "or to a file.\n" "\n" - " # dnscrypt-proxy --plugin libdcplugin_example_logging,/tmp/dns.log"; + " # dnscrypt-proxy --plugin libdcplugin_example_logging,/var/log/dns.log"; } int diff --git a/release/src/router/dnscrypt/src/proxy/Makefile.am b/release/src/router/dnscrypt/src/proxy/Makefile.am index 30dfaf953c..1026aec96b 100644 --- a/release/src/router/dnscrypt/src/proxy/Makefile.am +++ b/release/src/router/dnscrypt/src/proxy/Makefile.am @@ -18,6 +18,8 @@ dnscrypt_proxy_SOURCES = \ getpwnam.h \ logger.c \ logger.h \ + minicsv.c \ + minicsv.h \ options.c \ options.h \ pathnames.h \ @@ -46,7 +48,8 @@ AM_CFLAGS = @CWFLAGS@ AM_CPPFLAGS = \ -I../ext \ - -I../libevent-modified/include + -I../libevent-modified/include \ + -DPKGDATADIR='"${pkgdatadir}"' dnscrypt_proxy_LDADD = \ ../libevent-modified/libevent_extra.la \ diff --git a/release/src/router/dnscrypt/src/proxy/Makefile.in b/release/src/router/dnscrypt/src/proxy/Makefile.in index 8b688e61ba..9b27415300 100644 --- a/release/src/router/dnscrypt/src/proxy/Makefile.in +++ b/release/src/router/dnscrypt/src/proxy/Makefile.in @@ -115,11 +115,11 @@ PROGRAMS = $(sbin_PROGRAMS) am__dnscrypt_proxy_SOURCES_DIST = app.c app.h cert.c cert.h cert_p.h \ dnscrypt.c dnscrypt.h dnscrypt_client.c dnscrypt_client.h \ dnscrypt_proxy.h edns.c edns.h getpwnam.h logger.c logger.h \ - options.c options.h pathnames.h pid_file.c pid_file.h \ - probes_dnscrypt_proxy.d probes_no_dtrace.h safe_rw.c safe_rw.h \ - sandboxes.c sandboxes.h stack_trace.c stack_trace.h \ - tcp_request.c tcp_request.h tcp_request_p.h udp_request.c \ - udp_request.h udp_request_p.h utils.c utils.h \ + minicsv.c minicsv.h options.c options.h pathnames.h pid_file.c \ + pid_file.h probes_dnscrypt_proxy.d probes_no_dtrace.h \ + safe_rw.c safe_rw.h sandboxes.c sandboxes.h stack_trace.c \ + stack_trace.h tcp_request.c tcp_request.h tcp_request_p.h \ + udp_request.c udp_request.h udp_request_p.h utils.c utils.h \ windows_service.c windows_service.h plugin_options.c \ plugin_options.h plugin_support.c plugin_support.h \ plugin_support_p.h @@ -127,9 +127,10 @@ am__dnscrypt_proxy_SOURCES_DIST = app.c app.h cert.c cert.h cert_p.h \ @PLUGINS_TRUE@ plugin_support.$(OBJEXT) am_dnscrypt_proxy_OBJECTS = app.$(OBJEXT) cert.$(OBJEXT) \ dnscrypt.$(OBJEXT) dnscrypt_client.$(OBJEXT) edns.$(OBJEXT) \ - logger.$(OBJEXT) options.$(OBJEXT) pid_file.$(OBJEXT) \ - safe_rw.$(OBJEXT) sandboxes.$(OBJEXT) stack_trace.$(OBJEXT) \ - tcp_request.$(OBJEXT) udp_request.$(OBJEXT) utils.$(OBJEXT) \ + logger.$(OBJEXT) minicsv.$(OBJEXT) options.$(OBJEXT) \ + pid_file.$(OBJEXT) safe_rw.$(OBJEXT) sandboxes.$(OBJEXT) \ + stack_trace.$(OBJEXT) tcp_request.$(OBJEXT) \ + udp_request.$(OBJEXT) utils.$(OBJEXT) \ windows_service.$(OBJEXT) $(am__objects_1) dnscrypt_proxy_OBJECTS = $(am_dnscrypt_proxy_OBJECTS) am__DEPENDENCIES_1 = @@ -343,14 +344,15 @@ top_srcdir = @top_srcdir@ dnscrypt_proxy_SOURCES = app.c app.h cert.c cert.h cert_p.h dnscrypt.c \ dnscrypt.h dnscrypt_client.c dnscrypt_client.h \ dnscrypt_proxy.h edns.c edns.h getpwnam.h logger.c logger.h \ - options.c options.h pathnames.h pid_file.c pid_file.h \ - probes_dnscrypt_proxy.d probes_no_dtrace.h safe_rw.c safe_rw.h \ - sandboxes.c sandboxes.h stack_trace.c stack_trace.h \ - tcp_request.c tcp_request.h tcp_request_p.h udp_request.c \ - udp_request.h udp_request_p.h utils.c utils.h \ + minicsv.c minicsv.h options.c options.h pathnames.h pid_file.c \ + pid_file.h probes_dnscrypt_proxy.d probes_no_dtrace.h \ + safe_rw.c safe_rw.h sandboxes.c sandboxes.h stack_trace.c \ + stack_trace.h tcp_request.c tcp_request.h tcp_request_p.h \ + udp_request.c udp_request.h udp_request_p.h utils.c utils.h \ windows_service.c windows_service.h $(am__append_4) AM_CFLAGS = @CWFLAGS@ -AM_CPPFLAGS = -I../ext -I../libevent-modified/include $(am__append_1) +AM_CPPFLAGS = -I../ext -I../libevent-modified/include \ + -DPKGDATADIR='"${pkgdatadir}"' $(am__append_1) dnscrypt_proxy_LDADD = ../libevent-modified/libevent_extra.la \ ../libevent-modified/libevent_core.la $(am__append_2) dnscrypt_proxy_DEPENDENCIES = ../libevent-modified/libevent_extra.la \ @@ -463,6 +465,7 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dnscrypt_client.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/edns.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/logger.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/minicsv.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/options.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/pid_file.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/plugin_options.Po@am__quote@ diff --git a/release/src/router/dnscrypt/src/proxy/app.c b/release/src/router/dnscrypt/src/proxy/app.c index 2bdcac956e..92bcbe0cd8 100644 --- a/release/src/router/dnscrypt/src/proxy/app.c +++ b/release/src/router/dnscrypt/src/proxy/app.c @@ -224,7 +224,7 @@ dnscrypt_proxy_start_listeners(ProxyContext * const proxy_context) evutil_format_sockaddr_port((const struct sockaddr *) &proxy_context->resolver_sockaddr, resolver_addr_s, sizeof resolver_addr_s); - logger(proxy_context, LOG_INFO, "Proxying from %s to %s", + logger(proxy_context, LOG_NOTICE, "Proxying from %s to %s", local_addr_s, resolver_addr_s); proxy_context->listeners_started = 1; @@ -261,6 +261,7 @@ dnscrypt_proxy_main(int argc, char *argv[]) logger_noformat(NULL, LOG_ERR, "Unable to start the proxy"); exit(1); } + logger_noformat(&proxy_context, LOG_NOTICE, "Starting " PACKAGE_STRING); #ifdef USE_ONLY_PORTABLE_IMPLEMENTATIONS randombytes_stir(); #else @@ -301,7 +302,7 @@ dnscrypt_proxy_main(int argc, char *argv[]) if (skip_dispatch == 0) { event_base_dispatch(proxy_context.event_loop); } - logger_noformat(&proxy_context, LOG_INFO, "Stopping proxy"); + logger_noformat(&proxy_context, LOG_NOTICE, "Stopping proxy"); cert_updater_free(&proxy_context); udp_listener_stop(&proxy_context); tcp_listener_stop(&proxy_context); diff --git a/release/src/router/dnscrypt/src/proxy/dnscrypt_client.c b/release/src/router/dnscrypt/src/proxy/dnscrypt_client.c index f01eece8dd..bb7dae56cd 100644 --- a/release/src/router/dnscrypt/src/proxy/dnscrypt_client.c +++ b/release/src/router/dnscrypt/src/proxy/dnscrypt_client.c @@ -154,6 +154,9 @@ dnscrypt_client_init_nmkey(DNSCryptClient * const client, #if crypto_box_BEFORENMBYTES != crypto_box_PUBLICKEYBYTES # error crypto_box_BEFORENMBYTES != crypto_box_PUBLICKEYBYTES #endif +#ifdef HAVE_SODIUM_MLOCK + sodium_mlock(client->nmkey, crypto_box_BEFORENMBYTES); +#endif memcpy(client->nmkey, server_publickey, crypto_box_PUBLICKEYBYTES); crypto_box_beforenm(client->nmkey, client->nmkey, client->secretkey); @@ -197,10 +200,17 @@ dnscrypt_client_init_with_new_key_pair(DNSCryptClient * const client) uint8_t client_publickey[crypto_box_PUBLICKEYBYTES]; uint8_t client_secretkey[crypto_box_SECRETKEYBYTES]; +#ifdef HAVE_SODIUM_MLOCK + sodium_mlock(client_secretkey, crypto_box_SECRETKEYBYTES); +#endif dnscrypt_client_create_key_pair(client, client_publickey, client_secretkey); dnscrypt_client_init_with_key_pair(client, client_publickey, client_secretkey); + sodium_memzero(client_secretkey, crypto_box_SECRETKEYBYTES); +#ifdef HAVE_SODIUM_MLOCK + sodium_munlock(client_secretkey, crypto_box_SECRETKEYBYTES); +#endif return 0; } diff --git a/release/src/router/dnscrypt/src/proxy/dnscrypt_proxy.h b/release/src/router/dnscrypt/src/proxy/dnscrypt_proxy.h index 31964642e8..412ae90be7 100644 --- a/release/src/router/dnscrypt/src/proxy/dnscrypt_proxy.h +++ b/release/src/router/dnscrypt/src/proxy/dnscrypt_proxy.h @@ -39,6 +39,18 @@ # define DNS_DEFAULT_RESOLVER_PORT "443" #endif +#ifndef DEFAULT_RESOLVERS_LIST +# ifdef _WIN32 +# define DEFAULT_RESOLVERS_LIST "dnscrypt-resolvers.csv" +# else +# define DEFAULT_RESOLVERS_LIST PKGDATADIR "/dnscrypt-resolvers.csv" +# endif +#endif + +#ifndef DEFAULT_RESOLVER_NAME +# define DEFAULT_RESOLVER_NAME NULL +#endif + #define DNS_HEADER_SIZE 12U #define DNS_FLAGS_TC 2U #define DNS_FLAGS_QR 128U @@ -87,6 +99,8 @@ typedef struct ProxyContext_ { const char *pid_file; const char *provider_name; const char *provider_publickey_s; + const char *resolvers_list; + const char *resolver_name; const char *resolver_ip; struct evconnlistener *tcp_conn_listener; struct event *tcp_accept_timer; diff --git a/release/src/router/dnscrypt/src/proxy/minicsv.c b/release/src/router/dnscrypt/src/proxy/minicsv.c new file mode 100644 index 0000000000..e2590a5bf2 --- /dev/null +++ b/release/src/router/dnscrypt/src/proxy/minicsv.c @@ -0,0 +1,106 @@ + +#include +#include +#include + +#include "minicsv.h" + +static inline void +_minicsv_out_col(char * const col_start, char ** const cols, + size_t * const cols_count_p, const size_t cols_max) +{ + if (*cols_count_p < cols_max) { + cols[*cols_count_p] = col_start; + } + (*cols_count_p)++; +} + +static inline void +_minicsv_parse_line_noquote(const int c, char ** const pos_p, + char ** const col_start_p, int * const state_p, + char ** const cols, size_t * const cols_count_p, + const size_t cols_max) +{ + switch (c) { + case '\n': + *state_p = 2; + case MINICSV_DELIM: + *(*pos_p)++ = 0; + _minicsv_out_col(*col_start_p, cols, cols_count_p, cols_max); + *col_start_p = *pos_p; + break; + case MINICSV_QUOTE: + *state_p = 1; + *col_start_p = ++*pos_p; + break; + case '\r': + **pos_p = 0; + default: + (*pos_p)++; + } +} + +static inline void +_minicsv_parse_line_quote(const int c, char ** const pos_p, + int * const state_p) +{ + if (c == MINICSV_QUOTE) { + if (*(*pos_p + 1U) == MINICSV_QUOTE) { + memmove(*pos_p, *pos_p + 1U, strlen(*pos_p)); + } else { + **pos_p = 0; + *state_p = 0; + } + } + (*pos_p)++; +} + +char * +minicsv_parse_line(char * const buf, char ** const cols, + size_t * const cols_count_p, const size_t cols_max) +{ + char *col_start = buf; + char *pos = buf; + int c; + int state = 0; + + *cols_count_p = (size_t) 0U; + while ((c = *pos) != 0) { + switch (state) { + case 0: + _minicsv_parse_line_noquote(c, &pos, &col_start, &state, + cols, cols_count_p, cols_max); + break; + case 1: + _minicsv_parse_line_quote(c, &pos, &state); + break; + case 2: + return pos; + } + } + if (state == 0) { + _minicsv_out_col(col_start, cols, cols_count_p, cols_max); + } + return pos; +} + +void +minicsv_trim_cols(char ** const cols, const size_t cols_count) +{ + char *col; + size_t col_end; + size_t i = (size_t) 0U; + + while (i < cols_count) { + col = cols[i]; + while (*col != 0 && isspace((int) (unsigned char) *col)) { + cols[i] = ++col; + } + col_end = strlen(col); + while (col_end > (size_t) 0U && + isspace((int) (unsigned char) col[--col_end])) { + col[col_end] = 0; + } + i++; + } +} diff --git a/release/src/router/dnscrypt/src/proxy/minicsv.h b/release/src/router/dnscrypt/src/proxy/minicsv.h new file mode 100644 index 0000000000..bddd573894 --- /dev/null +++ b/release/src/router/dnscrypt/src/proxy/minicsv.h @@ -0,0 +1,32 @@ + +/* + * Copyright (c) 2014 + * Frank Denis + * + * Permission to use, copy, modify, and distribute this software for any + * purpose with or without fee is hereby granted, provided that the above + * copyright notice and this permission notice appear in all copies. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES + * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF + * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR + * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN + * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF + * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + */ + +#ifndef __MINICSV_H__ +#define __MINICSV_H__ + +#include + +#define MINICSV_DELIM ',' +#define MINICSV_QUOTE '"' + +char * minicsv_parse_line(char * const buf, char ** const cols, + size_t * const cols_count_p, const size_t cols_max); + +void minicsv_trim_cols(char ** const cols, const size_t cols_count); + +#endif diff --git a/release/src/router/dnscrypt/src/proxy/options.c b/release/src/router/dnscrypt/src/proxy/options.c index 133959f026..cf3b82e21c 100644 --- a/release/src/router/dnscrypt/src/proxy/options.c +++ b/release/src/router/dnscrypt/src/proxy/options.c @@ -17,10 +17,13 @@ #include #include +#include + #include "dnscrypt_proxy.h" #include "getpwnam.h" #include "options.h" #include "logger.h" +#include "minicsv.h" #include "pid_file.h" #include "utils.h" #include "windows_service.h" @@ -35,7 +38,8 @@ static struct option getopt_long_options[] = { #endif { "edns-payload-size", 1, NULL, 'e' }, { "help", 0, NULL, 'h' }, - { "provider-key", 1, NULL, 'k' }, + { "resolvers-list", 1, NULL, 'L' }, + { "resolver-name", 1, NULL, 'R' }, #ifndef _WIN32 { "logfile", 1, NULL, 'l' }, #endif @@ -45,9 +49,10 @@ static struct option getopt_long_options[] = { { "pidfile", 1, NULL, 'p' }, #endif { "plugin", 1, NULL, 'X' }, + { "provider-name", 1, NULL, 'N' }, + { "provider-key", 1, NULL, 'k' }, { "resolver-address", 1, NULL, 'r' }, { "user", 1, NULL, 'u' }, - { "provider-name", 1, NULL, 'N' }, { "test", 1, NULL, 't' }, { "tcp-only", 0, NULL, 'T' }, { "version", 0, NULL, 'V' }, @@ -59,28 +64,15 @@ static struct option getopt_long_options[] = { { NULL, 0, NULL, 0 } }; #ifndef _WIN32 -static const char *getopt_options = "a:de:hk:l:m:n:p:r:t:u:N:TVX"; +static const char *getopt_options = "a:de:hk:L:l:m:n:p:r:R:t:u:N:TVX"; #else -static const char *getopt_options = "a:e:hk:m:n:r:t:u:N:TVX"; +static const char *getopt_options = "a:e:hk:L:m:n:r:R:t:u:N:TVX"; #endif #ifndef DEFAULT_CONNECTIONS_COUNT_MAX # define DEFAULT_CONNECTIONS_COUNT_MAX 250U #endif -#ifndef DEFAULT_PROVIDER_PUBLICKEY -# define DEFAULT_PROVIDER_PUBLICKEY \ - "B735:1140:206F:225D:3E2B:D822:D7FD:691E:" \ - "A1C3:3CC8:D666:8D0C:BE04:BFAB:CA43:FB79" -#endif -#ifndef DEFAULT_PROVIDER_NAME -# define DEFAULT_PROVIDER_NAME \ - DNSCRYPT_PROTOCOL_VERSIONS ".dnscrypt-cert.opendns.com." -#endif -#ifndef DEFAULT_RESOLVER_IP -# define DEFAULT_RESOLVER_IP "208.67.220.220:443" -#endif - static void options_version(void) { @@ -120,9 +112,11 @@ void options_init_with_default(AppContext * const app_context, proxy_context->log_fd = -1; proxy_context->log_file = NULL; proxy_context->pid_file = NULL; - proxy_context->provider_name = DEFAULT_PROVIDER_NAME; - proxy_context->provider_publickey_s = DEFAULT_PROVIDER_PUBLICKEY; - proxy_context->resolver_ip = DEFAULT_RESOLVER_IP; + proxy_context->resolvers_list = DEFAULT_RESOLVERS_LIST; + proxy_context->resolver_name = DEFAULT_RESOLVER_NAME; + proxy_context->provider_name = NULL; + proxy_context->provider_publickey_s = NULL; + proxy_context->resolver_ip = NULL; #ifndef _WIN32 proxy_context->user_id = (uid_t) 0; proxy_context->user_group = (uid_t) 0; @@ -148,11 +142,210 @@ options_check_protocol_versions(const char * const provider_name) return 0; } +static char * +options_read_file(const char * const file_name) +{ + FILE *fp; + char *file_buf; + size_t file_size = (size_t) 0U; + + assert(file_name != NULL); + if ((fp = fopen(file_name, "rb")) == NULL) { + return NULL; + } + while (fgetc(fp) != EOF && file_size < SIZE_MAX) { + file_size++; + } + if (feof(fp) == 0) { + fclose(fp); + return NULL; + } + rewind(fp); + if ((file_buf = malloc(file_size)) == NULL) { + fclose(fp); + return NULL; + } + if (fread(file_buf, file_size, (size_t) 1U, fp) != 1U) { + fclose(fp); + free(file_buf); + return NULL; + } + (void) fclose(fp); + + return file_buf; +} + +static const char * +options_get_col(char * const * const headers, const size_t headers_count, + char * const * const cols, const size_t cols_count, + const char * const header) +{ + size_t i = (size_t) 0U; + + while (i < headers_count) { + if (strcmp(header, headers[i]) == 0) { + if (i < cols_count) { + return cols[i]; + } + break; + } + i++; + } + return NULL; +} + +static int +options_parse_resolver(ProxyContext * const proxy_context, + char * const * const headers, const size_t headers_count, + char * const * const cols, const size_t cols_count) +{ + const char *provider_name; + const char *provider_publickey_s; + const char *resolver_ip; + const char *resolver_name; + + resolver_name = options_get_col(headers, headers_count, + cols, cols_count, "Name"); + if (evutil_ascii_strcasecmp(resolver_name, + proxy_context->resolver_name) != 0) { + return 0; + } + provider_name = options_get_col(headers, headers_count, + cols, cols_count, "Provider name"); + provider_publickey_s = options_get_col(headers, headers_count, + cols, cols_count, + "Provider public key"); + resolver_ip = options_get_col(headers, headers_count, + cols, cols_count, "Resolver address"); + if (provider_name == NULL || *provider_name == 0) { + logger(proxy_context, LOG_ERR, + "Resolvers list is missing a provider name for [%s]", + resolver_name); + return -1; + } + if (provider_publickey_s == NULL || *provider_publickey_s == 0) { + logger(proxy_context, LOG_ERR, + "Resolvers list is missing a public key for [%s]", + resolver_name); + return -1; + } + if (resolver_ip == NULL || *resolver_ip == 0) { + logger(proxy_context, LOG_ERR, + "Resolvers list is missing a resolver address for [%s]", + resolver_name); + return -1; + } + proxy_context->provider_name = strdup(provider_name); + proxy_context->provider_publickey_s = strdup(provider_publickey_s); + proxy_context->resolver_ip = strdup(resolver_ip); + if (proxy_context->provider_name == NULL || + proxy_context->provider_publickey_s == NULL || + proxy_context->resolver_ip == NULL) { + logger_noformat(proxy_context, LOG_EMERG, "Out of memory"); + exit(1); + } + return 1; +} + +static int +options_parse_resolvers_list(ProxyContext * const proxy_context, char *buf) +{ + char *cols[OPTIONS_RESOLVERS_LIST_MAX_COLS]; + char *headers[OPTIONS_RESOLVERS_LIST_MAX_COLS]; + size_t cols_count; + size_t headers_count; + + assert(proxy_context->resolver_name != NULL); + buf = minicsv_parse_line(buf, headers, &headers_count, + sizeof headers / sizeof headers[0]); + if (headers_count < 4U) { + return -1; + } + do { + buf = minicsv_parse_line(buf, cols, &cols_count, + sizeof cols / sizeof cols[0]); + minicsv_trim_cols(cols, cols_count); + if (cols_count < 4U || *cols[0] == 0 || *cols[0] == '#') { + continue; + } + if (options_parse_resolver(proxy_context, headers, headers_count, + cols, cols_count) > 0) { + return 0; + } + } while (*buf != 0); + + return -1; +} + +static int +options_use_resolver_name(ProxyContext * const proxy_context) +{ + char *file_buf; + + file_buf = options_read_file(proxy_context->resolvers_list); + if (file_buf == NULL) { + logger(proxy_context, LOG_ERR, "Unable to read [%s]", + proxy_context->resolvers_list); + exit(1); + } + assert(proxy_context->resolver_name != NULL); + if (options_parse_resolvers_list(proxy_context, file_buf) < 0) { + logger(proxy_context, LOG_ERR, + "No resolver named [%s] found in the [%s] list", + proxy_context->resolver_name, proxy_context->resolvers_list); + } + free(file_buf); + + return 0; +} + static int options_apply(ProxyContext * const proxy_context) { - if (proxy_context->resolver_ip == NULL) { - options_usage(); + if (proxy_context->resolver_name != NULL) { + if (proxy_context->resolvers_list == NULL) { + logger_noformat(proxy_context, LOG_ERR, + "Resolvers list (-L command-line switch) required"); + exit(1); + } + if (options_use_resolver_name(proxy_context) != 0) { + logger(proxy_context, LOG_ERR, + "Resolver name (-R command-line switch) required. " + "See [%s] for a list of public resolvers.", + proxy_context->resolvers_list); + exit(1); + } + } + if (proxy_context->resolver_ip == NULL || + *proxy_context->resolver_ip == 0 || + proxy_context->provider_name == NULL || + *proxy_context->provider_name == 0 || + proxy_context->provider_publickey_s == NULL || + *proxy_context->provider_publickey_s == 0) { + logger_noformat(proxy_context, LOG_ERR, + "Resolver information required."); + logger_noformat(proxy_context, LOG_ERR, + "The easiest way to do so is to provide a resolver name."); + logger_noformat(proxy_context, LOG_ERR, + "Example: dnscrypt-proxy -R mydnsprovider"); + logger(proxy_context, LOG_ERR, + "See the file [%s] for a list of compatible public resolvers", + proxy_context->resolvers_list); + logger_noformat(proxy_context, LOG_ERR, + "The name is the first column in this table."); + logger_noformat(proxy_context, LOG_ERR, + "Alternatively, an IP address, a provider name " + "and a provider key can be supplied."); +#ifdef _WIN32 + logger_noformat(proxy_context, LOG_ERR, + "Consult http://dnscrypt.org " + "and https://github.com/jedisct1/dnscrypt-proxy/blob/master/README-WINDOWS.markdown " + "for details."); +#else + logger_noformat(proxy_context, LOG_ERR, + "Please consult http://dnscrypt.org " + "and the dnscrypt-proxy(8) man page for details."); +#endif exit(1); } if (proxy_context->provider_name == NULL || @@ -201,8 +394,11 @@ int options_parse(AppContext * const app_context, ProxyContext * const proxy_context, int argc, char *argv[]) { - int opt_flag; - int option_index = 0; + int opt_flag; + int option_index = 0; +#ifdef _WIN32 + _Bool option_install = 0; +#endif options_init_with_default(app_context, proxy_context); while ((opt_flag = getopt_long(argc, argv, @@ -247,6 +443,12 @@ options_parse(AppContext * const app_context, case 'l': proxy_context->log_file = optarg; break; + case 'L': + proxy_context->resolvers_list = optarg; + break; + case 'R': + proxy_context->resolver_name = optarg; + break; case 'm': { char *endptr; const long max_log_level = strtol(optarg, &endptr, 10); @@ -334,11 +536,17 @@ options_parse(AppContext * const app_context, break; #ifdef _WIN32 case WIN_OPTION_INSTALL: + case WIN_OPTION_REINSTALL: + option_install = 1; + break; case WIN_OPTION_UNINSTALL: - if (windows_service_option(opt_flag, argc, - (const char **) argv) != 0) { - options_usage(); + if (windows_service_uninstall() != 0) { + logger_noformat(NULL, LOG_ERR, "Unable to uninstall the service"); exit(1); + } else { + logger_noformat(NULL, LOG_INFO, "The " WINDOWS_SERVICE_NAME + " service has been removed from this system"); + exit(0); } break; #endif @@ -350,6 +558,24 @@ options_parse(AppContext * const app_context, if (options_apply(proxy_context) != 0) { return -1; } +#ifdef _WIN32 + if (option_install != 0) { + if (windows_service_install(proxy_context) != 0) { + logger_noformat(NULL, LOG_ERR, "Unable to install the service"); + logger_noformat(NULL, LOG_ERR, + "Make sure that you are using an elevated command prompt " + "and that the service hasn't been already installed"); + exit(1); + } + logger_noformat(NULL, LOG_INFO, "The " WINDOWS_SERVICE_NAME + " service has been installed and started"); + logger_noformat(NULL, LOG_INFO, "The registry key used for this " + "service is " WINDOWS_SERVICE_REGISTRY_PARAMETERS_KEY); + logger(NULL, LOG_INFO, "Now, change your resolver settings to %s", + proxy_context->local_ip); + exit(0); + } +#endif return 0; } diff --git a/release/src/router/dnscrypt/src/proxy/options.h b/release/src/router/dnscrypt/src/proxy/options.h index 5479a241c9..22071ec350 100644 --- a/release/src/router/dnscrypt/src/proxy/options.h +++ b/release/src/router/dnscrypt/src/proxy/options.h @@ -7,4 +7,6 @@ int options_parse(AppContext * const app_context, void options_free(ProxyContext * const proxy_context); +#define OPTIONS_RESOLVERS_LIST_MAX_COLS 50 + #endif diff --git a/release/src/router/dnscrypt/src/proxy/udp_request.c b/release/src/router/dnscrypt/src/proxy/udp_request.c index ca2762db3f..a26ef4fde2 100644 --- a/release/src/router/dnscrypt/src/proxy/udp_request.c +++ b/release/src/router/dnscrypt/src/proxy/udp_request.c @@ -101,9 +101,11 @@ sendto_with_retry(SendtoWithRetryCtx * const ctx) ctx->dest_addr, ctx->dest_len) == (ssize_t) ctx->length) { cb = ctx->cb; if (udp_request->sendto_retry_timer != NULL) { - assert(event_get_callback_arg(udp_request->sendto_retry_timer) - == ctx); - free(ctx); + ctx_cb = event_get_callback_arg(udp_request->sendto_retry_timer); + assert(ctx_cb != NULL); + assert(ctx_cb->udp_request == ctx->udp_request); + assert(ctx_cb->buffer == ctx->buffer); + free(ctx_cb); event_free(udp_request->sendto_retry_timer); udp_request->sendto_retry_timer = NULL; } @@ -139,13 +141,15 @@ sendto_with_retry(SendtoWithRetryCtx * const ctx) assert(ctx_cb != NULL); assert(ctx_cb->udp_request == ctx->udp_request); assert(ctx_cb->buffer == ctx->buffer); - assert(ctx_cb->cb == ctx->cb); } else { if ((ctx_cb = malloc(sizeof *ctx_cb)) == NULL) { logger_error(udp_request->proxy_context, "malloc"); udp_request_kill(udp_request); return -1; } + assert(ctx_cb == + event_get_callback_arg(udp_request->sendto_retry_timer)); + *ctx_cb = *ctx; if ((udp_request->sendto_retry_timer = evtimer_new(udp_request->proxy_context->event_loop, sendto_with_retry_timer_cb, ctx_cb)) == NULL) { @@ -153,9 +157,6 @@ sendto_with_retry(SendtoWithRetryCtx * const ctx) udp_request_kill(udp_request); return -1; } - assert(ctx_cb == - event_get_callback_arg(udp_request->sendto_retry_timer)); - *ctx_cb = *ctx; } const struct timeval tv = { .tv_sec = (time_t) UDP_DELAY_BETWEEN_RETRIES, .tv_usec = 0 @@ -195,7 +196,7 @@ resolver_to_proxy_cb(evutil_socket_t proxy_resolver_handle, short ev_flags, if (evutil_sockaddr_cmp((const struct sockaddr *) &resolver_sockaddr, (const struct sockaddr *) &proxy_context->resolver_sockaddr, 1) != 0) { - logger_noformat(proxy_context, LOG_WARNING, + logger_noformat(proxy_context, LOG_DEBUG, "Received a resolver reply from a different resolver"); return; } @@ -347,7 +348,10 @@ udp_tune(evutil_socket_t const handle) (void *) (int []) { UDP_BUFFER_SIZE }, sizeof (int)); setsockopt(handle, SOL_SOCKET, SO_SNDBUFFORCE, (void *) (int []) { UDP_BUFFER_SIZE }, sizeof (int)); -#if defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DONT) +#if defined(IP_PMTUDISC_OMIT) + setsockopt(handle, IPPROTO_IP, IP_MTU_DISCOVER, + (void *) (int []) { IP_PMTUDISC_OMIT }, sizeof (int)); +#elif defined(IP_MTU_DISCOVER) && defined(IP_PMTUDISC_DONT) setsockopt(handle, IPPROTO_IP, IP_MTU_DISCOVER, (void *) (int []) { IP_PMTUDISC_DONT }, sizeof (int)); #elif defined(IP_DONTFRAG) diff --git a/release/src/router/dnscrypt/src/proxy/windows_service.c b/release/src/router/dnscrypt/src/proxy/windows_service.c index 385aeaa8b0..4ec3f13b78 100644 --- a/release/src/router/dnscrypt/src/proxy/windows_service.c +++ b/release/src/router/dnscrypt/src/proxy/windows_service.c @@ -2,6 +2,8 @@ #include #include "app.h" +#include "dnscrypt_proxy.h" +#include "logger.h" #include "windows_service.h" #ifndef _WIN32 @@ -26,15 +28,6 @@ main(int argc, char *argv[]) #include "logger.h" #include "utils.h" -#ifndef WINDOWS_SERVICE_NAME -# define WINDOWS_SERVICE_NAME "dnscrypt-proxy" -#endif -#ifndef WINDOWS_SERVICE_REGISTRY_PARAMETERS_KEY -# define WINDOWS_SERVICE_REGISTRY_PARAMETERS_KEY \ - "SYSTEM\\CurrentControlSet\\Services\\" \ - WINDOWS_SERVICE_NAME "\\Parameters" -#endif - static SERVICE_STATUS service_status; static SERVICE_STATUS_HANDLE service_status_handle; static _Bool app_is_running_as_a_service; @@ -232,6 +225,33 @@ windows_service_registry_read_dword(const char * const key, } static int +windows_service_registry_write_string(const char * const key, + const char * const value) +{ + HKEY hk = NULL; + size_t value_len; + int ret = 0; + + value_len = strlen(value); + if (value_len > 0x7fffffff) { + return -1; + } + if (RegCreateKeyEx(HKEY_LOCAL_MACHINE, + WINDOWS_SERVICE_REGISTRY_PARAMETERS_KEY, + (DWORD) 0, NULL, REG_OPTION_NON_VOLATILE, KEY_WRITE, + NULL, &hk, NULL) != ERROR_SUCCESS) { + return -1; + } + if (RegSetValueEx(hk, key, NULL, REG_SZ, (const BYTE *) value, + (DWORD) value_len) != ERROR_SUCCESS) { + ret = -1; + } + RegCloseKey(hk); + + return ret; +} + +static int windows_build_command_line_from_registry(int * const argc_p, char *** const argv_p) { @@ -244,6 +264,18 @@ windows_build_command_line_from_registry(int * const argc_p, exit(1); } if (windows_service_registry_read_string + ("ResolversList", &string_value) == 0) { + err += cmdline_add_option(argc_p, argv_p, "--resolvers-list"); + err += cmdline_add_option(argc_p, argv_p, string_value); + free(string_value); + } + if (windows_service_registry_read_string + ("ResolverName", &string_value) == 0) { + err += cmdline_add_option(argc_p, argv_p, "--resolver-name"); + err += cmdline_add_option(argc_p, argv_p, string_value); + free(string_value); + } + if (windows_service_registry_read_string ("LocalAddress", &string_value) == 0) { err += cmdline_add_option(argc_p, argv_p, "--local-address"); err += cmdline_add_option(argc_p, argv_p, string_value); @@ -346,22 +378,25 @@ windows_main(int argc, char *argv[]) return 0; } -static int +int windows_service_uninstall(void) { - SC_HANDLE scm_handle; - SC_HANDLE service_handle; - int ret = 0; + SC_HANDLE scm_handle; + SC_HANDLE service_handle; + SERVICE_STATUS service_status; + int ret = 0; scm_handle = OpenSCManager(NULL, NULL, SC_MANAGER_ALL_ACCESS); if (scm_handle == NULL) { return -1; } - service_handle = OpenService(scm_handle, WINDOWS_SERVICE_NAME, DELETE); + service_handle = OpenService(scm_handle, WINDOWS_SERVICE_NAME, + DELETE | SERVICE_STOP); if (service_handle == NULL) { CloseServiceHandle(scm_handle); return 0; } + ControlService(service_handle, SERVICE_CONTROL_STOP, &service_status); if (DeleteService(service_handle) == 0) { ret = -1; } @@ -372,14 +407,35 @@ windows_service_uninstall(void) } static int -windows_service_install(const int argc, const char * const argv[]) +windows_registry_install(ProxyContext * const proxy_context) +{ + if (proxy_context->resolvers_list != NULL) { + windows_service_registry_write_string("ResolversList", + proxy_context->resolvers_list); + } + if (proxy_context->resolver_name != NULL) { + windows_service_registry_write_string("ResolverName", + proxy_context->resolver_name); + } + if (proxy_context->local_ip != NULL) { + windows_service_registry_write_string("LocalAddress", + proxy_context->local_ip); + } + return 0; +} + +int +windows_service_install(ProxyContext * const proxy_context) { char self_path[MAX_PATH]; SC_HANDLE scm_handle; SC_HANDLE service_handle; - (void) argc; - (void) argv; + if (windows_registry_install(proxy_context) != 0) { + logger_noformat(proxy_context, LOG_ERR, + "Unable to set up registry keys"); + return -1; + } if (GetModuleFileName(NULL, self_path, MAX_PATH) <= (DWORD) 0) { return -1; } @@ -404,42 +460,6 @@ windows_service_install(const int argc, const char * const argv[]) } int -windows_service_option(const int opt_flag, const int argc, - const char *argv[]) -{ - if (app_is_running_as_a_service != 0) { - return 0; - } - switch (opt_flag) { - case WIN_OPTION_INSTALL: - case WIN_OPTION_REINSTALL: - windows_service_uninstall(); - if (windows_service_install(argc, argv) != 0) { - logger_noformat(NULL, LOG_ERR, "Unable to install the service"); - exit(1); - } else { - logger_noformat(NULL, LOG_INFO, "The " WINDOWS_SERVICE_NAME - " service has been installed and started"); - exit(0); - } - break; - case WIN_OPTION_UNINSTALL: - if (windows_service_uninstall() != 0) { - logger_noformat(NULL, LOG_ERR, "Unable to uninstall the service"); - exit(1); - } else { - logger_noformat(NULL, LOG_INFO, "The " WINDOWS_SERVICE_NAME - " service has been removed from this system"); - exit(0); - } - break; - default: - return -1; - } - return 0; -} - -int main(int argc, char *argv[]) { return windows_main(argc, argv); diff --git a/release/src/router/dnscrypt/src/proxy/windows_service.h b/release/src/router/dnscrypt/src/proxy/windows_service.h index 4ded9501e3..958b971d91 100644 --- a/release/src/router/dnscrypt/src/proxy/windows_service.h +++ b/release/src/router/dnscrypt/src/proxy/windows_service.h @@ -2,13 +2,23 @@ #ifndef __WINDOWS_SERVICE_H__ #define __WINDOWS_SERVICE_H__ 1 +#ifndef WINDOWS_SERVICE_NAME +# define WINDOWS_SERVICE_NAME "dnscrypt-proxy" +#endif + +#ifndef WINDOWS_SERVICE_REGISTRY_PARAMETERS_KEY +# define WINDOWS_SERVICE_REGISTRY_PARAMETERS_KEY \ + "SYSTEM\\CurrentControlSet\\Services\\" \ + WINDOWS_SERVICE_NAME "\\Parameters" +#endif + typedef enum WinOption_ { WIN_OPTION_INSTALL = 256, WIN_OPTION_REINSTALL, WIN_OPTION_UNINSTALL } WinOption; -int windows_service_option(const int opt_flag, - const int argc, const char *argv[]); +int windows_service_install(ProxyContext * const proxy_context); +int windows_service_uninstall(void); #endif -- 2.11.4.GIT