diff options
author | Gavin Andresen <gavinandresen@gmail.com> | 2012-03-22 09:19:01 -0400 |
---|---|---|
committer | Gavin Andresen <gavinandresen@gmail.com> | 2012-03-22 09:19:01 -0400 |
commit | a6b4a11385bf44e695c3e47cbd0de6e40eea0b23 (patch) | |
tree | cf0388fcb5169c85b495092e09be6af5a886a236 /src/netbase.cpp | |
parent | 0e894be626ae15f26f6f1483b38c7e9191bdb638 (diff) | |
parent | 5fee401fe14aa6459428a26a82f764db70a6a0b9 (diff) |
Merge branch 'addrman' of https://github.com/sipa/bitcoin
Diffstat (limited to 'src/netbase.cpp')
-rw-r--r-- | src/netbase.cpp | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/netbase.cpp b/src/netbase.cpp index 7799a65972..baf7c412a0 100644 --- a/src/netbase.cpp +++ b/src/netbase.cpp @@ -519,15 +519,22 @@ bool CNetAddr::GetIn6Addr(struct in6_addr* pipv6Addr) const std::vector<unsigned char> CNetAddr::GetGroup() const { std::vector<unsigned char> vchRet; - int nClass = 0; // 0=IPv6, 1=IPv4, 255=unroutable + int nClass = 0; // 0=IPv6, 1=IPv4, 254=local, 255=unroutable int nStartByte = 0; int nBits = 16; - // for unroutable addresses, each address is considered different + // all local addresses belong to the same group + if (IsLocal()) + { + nClass = 254; + nBits = 0; + } + + // all unroutable addresses belong to the same group if (!IsRoutable()) { nClass = 255; - nBits = 128; + nBits = 0; } // for IPv4 addresses, '1' + the 16 higher-order bits of the IP // includes mapped IPv4, SIIT translated IPv4, and the well-known prefix |