Browse Source

don't return default destination if port is specified explicitly

debian
orignal 2 years ago
parent
commit
132557f941
  1. 6
      libi2pd/Destination.cpp
  2. 2
      libi2pd_client/I2PTunnel.cpp

6
libi2pd/Destination.cpp

@ -1083,6 +1083,7 @@ namespace client @@ -1083,6 +1083,7 @@ namespace client
{
// streaming protocol
auto dest = GetStreamingDestination (toPort);
if (!dest) dest = m_StreamingDestination; // if no destination on port use default
if (dest)
dest->HandleDataMessagePayload (buf, length);
else
@ -1236,8 +1237,9 @@ namespace client @@ -1236,8 +1237,9 @@ namespace client
if (it != m_StreamingDestinationsByPorts.end ())
return it->second;
}
// if port is zero or not found, use default destination
return m_StreamingDestination;
else // if port is zero, use default destination
return m_StreamingDestination;
return nullptr;
}
void ClientDestination::AcceptStreams (const i2p::stream::StreamingDestination::Acceptor& acceptor)

2
libi2pd_client/I2PTunnel.cpp

@ -693,7 +693,7 @@ namespace client @@ -693,7 +693,7 @@ namespace client
{
if (!inport) inport = port;
m_PortDestination = localDestination->GetStreamingDestination (inport);
if (!m_PortDestination || (inport && (m_PortDestination == localDestination->GetStreamingDestination ()))) // default destination
if (!m_PortDestination) // default destination
m_PortDestination = localDestination->CreateStreamingDestination (inport, gzip);
}

Loading…
Cancel
Save