diff options
| author | Gavin Andresen <[email protected]> | 2012-03-22 09:19:01 -0400 |
|---|---|---|
| committer | Gavin Andresen <[email protected]> | 2012-03-22 09:19:01 -0400 |
| commit | a6b4a11385bf44e695c3e47cbd0de6e40eea0b23 (patch) | |
| tree | cf0388fcb5169c85b495092e09be6af5a886a236 /src/netbase.cpp | |
| parent | Merge pull request #964 from sipa/fastblocks (diff) | |
| parent | CAddrMan: stochastic address manager (diff) | |
| download | discoin-a6b4a11385bf44e695c3e47cbd0de6e40eea0b23.tar.xz discoin-a6b4a11385bf44e695c3e47cbd0de6e40eea0b23.zip | |
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 7799a6597..baf7c412a 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 |