X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Frpcnet.cpp;fp=src%2Frpcnet.cpp;h=5404c01dc795177a63452f37859d950e9f2e00a8;hb=b811745be7df169fcb75dd84c1e57aef20649b1b;hp=604db0f215d1c4ebd5fee0f502482863a2fb494e;hpb=056f3b1ef51d160dad763ed43cacc151735999de;p=novacoin.git diff --git a/src/rpcnet.cpp b/src/rpcnet.cpp index 604db0f..5404c01 100644 --- a/src/rpcnet.cpp +++ b/src/rpcnet.cpp @@ -36,6 +36,52 @@ static void CopyNodeStats(std::vector& vstats) } } +Value getaddrmaninfo(const Array& params, bool fHelp) +{ + if (fHelp || params.size() != 0) + throw runtime_error( + "getaddrmaninfo\n" + "Returns a dump of addrman data."); + + vector vAddr = addrman.GetAddr(); + + Array ret; + + BOOST_FOREACH(const CAddress &addr, vAddr) { + // Don't return addresses older than nCutOff timestamp + int64_t nCutOff = GetTime() - (nNodeLifespan * 24 * 60 * 60); + + if (!addr.IsRoutable() || addr.IsLocal() || addr.nTime > nCutOff) + continue; + + Object addrManItem; + addrManItem.push_back(Pair("address", addr.ToString())); + + string strNetType; + switch(addr.GetNetwork()) + { + case NET_TOR: + strNetType = "tor"; + break; + case NET_I2P: + strNetType = "i2p"; + case NET_IPV4: + strNetType = "ipv4"; + break; + default: + case NET_IPV6: + strNetType = "ipv6"; + + } + addrManItem.push_back(Pair("type", strNetType)); + addrManItem.push_back(Pair("time", (int64_t)addr.nTime)); + + ret.push_back(addrManItem); + } + + return ret; +} + Value getpeerinfo(const Array& params, bool fHelp) { if (fHelp || params.size() != 0)