diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 26661b9..0dea8ef 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -54,8 +54,6 @@ set(CORE_SOURCES net.cpp net_bootstrap.cpp netbase.cpp - i2p.cpp - i2p_process.cpp protocol.cpp script.cpp sync.cpp diff --git a/src/init.cpp b/src/init.cpp index 6b04ea8..9de9197 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -1706,7 +1706,7 @@ bool AppInit2() StartupPerfLog("i2p_start", GetTimeMillis() - nI2PStart, strprintf("started=%d", i2pStarted)); if (i2pStarted) { SetReachable(NET_I2P, true); - std::string i2pAddr = CI2PSession::GetInstance()->GetB32Address(); + std::string i2pAddr = CI2PEmbedded::GetInstance()->GetI2PAddress(); printf("I2P network enabled. Our address: %s\n", i2pAddr.c_str()); } else { printf("NOTICE: I2P not available this session; continuing with Tor only\n"); diff --git a/src/net.cpp b/src/net.cpp index 6377d5b..58389fb 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -591,16 +591,6 @@ CNode* ConnectNode(CAddress addrConnect, const char *pszDest) return nullptr; } - // For I2P make sure addrConnect carries the destination so the resulting - // CNode is labelled correctly even when we were given a bare pszDest. - if (fI2P && !addrConnect.IsI2P()) { - std::string i2pHost = addrStr; - size_t i2pEnd = i2pHost.find(".i2p"); - if (i2pEnd != std::string::npos) - i2pHost = i2pHost.substr(0, i2pEnd + 4); - addrConnect.SetSpecial(i2pHost); - } - if (pszDest == nullptr) { if (IsLocal(addrConnect)) return nullptr; @@ -624,20 +614,8 @@ CNode* ConnectNode(CAddress addrConnect, const char *pszDest) pszDest ? 0 : (double)(GetAdjustedTime() - addrConnect.nTime)/3600.0); // Connect - SOCKET hSocket = INVALID_SOCKET; - bool fConnected; - if (fI2P) { - // Route through the I2P SAM session. Strip any :port suffix; I2P peers - // are reached purely by destination. - std::string i2pDest = addrStr; - size_t i2pEnd = i2pDest.find(".i2p"); - if (i2pEnd != std::string::npos) - i2pDest = i2pDest.substr(0, i2pEnd + 4); - fConnected = CI2PSession::GetInstance()->Connect(i2pDest, hSocket); - } else { - fConnected = pszDest ? ConnectSocketByName(addrConnect, hSocket, pszDest, GetDefaultPort()) : ConnectSocket(addrConnect, hSocket); - } - if (fConnected) + SOCKET hSocket; + if (pszDest ? ConnectSocketByName(addrConnect, hSocket, pszDest, GetDefaultPort()) : ConnectSocket(addrConnect, hSocket)) { addrman.Attempt(addrConnect); diff --git a/src/rpcnet.cpp b/src/rpcnet.cpp index 7610242..a020b09 100644 --- a/src/rpcnet.cpp +++ b/src/rpcnet.cpp @@ -10,7 +10,7 @@ #include "db.h" #include "walletdb.h" #include "net_bootstrap.h" -#include "i2p.h" +#include "i2p/i2p_embedded.h" #include "tor/onion_v3.h" #include "tor/tor_embedded.h" @@ -42,8 +42,8 @@ Value getnetworkinfo(const Array& params, bool fHelp) if (onionAddress.empty()) onionAddress = CTorEmbedded::GetInstance()->GetOnionAddress(); - // I2P session state and .b32.i2p address. - CI2PSession* i2p = CI2PSession::GetInstance(); + // I2P embedded router state and .b32.i2p address. + CI2PEmbedded* i2p = CI2PEmbedded::GetInstance(); int nI2PPeers = 0; { LOCK(cs_vNodes); @@ -52,9 +52,9 @@ Value getnetworkinfo(const Array& params, bool fHelp) nI2PPeers++; } Object i2pObj; - i2pObj.push_back(Pair("enabled", i2p->IsEnabled())); - i2pObj.push_back(Pair("active", i2p->IsActive())); - i2pObj.push_back(Pair("address", i2p->GetB32Address())); + i2pObj.push_back(Pair("enabled", i2p->IsRunning())); + i2pObj.push_back(Pair("active", i2p->IsRunning())); + i2pObj.push_back(Pair("address", i2p->GetI2PAddress())); i2pObj.push_back(Pair("peers", nI2PPeers)); Object obj; diff --git a/src/rpcwallet.cpp b/src/rpcwallet.cpp index 70d4e27..b5aa930 100644 --- a/src/rpcwallet.cpp +++ b/src/rpcwallet.cpp @@ -9,7 +9,7 @@ #include "init.h" #include "base58.h" #include "smessage.h" -#include "i2p.h" +#include "i2p/i2p_embedded.h" #include "tor/onion_v3.h" #include "tor/tor_embedded.h" @@ -108,7 +108,7 @@ Value getinfo(const Array& params, bool fHelp) if (onionAddress.empty()) onionAddress = CTorEmbedded::GetInstance()->GetOnionAddress(); obj.push_back(Pair("toraddress", onionAddress)); - obj.push_back(Pair("i2paddress", CI2PSession::GetInstance()->GetB32Address())); + obj.push_back(Pair("i2paddress", CI2PEmbedded::GetInstance()->GetI2PAddress())); diff.push_back(Pair("proof-of-work", GetDifficulty())); diff.push_back(Pair("proof-of-stake", GetDifficulty(GetLastBlockIndex(pindexBest, true))));