mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-02-08 17:04:13 +00:00
accept v6 only for v6 acceptor
This commit is contained in:
parent
2dfd351e7a
commit
7900e9b126
@ -704,7 +704,7 @@ namespace util
|
|||||||
s << "NTCP<br>";
|
s << "NTCP<br>";
|
||||||
for (auto it: i2p::transport::transports.GetNTCPSessions ())
|
for (auto it: i2p::transport::transports.GetNTCPSessions ())
|
||||||
{
|
{
|
||||||
if (it.second->IsEstablished ())
|
if (it.second && it.second->IsEstablished ())
|
||||||
{
|
{
|
||||||
// incoming connection doesn't have remote RI
|
// incoming connection doesn't have remote RI
|
||||||
bool outgoing = it.second->GetRemoteRouter ();
|
bool outgoing = it.second->GetRemoteRouter ();
|
||||||
|
@ -115,7 +115,7 @@ namespace transport
|
|||||||
auto addresses = context.GetRouterInfo ().GetAddresses ();
|
auto addresses = context.GetRouterInfo ().GetAddresses ();
|
||||||
for (auto& address : addresses)
|
for (auto& address : addresses)
|
||||||
{
|
{
|
||||||
if (address.transportStyle == RouterInfo::eTransportNTCP)
|
if (address.transportStyle == RouterInfo::eTransportNTCP && address.host.is_v4 ())
|
||||||
{
|
{
|
||||||
m_NTCPAcceptor = new boost::asio::ip::tcp::acceptor (m_Service,
|
m_NTCPAcceptor = new boost::asio::ip::tcp::acceptor (m_Service,
|
||||||
boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), address.port));
|
boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v4(), address.port));
|
||||||
@ -123,18 +123,21 @@ namespace transport
|
|||||||
LogPrint ("Start listening TCP port ", address.port);
|
LogPrint ("Start listening TCP port ", address.port);
|
||||||
auto conn = new NTCPServerConnection (m_Service);
|
auto conn = new NTCPServerConnection (m_Service);
|
||||||
m_NTCPAcceptor->async_accept(conn->GetSocket (), boost::bind (&Transports::HandleAccept, this,
|
m_NTCPAcceptor->async_accept(conn->GetSocket (), boost::bind (&Transports::HandleAccept, this,
|
||||||
conn, boost::asio::placeholders::error));
|
conn, boost::asio::placeholders::error));
|
||||||
|
|
||||||
if (context.SupportsV6 ())
|
if (context.SupportsV6 ())
|
||||||
{
|
{
|
||||||
m_NTCPV6Acceptor = new boost::asio::ip::tcp::acceptor (m_Service,
|
m_NTCPV6Acceptor = new boost::asio::ip::tcp::acceptor (m_Service);
|
||||||
boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v6(), address.port));
|
m_NTCPV6Acceptor->open (boost::asio::ip::tcp::v6());
|
||||||
|
m_NTCPV6Acceptor->set_option (boost::asio::ip::v6_only (true));
|
||||||
|
m_NTCPV6Acceptor->bind (boost::asio::ip::tcp::endpoint(boost::asio::ip::tcp::v6(), address.port));
|
||||||
|
m_NTCPV6Acceptor->listen ();
|
||||||
|
|
||||||
LogPrint ("Start listening V6 TCP port ", address.port);
|
LogPrint ("Start listening V6 TCP port ", address.port);
|
||||||
auto conn = new NTCPServerConnection (m_Service);
|
auto conn = new NTCPServerConnection (m_Service);
|
||||||
m_NTCPV6Acceptor->async_accept(conn->GetSocket (), boost::bind (&Transports::HandleAcceptV6,
|
m_NTCPV6Acceptor->async_accept(conn->GetSocket (), boost::bind (&Transports::HandleAcceptV6,
|
||||||
this, conn, boost::asio::placeholders::error));
|
this, conn, boost::asio::placeholders::error));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (address.transportStyle == RouterInfo::eTransportSSU)
|
else if (address.transportStyle == RouterInfo::eTransportSSU)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user