3 * Fix compilation on systems that have memmem but don't define HAVE_MEMMEM.
5 30 April 2011: dht-0.19
7 * Fix incorrect parsing of announces. Thanks to cjdelisle.
8 * Relax rate limiting slightly.
10 20 January 2011: dht-0.18
12 * Fix a bug that could cause parse_message to enter an infinite loop
13 on overflow. Thanks to Jordan Lee.
15 9 January 2011: dht-0.17:
17 * Fix a bug that prevented calling dht_init after dht_uninit.
18 * Remove the "dofree" parameter to dht_uninit.
20 23 December 2010: dht-0.16:
22 * Change the interface to allow sharing of the UDP socket e.g. with uTP.
26 * Port to Windows, for the needs of Transmission.
28 25 March 2010: dht-0.14
30 * Fixed ordering of entries in parameter dictionaries.
32 15 December 2009: dht-0.13
34 * Implemented protection against incorrect addresses in the DHT.
35 * Tweaked neighborhood maintenance to wake up less often.
37 11 December 2009: dht-0.12
38 * Fixed slightly incorrect formatting of DHT messages.
39 * Fixed incorrect debugging message.
41 22 November 2009: dht-0.11
43 * Implemented IPv6 support (BEP-32).
44 * Fixed a bug which could cause us to never mark a search as finished.
45 * Fixed a bug that could cause us to send incomplete lists in response to
47 * Limit the number of hashes that we're willing to track.
48 * Made bucket maintenance slightly more aggressive.
49 * Produce on-the-wire error messages to give a hint to the other side.
50 * Added a bunch of options to dht-example to make it useful as
52 * Send version "JC\0\0" when using dht-example.
54 18 October 2009: dht-0.10
56 * Send nodes even when sending values. This is a violation of the
57 protocol, but I have been assured that it doesn't break any deployed
58 implementation. This is also what both libtorrent and uTorrent do.
59 * Give up immediately on a search peer when no token was provided. This
60 is a very reasonable extension to the protocol, and certainly doesn't
62 * Parse heterogeneous values lists correctly. This is mandated by BEP 32.
64 20 September 2009: dht-0.9
66 * Fixed incorrect computation of number of nodes.
67 * Made the initial bucket split eagerly (speeds up bootstrapping).
68 * Fixed initial filling of search buckets (speeds up searches).
72 * Fixed a crash when expiring the first search on the list.
73 * Fixed freeing of the search list when uniniting with dofree = 1.
77 * Removed the fixed limit on the number of concurrent searches, we now
79 * Fixed build on FreeBSD (thanks to Humihara and Charles Kerr).
83 * Fixed a buffer overflow (when reading) in parse_message.
84 * Fixed slightly inacurrate metric computation when searching.
85 * Removed a slightly inaccurate shortcut when responding to find_nodes.
86 * Relaxed the rate-limiting parameters to 4 requests per second.
90 * Made reading of /dev/urandom a function provided by the user.
91 * Implemented the ``v'' extension that identifies node implementations.
95 * Fixed the handling of tokens in announce_peer messages.
96 * Implemented backtracking during search when nodes turn out to be dead.
100 * Fixed a number of incorrectly formatted messages.
101 * Changed reply to find_peers to spread the load more uniformly.
102 * Fixed a bug that could cause premature splitting.
103 * Implemented rate limiting.
104 * Changed some time constants to be less chatty.
105 * When determining if a bucket is fresh enough, we now only take replies
107 * dht_get_nodes now returns nodes starting with our own bucket.
108 * Tweaked the memory allocation strategy for stored peers.
112 * Fixed a crash in dht_uninit.
113 * Added support for saving the list of known-good nodes.
114 * Changed the interface of dht_nodes to provide the number of nodes that
115 recently sent incoming requests.
119 * Initial public release.