diff --git a/NTCPSession.cpp b/NTCPSession.cpp index 61e7944f..061dbbac 100644 --- a/NTCPSession.cpp +++ b/NTCPSession.cpp @@ -517,10 +517,10 @@ namespace ntcp } - NTCPClient::NTCPClient (boost::asio::io_service& service, const char * address, + NTCPClient::NTCPClient (boost::asio::io_service& service, boost::asio::ip::address& address, int port, i2p::data::RouterInfo& in_RouterInfo): NTCPSession (service, in_RouterInfo), - m_Endpoint (boost::asio::ip::address::from_string (address), port) + m_Endpoint (address, port) { Connect (); } diff --git a/NTCPSession.h b/NTCPSession.h index 5d33ef10..512d65ec 100644 --- a/NTCPSession.h +++ b/NTCPSession.h @@ -144,7 +144,7 @@ namespace ntcp { public: - NTCPClient (boost::asio::io_service& service, const char * address, int port, i2p::data::RouterInfo& in_RouterInfo); + NTCPClient (boost::asio::io_service& service, boost::asio::ip::address& address, int port, i2p::data::RouterInfo& in_RouterInfo); private: diff --git a/RouterContext.cpp b/RouterContext.cpp index 718a9f36..3e19c810 100644 --- a/RouterContext.cpp +++ b/RouterContext.cpp @@ -45,7 +45,7 @@ namespace i2p auto address = m_RouterInfo.GetNTCPAddress (); if (address) { - address->host = host; + address->host = boost::asio::ip::address::from_string (host); address->port = port; } @@ -80,4 +80,4 @@ namespace i2p std::ofstream fi (ROUTER_INFO); fi.write ((char *)m_RouterInfo.GetBuffer (), m_RouterInfo.GetBufferLen ()); } -} \ No newline at end of file +} diff --git a/RouterInfo.cpp b/RouterInfo.cpp index d804ecad..5125bfa9 100644 --- a/RouterInfo.cpp +++ b/RouterInfo.cpp @@ -101,7 +101,7 @@ namespace data r += ReadString (value, s); s.seekg (1, std::ios_base::cur); r++; // ; if (!strcmp (key, "host")) - address.host = value; + address.host = boost::asio::ip::address::from_string (value); else if (!strcmp (key, "port")) address.port = boost::lexical_cast(value); } @@ -166,7 +166,7 @@ namespace data std::stringstream properties; WriteString ("host", properties); properties << '='; - WriteString (address.host, properties); + WriteString (address.host.to_string (), properties); properties << ';'; WriteString ("port", properties); properties << '='; @@ -227,7 +227,7 @@ namespace data void RouterInfo::AddNTCPAddress (const char * host, int port) { Address addr; - addr.host = host; + addr.host = boost::asio::ip::address::from_string (host); addr.port = port; addr.transportStyle = eTransportNTCP; addr.cost = 2; diff --git a/RouterInfo.h b/RouterInfo.h index a8d59adf..09440946 100644 --- a/RouterInfo.h +++ b/RouterInfo.h @@ -27,7 +27,7 @@ namespace data struct Address { TransportStyle transportStyle; - std::string host; + boost::asio::ip::address host; int port; uint64_t date; uint8_t cost; diff --git a/Transports.cpp b/Transports.cpp index 371ea2e6..31d0325f 100644 --- a/Transports.cpp +++ b/Transports.cpp @@ -139,7 +139,7 @@ namespace i2p auto address = r->GetNTCPAddress (); if (address) { - session = new i2p::ntcp::NTCPClient (m_Service, address->host.c_str (), address->port, *r); + session = new i2p::ntcp::NTCPClient (m_Service, address->host, address->port, *r); AddNTCPSession (session); } else