diff --git a/docs/dht_sec.rst b/docs/dht_sec.rst index b571a8df9..883164b61 100644 --- a/docs/dht_sec.rst +++ b/docs/dht_sec.rst @@ -95,7 +95,7 @@ Example code code for calculating a valid node ID:: int mod_shift = 6 * 4 / num_octets; // 6 or 3, depending on IPv4 and IPv6 while (num_octets) { - seed = (uint64_t(seed) * ip[num_octets]) & (modulus-1); + seed = (uint64_t(seed) * ip[num_octets-1]) & (modulus-1); modulus <<= mod_shift; --num_octets; } @@ -119,7 +119,7 @@ Example code to verify a node ID:: int mod_shift = 6 * 4 / num_octets; // 6 or 3, depending on IPv4 and IPv6 while (num_octets) { - seed = (uint64_t(seed) * ip[num_octets]) & (modulus-1); + seed = (uint64_t(seed) * ip[num_octets-1]) & (modulus-1); modulus <<= mod_shift; --num_octets; } diff --git a/src/kademlia/node_id.cpp b/src/kademlia/node_id.cpp index a26a4bf27..4ba830b6b 100644 --- a/src/kademlia/node_id.cpp +++ b/src/kademlia/node_id.cpp @@ -127,7 +127,7 @@ node_id generate_id_impl(address const& ip, boost::uint32_t r) while (num_octets) { - seed *= p[num_octets]; + seed *= p[num_octets-1]; seed &= (modulus-1); modulus <<= mod_shift; --num_octets;