11 Sync libsodium. Now with curve25519_donna_c64
15 sodium_shutdown() is gone
19 Add missing #include <stdint.h> for SIZE_MAX
23 sodium_init() doesn't accept options any more.
31 Remove a useless function call
35 Call sodium_init() / sodium_shutdown()
39 Just use randombytes_salsa20_implementation
43 Pass the entire ac_config_args content to other autoconf scripts
47 Use Android toolchain 4.6
55 Add a new --loglevel option to change the log verbosity.
63 Redefine log levels for Win32
67 github.com -> github.io
75 Pass a few extra autoconf options form the main autoconf script to libsodium's
87 Yay for better performance
91 Sync libsodium, with the ref10 implementation of ed25519
99 Farewell, dnscrypt_memzero(). Sodium provides sodium_memzero() to do that.
103 Add libsodium as a submodule
107 Remove libsodium copy
119 Resurrect example-ldns-opendns-set-client-ip, it's very useful for support
123 Remove -fcatch-undefined-c99-behavior, will be replaced by -fsanitize=integer
127 Define HAVE_* and CROSS_COMPILING to 1 instead of just defining them.
131 Fix include path to libsodium
135 Bump fpm package version
139 libevent update to b618204216235d5998080c659c8ad53185fdf206
143 Back to a stable Xcode version
147 Update Android NDK to r8d
163 Rename libevent to libevent-modified to avoid confusion.
164 Our version of libevent ships with some changes required for dnscrypt-proxy to
165 work. These will eventually be submitted upstream after libevent 2.1 gets
170 libsodium already provides crypto_box_MACBYTES
190 autoconf 2.68 broke $(top_srcdir) for tests
194 AM_CONFIG_HEADER -> AC_CONFIG_HEADER
206 libevent c322c2077e2d16f64ed3a90f74ad714842600624
210 Add -Wsometimes-uninitialized
214 Check for HAVE_SECUREZEROMEMORY at compile-time.
218 Use SecureZeroMemory() on Windows
226 Update URL. Github downloads are no more.
242 Add a link to the home page
246 Mention dnscrypt-wrapper
250 Next version will be 1.2.1, I suppose.
254 Use size_t for TXT total size, remove extra parenthesis.
256 Merge: 0b31df8 3dc4690
259 Support merging txt strings into one.
260 Some dns managers split long binary data into more than one strings
262 Merge remote-tracking branch 'cofyc/merge_txts'
267 Update OSX client link.
271 levent: configure.in files have been deprecated for a while. Rename.
275 A global COPYING file is enough
283 levent: Avoid double-close on getsockname error in evutil_ersatz_socketpair
284 Avoid leaking fds on evconnlistener with no callback set
288 levent - Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled.
292 improve: support merging txt strings into one
293 some dns manager split long binary data into more than one strings (e.g. linode.com)
297 Update libevent to 2.0.21-stable-dev.
301 Sync libevent2 - fix OpenSSL renegotiation test with old OpenSSL version.
303 Merge: c128bd9 ce9b890
306 Merge remote-tracking branch 'origin/master'
309 Added profile/repo_name so the packages/gentoo folder can be used as a portage overlay
310 Updated Gentoo ebuild for v1.2.0
312 Merge: 20e9dd1 57e0296
315 Merge pull request #38 from Strayer/gentoo_ebuild_v1.2.0
317 Bumped Gentoo ebuild to v1.2.0
321 Added profile/repo_name so the packages/gentoo folder can be used as a portage overlay
325 Updated Gentoo ebuild for v1.2.0
327 - updated conf and init script according to parameter changes in v1.1.0
331 Add a build script for 32-bit versions of OSX binaries.
335 levent updates, so that 64-bit versions for Windows can be built.
337 Merge: 23eaeeb 9f7c132
340 Merge remote-tracking branch 'marguerite/master'
343 fix a hang-on-boot bug in systemd. update opensuse license
351 fix a hang-on-boot bug in systemd. update opensuse license
355 Add Marguerite Su to the THANKS file.
359 Take the systemd service definition off the root directory.
363 Minor tweaks to the OpenSuSE description.
365 Merge: f0b3120 857f0cc
368 Merge pull request #36 from marguerite/master
370 add opensuse package, and systemd service for dnscrypt
374 add opensuse pacages, systemd servce
378 The OSX GUI is mainly a collection of shell scripts, nowadays.
386 Remove OpenBSD port, since it is now in the official ports tree.
390 Change the blurb to something closer to the awesome summary by sthen@
394 Update the Homebrew formula to 1.2.0
398 Update the OpenBSD package to 1.2.0
402 Mention that DCP_SYNC_FILTER_RESULT_DIRECT is only for a pre-filter.
410 Set the RA flag in direct responses.
414 Set the QR bit when sending an empty AAAA reply.
418 Log short UDP replies
422 Group Windows changes together.
438 Document that gcc 3.4.6 with a Mips target produces broken code with -Os
442 Add missing return statement in the ldns-blocking example.
446 Update NEWS/ChangeLog
450 The plugin API has changed, 1.1.1 sounds weird, so let's go 1.2.0.
454 Add a new plugin to return an empty response to AAAA queries.
462 Document the new DIRECT return code for pre-filters.
466 Well, not all plugins have been removed.
470 Document the direct mode.
474 Implement direct mode for TCP.
478 Start sending direct replies.
482 Prepare proxy code for DCP_SYNC_FILTER_RESULT_DIRECT
486 Bump API version minor.
490 Prepare for DCP_SYNC_FILTER_RESULT_DIRECT.
498 Include Windows quirks in NaCl test, too.
504 Merge: de7bb89 854e2c9
507 Merge branch 'master' of https://github.com/jedisct1/dnscrypt-proxy
509 * 'master' of https://github.com/jedisct1/dnscrypt-proxy:
510 Detect things like C:/x/y and C:\x\y as absolute paths to Windows plugins.
514 Resurect the deviceid plugin, as OpenDNS folks really need it.
518 Detect things like C:/x/y and C:\x\y as absolute paths to Windows plugins.
522 Revert "ldns requires socklen_t but Win32 doesn't have it."
523 This has been fixed in ldns 1.6.14.
535 Check ldns_resolver_new_frm_file() return code.
539 If a new release ever sees the light, it will be 1.1.1.
555 Off-topic, but document how to compile ldns on Windows.
559 ldns requires socklen_t but Win32 doesn't have it.
560 So, define it on Win32.
564 Remove OpenDNS-related plugins.
568 Remove some sample plugins.
572 Remove UDP_REQUEST_NO_RETRIES. Always support retries.
576 Enforce a 2 second timeout.
580 forward-after-nxdomain: allow 1 extra byte for the response if needed.
584 Initial forward-after-nxdomain plugin implementation.
596 People are still running dnscrypt on old CPUs. Compile for Pentium 2 on Windows.
600 Trim down optimization flags for Windows
608 Stick to PACKAGE_STRING for the version, it's easier to parse.
612 Remove the FreeBSD package.
616 Unfuck pkgsrc packages on Dragonfly BSD.
620 Update the NetBSD / Dragonfly BSD port. Plugin-less for now.
624 Factorize dependencies
628 PERMIT_PACKAGES => Yes
632 Major update to the OpenBSD package. Build plugins as a subpackage.
636 Improve the Homebrew formula after adamv@ review
640 Enable plugins in the Linux packages
648 Switch from tar-pax to tar-ustar because OpenBSD's tar(1) is confused with
653 Update the OpenBSD port to 1.1.0
657 Lion -> Mountain Lion
661 Allow reading an OpenDNS device id from an environment variable named
662 OPENDNS_DEVICE_ID as an alternative to giving it as an argument to the
663 opendns_deviceid plugin. This information shouldn't be visible in the
668 Update the Homebrew package.
672 Use tar-pax because some plugins files names are > 99 chars long.
676 Don't use brackets in doxygen doc except for headers.
684 Enable support for plugins in Windows builds.
688 Require plugins to mention DCPLUGIN_MAIN(__FILE__);
692 Update the ChangeLog, again.
696 Android and iPhone build scripts have been moved.
704 Mention the example plugins.
708 Can you seriously expect Windows to implement putc_unlocked()? LOL.
712 Ensure that assertions are always turned on.
716 Add missing return statement.
724 Spaces vs tabs. Fu fu fu fu fuuuuuuuu
728 libevent: arc4random_buf() doesn't return a value. Fix ev_arc4random_buf().
732 logging plugin: display a dot for a query for dot (duh!).
736 Zap the final dot in a name before doing pattern matching on it.
740 Don't use ldns wildcard matching, match * everywhere instead.
741 People want to filter things like *xxx*, so let them do that.
749 example-logging: bump the minimal required length up.
757 Add a new plugin that logs queries.
761 Add WARNING for plugins.
765 Don't include the full path to a plugin in examples.
769 Use strcasecmp() in order to caselessly compare IPv6 addresses.
773 Rewrite the ldns-blocking plugin, so that it can block any name and IP address.
774 This plugin can be very useful in order to block ads and buggy replies.
778 Move build scripts to a dist-build directory, add one for osx.
786 Plugins can now be loaded from a default directory ($pkglibdir).
787 In addition, a new configure flag, --enable-plugins-root, disallows loading
788 plugins outside this directory.
792 README-WINDOWS: ...\dnscrypt-proxy\Parameters is confusing, as "parameters"
793 can be understood as a variable. So, add an example.
794 Explain how plugins should be specified by the way.
802 A new configure flag, --disable-pie, can disable position-independent executables.
803 A bad idea, but required by some OS.
807 Merge 1.1.0 changelog, since there will probably be no more RC.
811 Import example-ldns-blocking.c
819 -fdata-sections -ffunction-sections doesn't seem very useful on Windows
823 Having new lines in flags is a bad idea.
827 Import a script to build the proxy on Win32
839 Introduce --enable-relaxed-plugins-permissions
843 If the proxy is run as root, refuse to load a plugin not owned by root.
844 Yes, it's still totally racy, and not super useful, but better than nothing.
848 Xcode 4.5-GM is just called Xcode
860 Pick up the new name for the blocking plugin
864 Rename example-ldns example-ldns-blocking
868 1.1.0-RC1 also fixed lookups of multiple TXT records, and thus
869 handling of multiple certificates.
873 Finally, the plugin API has been kinda documented.
877 Add a link to the API documentation.
889 Return REFUSED instead of NXDOMAIN when we get a blacklisted IP in a record of a
890 response. It makes more sense, and OpenDNS can return the same IP for different
891 reasons, not only NXDOMAIN.
895 Start documenting plugins
909 Merge: f568bce beac641
912 Merge branch 'master' of https://github.com/jedisct1/dnscrypt-proxy
914 * 'master' of https://github.com/jedisct1/dnscrypt-proxy:
915 In sendto_with_retry(), free()ing the timer beforehand is a good idea but turning that in a different use-after-free is not.
916 Initialize dcps at the right place. I'm just totally unable to write a single line of code when I am at the office.
917 The sendto_retry timer should be free()d before the callback, or else we end up with a big bad use after free and an even bigger and badder double free.
918 Initialize dcps before using it, duh. It used to make virtually any plugin crash before it even had a chance to load on Linux, and on platforms it used to work on, it worked by accident. Reported by @transitorykris, confirmed by Valgrind.
926 Sync libevent, fix two memory leaks in evdns.
930 In sendto_with_retry(), free()ing the timer beforehand is a good idea
931 but turning that in a different use-after-free is not.
935 Initialize dcps at the right place. I'm just totally unable to write a
936 single line of code when I am at the office.
940 The sendto_retry timer should be free()d before the callback, or else we
941 end up with a big bad use after free and an even bigger and badder
946 Initialize dcps before using it, duh.
947 It used to make virtually any plugin crash before it even had a chance
948 to load on Linux, and on platforms it used to work on, it worked by
950 Reported by @transitorykris, confirmed by Valgrind.
954 The set-client-ip plugin also allows applying network settings when using IPv6
958 set-client-ip: randomize the fodder
962 More data set-client-ip needs.
966 The set-client-ip plugin needs more data in order to properly apply the
971 Improve documentation for the set-client-ip plugin.
987 Document example-ldns-opendns-deviceid
991 Add a simple example plugin to change the client IP when talking to OpenDNS resolvers.
995 Thank you, Black Roland!
999 Move the GUIs section up
1003 Reorder the Android build script so that TARGET_TOOLCHAIN_VERSION is defined
1004 before it is used :)
1012 That was --resolver-port
1016 Mention that --local-port and --remote-port are gone for good.
1020 Don't lie about why TCP is slow.
1028 Update ChangeLog. It's 1.1.0-rc1 for now.
1032 Bump revision to 1.1.0rc1
1036 Don't cast uint32_t values to print them. That's retarded.
1044 Update ChangeLog/NEWS.
1048 Rename the .plist file.
1052 Use plugin_long_description() in the null plugin, too.
1056 Add dcplugin_long_description()
1060 Add basic probes for filters.
1064 Retabify, try to match the initial code style.
1072 Check the RR length before any parsing, even if it's redundant.
1076 evdns: store more than 1 TXT record.
1080 Don't assume that only one TXT record will be received.
1084 Add libltdl to SUBDIRS, if plugins are enabled.
1096 Add Plugins to the list of Windows registry keys, before I forget.
1100 Parse the "Plugins" key if there is one in the Windows registry.
1104 Windows: implement windows_service_registry_read_multi_sz()
1108 Return NXDOMAIN for an IP that actually needs it.
1112 Display the actual error when a plugin can't be loaded.
1116 Remove example-ldns-opendns-bypass
1120 Display the plugin description if we have one.
1124 Check that a plugin either belongs to root, or would be writeable by whoever
1125 runs the current process (or at least, by whoever can write to the fs).
1126 It's not very useful, it's racy, but it's better than nothing.
1130 Wipe the client nonce after uncurving a reply.
1131 Useful for debugging.
1135 Add tcp post-filters.
1139 No more dns_packet_len, stay consistent between udp_ & tcp_request.c
1147 Add prefilters for TCP.
1151 Don't use max_packet_size. When using TCP, the packet size is not the data
1152 size, so, use the 'packet' terminology to actually mean a packet size, and
1153 something different to mean a DNS packet.
1154 No change to the compiled code, but it will help to make things more
1155 consistent between udp_request.c and tcp_request.c.
1159 Don't use dns_packet*, use dns_(query|reply)* in udp_request.c just like in
1164 The default resolver is 208.67.220.220, not .222.222
1168 The OSX GUI probably works on 32-bit systems now, and the OpenDNS GUI for
1169 Windows is apparently labeled "OpenDNSCrypt".
1177 Add an optional function for describing a plugin.
1181 Rename sample plugins
1185 Rename example-ldns-2 to example-ldns-opendns-deviceid and add the ability
1186 to provide a device id on the command line.
1190 Add two new OpenDNS-specific example plugins
1194 Regen dnscrypt-proxy man page.
1202 Shrink the default max payload size to 1252 bytes.
1206 Update libevent to 2.0.20
1210 Include the port number in default IPs.
1211 Restore support for specifying IP addresses without ports.
1219 Don't use backtrace on Bitrig
1223 -P and -t are gone for good.
1233 Merge: 1128c06 357d1be
1236 Merge branch '1.0.x'
1239 livevent: Add explicit AC_PROG_SED to configure.in so all autoconfs will expose $(SED) + avoid unused variable declaration.
1240 When running the proxy as a Windows service, options have to be specified using the registry.
1241 Bump dnscrypt-proxy homebrew formula
1245 livevent: Add explicit AC_PROG_SED to configure.in so all autoconfs will expose $(SED)
1246 + avoid unused variable declaration.
1250 When running the proxy as a Windows service, options have to be specified
1255 Actually install LTDL
1259 Bump dnscrypt-proxy homebrew formula
1261 Merge: 0016faf 18e9180
1264 Merge branch '1.0.x'
1267 Export droid-gcc variables
1270 If an evdns_getaddrinfo timeout happens while pending_cb is set, and a callback is about to run, but we get a call to evdns_getaddrinfo_gotresolve before it finishes. libevent dc3207767d4f06b31
1274 Export droid-gcc variables
1286 If an evdns_getaddrinfo timeout happens while pending_cb is set, and a
1287 callback is about to run, but we get a call to evdns_getaddrinfo_gotresolve
1289 libevent dc3207767d4f06b31
1293 If an evdns_getaddrinfo timeout happens while pending_cb is set, and a
1294 callback is about to run, but we get a call to evdns_getaddrinfo_gotresolve
1296 libevent dc3207767d4f06b31
1304 Merge 1.1 to master.
1306 Merge: 0d07695 24e697c
1309 Merge branch 'master' into 1.1
1312 Cut the crap. DNS using TCP can actually be faster than UDP. Provided that the resolver supports pipelining.
1317 Cut the crap. DNS using TCP can actually be faster than UDP.
1318 Provided that the resolver supports pipelining.
1324 Merge: c260e87 b12196d
1327 Merge branch 'master' into 1.1
1331 Mention that in hostip, --resolver-address can include a port number.
1333 The --resolver-ip command-line switch is gone. Pointed out by awfulhak@
1341 Mention that in hostip, --resolver-address can include a port number.
1349 The --resolver-ip command-line switch is gone. Pointed out by awfulhak@
1351 Merge: 51a5d57 2ac78d9
1354 Merge branch 'master' into 1.1
1357 Bring libevent patches up to a0912e32068621eb776d678224e4108511d281e3
1361 Bring libevent patches up to a0912e32068621eb776d678224e4108511d281e3
1363 Check more setsockopt return values when binding sockets. Found by coverity
1365 memset sockaddr_in before using it. Found by coverity.
1367 Move assignment outside tt_assert in ssl unit tests. Appeases coverity.
1369 Add checks to various return values in unit tests. Found by coverity
1371 Avoid possible needless call to writev. Found by coverity.
1373 Remove unused variable; spotted by coverity
1375 Avoid more crashes/bad calls in unit tests; found by coverity
1377 Add some missing null checks to unit tests; found by coverity
1379 Fix resource leaks in the unit tests; found by coverity
1381 Fix various check-after-dereference issues in unit tests: found by coverity
1383 Set umask before calling mkstemp in unit tests. Found by coverity
1385 Fix possible uninitialized read in dns regression tests. Found by coverity.
1387 Remove deadcode in http regression tests. Found by coverity.
1389 Merge: 5e7e8a5 82cd026
1392 Merge branch 'master' into 1.1
1396 Gentoo ebuild for dnscrypt-proxy 1.0.
1398 use --enable-nonblocking-random as suggested by Frank DENIS.
1399 dnscrypt-proxy 0.9.4.
1407 Gentoo ebuild for dnscrypt-proxy 1.0.
1409 Merge: f3f8357 86d764e
1412 Merge remote-tracking branch 'upstream/master' into lebel
1418 Merge: 682ea2d fe1cc6a
1421 Merge branch 'master' into 1.1
1424 More links and docs.
1426 Add a README file for Windows.
1427 Actually start the service.
1428 Don't parse the command-line if the service is run as a... service.
1429 Remove Logfile from the registry.
1430 Support settings pretty much everything through the registry
1432 xor what we get from the system PRG with a HMAC of it. If the system PRG is truly random, it's a no-op. If a way to recover a state given a few CryptGenRandom() stream samples is found, leaked dnscrypt keys will still require breaking SHA2 in order take advantage of this.
1433 Start reading the configuration from the registry
1434 Don't bother registering the command-line, since we will use the registry.
1435 Auto-start the service, and add what it takes to read the registry.
1436 Read 952 bits (a full SHA256 block + a final one) from the system RNG
1437 Add code for having a dynamic argv, so that we can use the registry to update it
1438 Keep the command line switches
1439 CreateService() dependencies should be an actual NULL string.
1440 Document the new command-line switches for running the proxy as a service.
1441 WINDOWS_SERVICE_NAME
1442 Add --install, --reinstall and --uninstall switches to install as a service.
1446 More links and docs.
1454 Add a README file for Windows.
1458 Actually start the service.
1462 Don't parse the command-line if the service is run as a... service.
1466 Remove Logfile from the registry.
1470 Support settings pretty much everything through the registry
1478 xor what we get from the system PRG with a HMAC of it.
1479 If the system PRG is truly random, it's a no-op.
1480 If a way to recover a state given a few CryptGenRandom() stream samples is
1481 found, leaked dnscrypt keys will still require breaking SHA2 in order take
1486 Start reading the configuration from the registry
1490 Don't bother registering the command-line, since we will use the registry.
1494 Auto-start the service, and add what it takes to read the registry.
1498 Read 952 bits (a full SHA256 block + a final one) from the system RNG
1502 Allow empty options.
1506 Add code for having a dynamic argv, so that we can use the registry to update it
1510 Keep the command line switches
1514 CreateService() dependencies should be an actual NULL string.
1518 Document the new command-line switches for running the proxy as a service.
1522 WINDOWS_SERVICE_NAME
1526 Add --install, --reinstall and --uninstall switches to install as a service.
1528 Merge: 1966e98 f3dd2c4
1531 Merge branch 'master' into 1.1
1539 Make the service name overridable
1540 Make dnscrypt-proxy work as a Windows service.
1541 Add dnscrypt_proxy_loop_break()
1565 Make the service name overridable
1569 Make dnscrypt-proxy work as a Windows service.
1573 Add dnscrypt_proxy_loop_break()
1575 Merge: b675340 4d62957
1578 Merge branch 'master' into 1.1
1581 Add Solaris support.
1582 Don't define _XPG4_2
1586 Add Solaris support.
1590 Don't define _XPG4_2
1592 Merge: ffa0fa2 d443b5d
1595 Merge branch 'master' into 1.1
1598 Update NEWS / ChangeLog
1600 Threads? We don't need threads any more.
1601 Add a compilation script for Android
1603 Don't use dtrace when cross-compiling.
1604 nacl: always include <stdlib.h> when rand*() is needed.
1605 ensure that libnacl/do is always executable
1606 Don't use a hardcoded "ranlib" command. It doesn't play well with cross-compilation.
1607 arpa/inet.h is required for htonl() in cert.c
1611 Update NEWS / ChangeLog
1619 Threads? We don't need threads any more.
1623 Add a compilation script for Android
1631 Don't use dtrace when cross-compiling.
1635 nacl: always include <stdlib.h> when rand*() is needed.
1639 ensure that libnacl/do is always executable
1643 Don't use a hardcoded "ranlib" command. It doesn't play well with cross-compilation.
1647 arpa/inet.h is required for htonl() in cert.c
1649 Merge: f1fa600 be57332
1652 Merge branch 'master' into 1.1
1656 Update Dragonfly BSD / NetBSD pkg
1657 Update Homebrew formula
1658 Update OpenBSD package
1659 Bump fpm package to 1.0
1668 Update Dragonfly BSD / NetBSD pkg
1672 Update Homebrew formula
1676 Update OpenBSD package
1680 Bump fpm package to 1.0
1688 Add a second sample plugin
1690 Merge: 0a6a1d6 4747092
1693 Merge branch 'master' into 1.1
1696 Update .gitignore to reflect the dnscrypt-proxy->proxy changes
1700 Ignore Doxyfile for now
1704 Update .gitignore to reflect the dnscrypt-proxy->proxy changes
1708 Move plugin code in proxy/ as well.
1710 Merge: 124c97b 4a87920
1713 Merge branch 'master' into 1.1
1716 Update autoconf again :)
1720 Update autoconf again :)
1722 Merge: 486243a 165facb
1725 Merge branch 'master' into 1.1
1736 Prepare another plugin
1738 Merge: b9d22cd 5761595
1741 Merge branch 'master' into 1.1
1744 The "dnscrypt-proxy" dir just becomes "proxy" to reduce diff w/ dns-proxy.
1748 The "dnscrypt-proxy" dir just becomes "proxy" to reduce diff w/ dns-proxy.
1750 Merge: d7be569 649fa34
1753 Merge branch 'master' into 1.1
1756 Remove uv_alloc_buffer_size leftover from the libuv days.
1760 Remove uv_alloc_buffer_size leftover from the libuv days.
1768 Add an example that uses ldns.
1772 Make headers C++-friendly and add a macro for copying a raw packet.
1780 Ignore unused arguments, in order to keep the example as small as possible.
1784 Use dns_packet_len in TCP code, to reduce the diff with the UDP code.
1792 Doxygen the plugin API
1804 Keep libtool up until the plugin context is released.
1808 Add headers to get size_t defined.
1812 Call the first pre-filter.
1816 Looks like duplicate code, but if --tcp-only has been enabled, we don't
1817 want to call pre-filters.
1821 Prepare pre- and post- filters.
1823 Merge: 7337e74 cb06b13
1826 Merge branch 'master' into 1.1
1829 Use CPPFLAGS, not AM_CFLAGS.
1833 Use CPPFLAGS, not AM_CFLAGS.
1837 dcps->argc should always be > 0 now.
1841 Set argv[0] to the plugin path
1845 Don't link ldns, that will only be for some specific plugins.
1849 Disable static libraries for plugins
1853 Log when parsing a --plugin switch fails.
1857 Remove module version.
1865 Fix dcplugin_init() prototype.
1869 No need to check for LibLoaderApi.h and WinBase.h any more.
1873 Check if libldns is available.
1877 Add dcplugin_destroy()
1881 Start actually calling plugins.
1885 Start resolving symbols
1889 Load dynamic libraries.
1893 Link plugins with -module
1897 Prepare for loading plugins.
1901 plugin_name -> plugin_file
1905 Store plugin-specific options.
1909 Create and insert plugins.
1913 Use DCPluginSupportContext to handle multiple DCPluginSupport objects.
1917 More infrastructure for plugins.
1921 Document PLUGIN_REVISION
1925 Use CPPFLAGS, not AM_CFLAGS.
1929 <dnscrypt/plugin.h> is what developers should include for writing plugins.
1933 Install dnscrypt headers for plugin developers.
1935 Merge: b3e9707 9c1197d
1938 Merge branch 'master' into 1.1
1947 Merge: fb2a7f0 2799372
1950 Merge branch 'master' into 1.1
1953 Add explicit dependencies.
1954 Update autoconf script.
1958 Prepare a simple plugin.
1962 Only build and link ltdl if plugins are enabled.
1966 Add explicit dependencies.
1970 Add some explicit dependencies
1974 Replace dl.[ch] with libltdl
1978 Update autoconf script.
1986 Add a basic dynamic library loader.
1990 Remove TRIM_PADDING_FROM_REPLIES. We always do.
1998 libevent: Fix a memory leak on error in evhttp_uriencode.
1999 Not used in dnscrypt-proxy, but we should keep that up to date.
2007 Reenable --enable-debug
2011 Don't double quote CFLAGS.
2015 Change the way we pass the autoconf args to the libevent autoconf script.
2023 Update ChangeLog for 0.12
2027 Bind UDP listeners first.
2035 Reset ac_configure_args before configuring libevent.
2036 This fixes the issue with the OpenBSD port, that was reseting both CC and
2041 Use both -fPIE (cc) and -pie (linker) or none.
2046 It breaks the OpenBSD-current port, but unbreaks Linux, aaahhhhhh.
2050 No more rlimit for now.
2054 Don't strip symbols on Debian packages. Screw you, stupid Debian policies.
2058 Start UDP listeners first. They provide an error message when they fail.
2062 Linux doesn't like RLIMIT_NPROC = 0.
2066 Use nonexistent.local instead of nonexistent.example.com
2067 or else OpenDNS servers can return the "guide" IP instead of NXDOMAIN.
2071 Invert the ifdef logic for retries.
2083 Fix UDP retries: ditch the retry timer after a successful sendto().
2087 Update FreeBSD port.
2091 Update NetBSD / Dragonfly BSD packages again.
2095 Update OpenBSD package.
2099 Update Homebrew formula.
2103 Bring back _FORTIFY_SOURCE.
2107 Prepare OpenBSD package update.
2119 Nuke -pie for now. It breaks the OpenBSD-current port.
2123 Update NetBSD / Dragonfly BSD package
2127 Bump Homebrew package
2135 Bump fpm packages to 0.11
2147 Disable UDP sendto() retries for now.
2155 Check for -W combos, not for individual switches.
2159 Add config.guess patch for bitrig to the tree.
2163 Try harder to trigger the gcc warning bug.
2167 Move clang detection
2175 Improve ax_check_compile_flag by adding an unused variable in order to
2176 always trigger a non-fatal compiler warning.
2180 Ignore unknown warnings only if we are using clang.
2184 Remove -Wno-unknown-warning-option because of this stupid gcc.
2188 libevent Win32: avoid crash when waiting forever on zero fds.
2192 Explicitly mention libtool in the autoconf script.
2196 Run sandbox_init() only if it's not a stub.
2216 opendnscache-proxy was the name of dnscrypt 1 year ago.
2217 Rename it to dnscrypt-proxy.
2225 And Gemfile and more tests.
2229 Exit with 1 when an invalid option is given in hostip, too.
2233 Exit with 1 when an unknown option is given.
2237 Revert to always using -fstack-protector-all on Windows.
2238 If it fails outside the MingW environment, either do some magic to
2239 statically link it, or use --disable-ssp if you're desperate.
2243 Statically link libssp on Windows.
2251 Add --disable-ssp option for platforms lacking libssp. (sad)
2255 Ignore deprecated declarations warnings for sandbox*()
2263 Try to better detect Windows targets.
2267 Copy with Winsock2 prototypes.
2271 Use ev_socklen_t everywhere.
2275 Update noops for systems without dtrace.
2279 Update NEWS / ChangeLog
2283 Deprecate --local-port and --resolver-port
2287 Use some crazy heuristics to support ip:port addresses as well as the old
2288 format --x-address and --x-port.
2292 Export evutil_format_sockaddr_port()
2296 Update NEWS/ChangeLog
2300 Remove pwnam comments.
2304 Rename SendtoWithRetryCbCtx to SendtoWithRetryCtx
2308 Retries is zero, already, thanks to calloc().
2312 Support retries on Windows.
2316 Retry every second. On relevant errors only. At least on !_WIN32.
2317 Windows roots are the DOS, anyway.
2321 Retry on UDP sendto() error.
2322 We should only do that on non-fatal errors only.
2323 Which means testing for different error codes on Windows. Bleh.
2327 Factorize sendto() calls and pave the way for retrying on non-fatal errors.
2331 Port 443 is already the default.
2335 Don't assert(! TAILQ_EMPTY()) unless the request has actually been inserted in
2336 the list of queued requests.
2337 Should fix issue #19.
2341 hostip: add things Windows needs in order to get the in6_addr structure defined
2345 Check for setrlimit() existence.
2349 Restrict a bit more what processes can do.
2361 Update ChangeLog, bump version to 0.11
2365 Introduce hostip(8), a tool for resolving a name before dnscrypt-proxy starts.
2366 It should help fighting the chicken-and-egg issue seen on routers, where
2367 dnscrypt-proxy requires a working NTP server, but the NTP server requires
2372 Useless indentation nits.
2376 Use ioctl() instead of fnctl(fnctl()) as much as possible. Saves 1 syscall.
2380 Define getpwnam() and struct passwd if getpwnam(3) exists but the headers don't.
2388 Bump Linux packages to 10.0.1
2396 Current dev version is 0.10.1
2400 chroot() as soon as we can again. Drop libevent2's evdns arc4random() to use
2401 our chroot()-proof salsa20_random() function instead.
2405 libevent: resurrect evdns_set_random_bytes_fn() and add evdns_set_random_init_fn().
2406 Using the provided RC4 generator is nice, but we maybe want to use something
2407 else, in particular if we need something that is guaranteed to work in a
2408 chroot jail, without a /dev/*random device.
2412 libevent: don't use memset(<something on the stack>) to securely wipe a buffer,
2413 because it's prone to compiler optimization.
2417 libevent: do not close /dev/*random and /proc/**/uuid descriptors, in order to
2418 keep them accessible after chroot(), when reseeding is needed.
2422 Revoke privileges after cert_updater_start() for systems without arc4random().
2423 Pointed out by Ben Kibbey.
2427 Change arc4random_uniform() to calculate ``2**32 % upper_bound'' as
2428 ``-upper_bound % upper_bound''.
2433 Update pkgsrc packages.
2437 Update FreeBSD package.
2439 Merge: f04c9ed 7a99603
2442 Merge remote branch 'upstream/master' into lebel
2446 Update Homebrew formula.
2450 Update OpenBSD port.
2458 Don't install libevent.
2462 Compile with -fPIC if possible.
2466 Make some type conversions explicit.
2474 Fix IOC diagnostic with a left shift.
2478 mingw defines cygwin32 as a host OS.
2482 Update NetBSD / Dragonfly BSD package.
2486 Update Homebrew formula
2490 Update OpenBSD package
2494 Update the FreeBSD port
2498 We officially support Bitrig.
2510 Update TCP dtrace probes
2514 Bump Linux packages to 0.10
2518 Update libevent to be7a95c62995a679ee24146b0d641b7392cbab51
2522 Cast txtlen to size_t
2530 Update date & changelog.
2534 IPPROTO_TCP is defined in netinet/in.h on Dragonfly BSD
2538 More gwurglz zindoz needz
2546 Some fixes for Windows...
2550 Allow 64K packets on TCP, use a different definition for UDP.
2554 Spacing, blank lines, etc.
2558 Test for big endianness in configure.ac
2559 Change the first part of the client nonce to little endian on a big endian
2560 system. Add 10 extra bits of randomness by the way.
2568 Disable the Nagle algorithm when sending a query to a resolver.
2572 If we need a free slot and there's none for the current protocol, steal one from the other protocol.
2573 Having distinct knobs for UDP and TCP makes sense now, but it will not make
2574 sense once OpenDNS will properly support TCP persistent connections.
2586 Only resolve local_sockaddr once.
2590 Unfuck libevent on Win32 when threading support has been disabled.
2594 Run libevent's autogen.sh along with the top-level one.
2598 Unfuck compilation on Linux.
2606 Remove free() leftover.
2610 Use -Oz for the iOS build.
2614 Rewrite using libevent instead of libuv.
2626 Unbreak libuv compilation with mingw32.
2630 This libuv code is scary and we don't use it, but check at least the strdup() output.
2634 Change #if FIONBIO to #ifdef FIONBIO. Fixes compilation on Debian/ppc 6.0.4.
2635 Reported by Sebastian Sjoholm.
2639 Don't malloc(0). If we don't have any interfaces, return OK / null.
2643 Rewrite uv_hrtime() for Darwin in a portable way.
2647 rename() requires <stdio.h> on OSX. Don't ask why.
2655 Remove overzealous assertion.
2663 OpenDNS finally sends zero-padded replies. Define TRIM_PADDING_FROM_REPLIES.
2667 Update Homebrew formula.
2671 Update the OpenBSD package to 0.9.5
2679 Implement dnscrypt_memzero() instead of using a volatile cast.
2687 Send the initial query through ares to whatever port has been specified
2688 using --resolver-port even using UDP.
2692 More libuv cherrypicks
2704 Revert libuv to 3f0833eec07b5fbea2057c47e1c9014d3b347d35
2705 Something looks broken on Linux between this revision and 75565907073055dd717fb6a6074518cafdd9355d.
2709 libuv update to 7d2ea316183ba29a8ab5883593d1f6ee6f8f8ae3
2710 unix: fix event loop stall
2718 Update libuv to 0dff0e7d47453fafb72a287c0acdddd6e3f2d9de
2719 A big and scary update.
2723 Avoid compiler optimizations.
2727 Update the plist file to use port 443 by default.
2731 libuv update to 75565907073055dd717fb6a6074518cafdd9355d
2735 Make sure that the event loop is always NULL before parsing options.
2739 Don't call anything from libuv before fork()ing.
2740 Since libuv will never be fork()-safe.
2744 Initialize options one by one. Fixes dnscrypt on iOS.
2748 Log when uv_loop_new() fails.
2752 Remove libc6 dependency for RPMs because Fedora apparently doesn't like it.
2756 We need to somehow call WSAStartup before trying to perform any lookups on Win32.
2772 Bump version to 0.9.5, but don't tag yet.
2776 Introduce ares_set_servers_any()
2780 Remove useless prototype.
2784 Remove STORAGE_PORT4 and STORAGE_PORT6. All we want is STORAGE_PORT_ANY.
2788 Complete IPv6 support.
2792 Support IPv6 for retrieving a certificate.
2796 Wrap some libuv functions to work both with IPv4 and IPv6.
2800 Don't use proxy_context->(ud|tc)p_listener_handle in a function where a handle
2801 is explicitly given.
2805 Trim padding from replies.
2806 Not supported by OpenDNS yet, so #ifdef'd.
2810 libuv update to 3f0833eec07b5fbea2057c47e1c9014d3b347d35
2814 Ignore log_fd on Windows.
2818 Gentoo ebuiild for dnscrypt-proxy 0.9.4.
2822 use --enable-nonblocking-random as suggested by Frank DENIS.
2826 dnscrypt-proxy 0.9.4.
2830 libuv update to d1665792ca22d30b60319199662a0399be9f1352
2834 Revert USE_NONBLOCKING_RANDOM since gathering enough entropy can be way too slow on Linux.
2835 Turn this switch on if your OS doesn't correctly seed /dev/urandom at boot and
2836 at install time, or use a better operating system.
2840 Update the Linux fpm package
2844 Update the FreeBSD package
2848 Update the NetBSD/Dragonfly BSD package.
2852 Update Homebrew formula.
2856 Update OpenBSD port.
2860 Unfuck libuv on Dragonfly... Again...
2864 Unbreak libuv compilation with mingw32.
2868 Update the OpenBSD port
2872 Update dist-files, dist-dirs
2880 Mention the new Gentoo packages and credit David Lebel.
2888 This libuv code is scary and we don't use it, but check at least the strdup() output.
2892 Use --enable-debug instead of --with-debug
2896 Provide --use-nonblocking-random if you really need to use /dev/urandom
2897 but use /dev/random by default.
2898 /dev/arandom has been removed from OpenBSD a long time ago, but I'm attached to it.
2902 Don't recommend DNS caches that are unable to perform DNSSec validation.
2906 Rename section title.
2910 Drop the --tcp-port= switch, and introduce --resolver-port= and --tcp-only switches instead.
2914 Update libuv to e82d46452e3db141d3875286cf90be0de6d724e0
2922 Provide a link to github for bug reports.
2926 Credit Sebastian Sjoholm.
2930 Change #if FIONBIO to #ifdef FIONBIO. Fixes compilation on Debian/ppc 6.0.4.
2931 Reported by Sebastian Sjoholm.
2935 libuv - test: prevent accidental division by zero
2939 Mention the official GUI for Windows, now that it's officially out.
2943 Update Xcode Path to 4.4DP4, and mention that iOS binaries have to be signed.
2951 Move all checks for linker flags to the same place, and always use -Wl.
2955 Add pass -z,noexecstack to the linker if it accepts it.
2957 Merge: 00af2e8 7c77d94
2960 Merge remote-tracking branch 'lebel/lebel'
2963 Add gentoo's portage files.
2967 Sync libuv to 985b961d4eab778857101b17b62f9e521d43a157
2971 Switch the iOS SDK to 5.1
2975 Update libuv to 6367da25b38274c31b42097056b2995c2696caef.
2976 Pretty sure it breaks non-Linux & OSX platforms as usual.
2984 Add gentoo's portage files.
2988 Sync libuv up to c9c9d805dae321a7bdf0077547c2da2dbe70f2a2
2992 Sync libuv up to 49d4e1884ba5ea135f68c8b17fdf2c5d5bf0f91e
2996 Give fpm a list of directories to package.
3000 libuv does support Openwall Linux by default, now.
3001 The libuv guys are very reactive when it comes to merging patches.
3005 Sync libuv up to db413f3806356a632774b8a589546fc6788debd6
3013 --daemonize has been fixed.
3025 Initialize the event loop after having parse the options
3026 so that the event loop works fine after a possible fork() when the proxy
3027 is started with the --daemonize switch.
3031 sync libuv to d07f2466d0a10ab02db588374dd97c2edd54c7fc
3035 Update Dragonfly BSD & NetBSD package.
3039 Fix FreeBSD distinfo.
3043 Update FreeBSD package.
3047 Update OpenBSD package to 0.9.3
3051 Update Homebrew formula.
3055 Bump Linux package version to 0.9.3
3059 cygwin: we need to include uv-common.h for uv__set_sys_error()
3063 Add windows quirks to the distribution.
3067 Don't include sys/sysctl.h without sys/param.h first.
3075 Remove command-line switches that are unsupported on Win32.
3079 Add missing break so that comments in fingerprints work.
3083 Check for an actual library symbol in order to link Win32-specific libs.
3087 Update libuv to 5505f2e9063aaf9b52d47315ae4324efbb5834be
3091 Mention Noxwizard's dnscrypt-winclient
3095 <stdlib.h> is required for NULL to be defined in safe_rw.c
3099 Now, that's a super ugly way of linking ws2_32, psapi and iphlpapi.
3103 Mark some unused variables on Win32.
3107 Compile out more pid_file.c code on Win32.
3111 Use _WIN32 instead of __MINGW32__ just in case we want to support Visual Studio.
3115 Unfuck daemonization on Cygwin builds.
3119 Bump version to 0.9.3, featuring native support for Windows.
3120 Now, back to serious work.
3124 Native Windows builds are now supported.
3129 Provide some logging on Windows, and disable unsupported options.
3133 Pass CRYPT_VERIFYCONTEXT to CryptAcquireContext().
3137 Use the CryptoAPI on Win32.
3141 Fascinating whitespace changes.
3146 test: make pipe_connect_to_file succeed with ECONNREFUSED
3147 windows: return UV_ENOTSOCK when doing uv_pipe_connect to a file
3151 Windows: we need to zero the loop structure when we initialize it
3152 or else the ares list of handles is uninitialized and bad things can happen
3153 when we try to perform async lookups.
3157 Oh course, there will be no /dev/*random on zindoz.
3161 Force line buffering for stdout, for zindoz
3165 Yes, it now natively compiles on Win32.
3166 Fortunately, it crashes.
3174 Link with Winsock2 on Windows.
3178 Unfuck MingW detection.
3182 libuv - unix: fix fs_event refcount bug on darwin
3186 libuv - unix: don't rely on libev to track timer state
3190 Bump year & remove empty line.
3191 (wow, awesome and useful commit)
3195 The beginning of the end.
3203 There are so many random() calls that having just one hack for Win32 will never fit the bill.
3207 More disgusting changes Windows requires. Not having random()/srandom() is going to be a PITA.
3211 setrlimit() on Win32? LOL.
3215 <windows.h> is needed, even for Sleep().
3219 Jeez, Win32 doesn't even provide sleep().
3223 Fix memory leak in uv_exepath() on OSX.
3228 Share inotify fd across event loop.
3236 Update ChangeLog for version 0.9.2
3240 Mention iOS support, bump version to 0.9.2
3244 Some distributions don't provide a "hostname" command.
3245 Always use the same name for a compilation directory.
3249 Improve detection of -fPIE support.
3253 Unbreak libuv on iPhone.
3257 Don't benchmark functions at compile-time.
3258 That should be done at run-time.
3262 Test /dev/urandom with -r, not -f
3266 Run less executables at compile-time in order to make cross-compilation for iPhone & Android possible.
3270 Don't run test-c - It breaks cross-compilation.
3274 Add some extra info to the Debian packages so that lintian stops whining.
3278 libuv - linux: fix signedness issue in uv_exepath()
3286 Add URL / maintainer / category to the Linux packages.
3290 Update NetBSD and Dragonfly BSD packages.
3294 Update FreeBSD & Homebrew packages
3298 Update the dnscrypt package for OpenBSD to 0.9.1
3299 It should now work on non-Intel architectures.
3303 Bump version to 0.9.1
3311 Both the compiler and the linker have to accept -fstack-protector
3315 Try to compile something that performs some stack allocation in order to
3316 make the AX_CHECK_COMPILE_FLAG work with -fstack-protector
3320 We actually need uclibc 0.9.32 to use ifaddrs.h
3324 Thanks, Lance Fredrickson.
3328 uClibc < 0.9.30 didn't have ifaddrs.h
3332 Regen OpenBSD distinfo.
3340 Replace cpucycles with a no-op.
3341 We're favoring portability for now, and we're not benchmarking functions.
3342 And cpucycles seems to be causing a lot of trouble on some architectures.
3346 Update Dragonfly BSD / NetBSD package.
3350 Update Homebrew formula.
3354 execinfo is *not* required on OpenBSD.
3358 Update OpenBSD packages
3362 Bump FreeBSD package to 0.9
3366 Update the documentation to mention where the tarballs can be downloaded from.
3370 Update Linux packages to 0.9
3379 Trying to keep the version number in sync with the Mac GUI doesn't make any
3380 sense, especially with a Windows GUI on the way.
3384 2012 & regen man page
3388 Remove test-ipc-threads.c and regen uv/dist-files.
3396 Explicitly NULLify app_context.proxy_context
3400 libuv: plug memleak on error path
3404 Don't malloc(0). If we don't have any interfaces, return OK / null.
3408 Rewrite uv_hrtime() for Darwin in a portable way.
3412 rename() requires <stdio.h> on OSX. Don't ask why.
3420 Next version will be 0.11.
3421 (yeah, people are having a hard time figuring out that the OSX GUI is a
3422 different product, so let's try to keep version numbers more or less in sync)
3426 libuv cherrypick: unix: set SO_REUSEADDR before binding
3430 libuv cherrypick: unix: don't close kqueue fd in kqueue_fork()
3434 libuv cherrypick: unix: clean up udp read/write watchers
3438 libuv cherrypick: unix: clean up udp shutdown sequence
3442 libuv cherrypick: unix: don't retry close() on EINTR
3446 libuv cherrypick: unix: fix segfault in uv_guess_handle()
3450 libuv cherrypick: unix: fix udp recv_start refcount
3454 libuv cherrypick: remove unused #define
3458 libuv cherrypick: docs: add c-ares license note
3466 Cherry-pick 6a9cb902ae25efa6f853dc10b20cd657b8a1f809
3470 Cherrypick libuv 3cbe7c3f7952aa249450438b21cf4f346bb88e22
3474 Revert "Update libuv" - libuv is still b0rk3d on OpenBSD, DragonflyBSD and NetBSD.
3479 Revert "Unbreak libuv on Dragonfly BSD."
3484 Unbreak libuv on Dragonfly BSD.
3492 Set TZ even if strftime() fails.
3496 Update libuv - Except the obviously untested patch provided by Microsoft that totally breaks libuv on BSD.
3500 Revert - libuv is now totally b0rk3d on FreeBSD/DragonflyBSD.
3504 Big and scary update to libuv
3508 Add --disable-dependency-tracking to the Homebrew formula.
3512 Update Dragonfly BSD / NetBSD package.
3516 Update Homebrew package
3520 Update FreeBSD package.
3524 Update OpenBSD package.
3532 We can detect accept4() while SOCK_CLOEXEC and SOCK_NONBLOCK are unavailable.
3533 Fixes compilation on Openwall-current.
3537 Redirect compile-time tests to an errors file.
3541 Update for Dragonfly BSD.
3545 -fstack-protector-all is causing trouble with Dragonfly BSD and NaCl.
3546 Use -fstack-protector only on Dragonfly BSD for now.
3550 Update packages to 0.8 - distinfo files have to be regenerated though.
3554 Update NEWS / ChangeLog
3558 Rename C_ASSERT, because Windows defines a macro with the same name.
3562 Don't use substitution in a $(shell) statement.
3566 Unfortunately, ULONG_LONG_MAX isn't always defined.
3578 Don't include crypto_int32.h
3590 assert() -> C_ASSERT()
3602 Make getword() a bit faster by using all the output bytes.
3610 Introduce a C_ASSERT() macro instead of repeating (void) sizeof(char[X?1:-1])
3614 Switch to salsa20/20 as a stream cipher.
3618 curvecp is fantastic but we don't use it for now. So don't ship a copy of it.
3622 Move Linux packages to /usr
3626 Provide better detection for Mingw when used on Windows.
3630 Disable -fstack-protector-all on Windows but enable specific flags for ASLR & DEP.
3634 Enable ASLR and DEP on Win32.
3638 Works out of the box on Windows using Cygwin (for now, native port is coming).
3642 Mention do-not-query-localhost: no for Unbound.
3646 We do support Openwall Linux now.
3650 Don't try compiling inotify-related functions on Linux distros without inotify.
3654 Provide compatibility with glibc versions that don't provide pipe2()/O_CLOEXEC
3666 Add the default public key for ed25519-signed certs.
3670 Switch to 2.dnscrypt-cert.opendns.com
3682 Import ed25519 - thanks to djb for his feedback.
3686 Add a sample .plist file.
3690 Add a formula for Homebrew
3706 Downcase + remove some redundant stuff.
3714 Per popular request, add a description of the protocol + implementation details.
3718 Add links & credits for NaCl and libuv.
3722 Add THANKS file, credit sthen@ for his help on the OpenBSD port.
3726 dnscrypt has been written by humans.
3730 Test presence of 6Jack, that will be required for new tests.
3732 Merge: 2a196e1 cfbb34c
3735 Merge pull request #1 from sthen/master
3741 add ONLY_FOR_ARCH, NaCl needs more work on !i386/amd64
3745 picks up libexecinfo if installed; add dep
3753 needs a homedir to chroot to; use /var/empty
3757 daemonize in rc script, add cvs id for OpenBSD
3761 Fix MASTER_SITE and HOMEPAGE
3765 Switch back to using the .tar.gz file since the github CDN finally has it.
3769 Update the OpenBSD package.
3773 OpenBSD uid 685/686 were taken by other ports already. Switch to uid 688, reserved by sthen@
3777 Initial public release.