X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Frpcnet.cpp;h=5404c01dc795177a63452f37859d950e9f2e00a8;hb=b811745be7df169fcb75dd84c1e57aef20649b1b;hp=c2c22e27b2c84c7ca0205f132a170f5ded4a4570;hpb=a7338f95f8169b31f47e078cd2b855d8ea7fc0d7;p=novacoin.git diff --git a/src/rpcnet.cpp b/src/rpcnet.cpp index c2c22e2..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) @@ -88,7 +134,7 @@ Value addnode(const Array& params, bool fHelp) if (strCommand == "onetry") { CAddress addr; - ConnectNode(addr, strNode.c_str()); + OpenNetworkConnection(addr, NULL, strNode.c_str()); return Value::null; }