|
|
|
@ -1036,11 +1036,15 @@ namespace client
@@ -1036,11 +1036,15 @@ namespace client
|
|
|
|
|
|
|
|
|
|
void ClientDestination::Stop () |
|
|
|
|
{ |
|
|
|
|
LogPrint(eLogDebug, "Destination: Stopping destination ", GetIdentHash().ToBase32(), ".b32.i2p"); |
|
|
|
|
LeaseSetDestination::Stop (); |
|
|
|
|
m_ReadyChecker.cancel(); |
|
|
|
|
LogPrint(eLogDebug, "Destination: -> Stopping Streaming Destination"); |
|
|
|
|
m_StreamingDestination->Stop (); |
|
|
|
|
//m_StreamingDestination->SetOwner (nullptr);
|
|
|
|
|
m_StreamingDestination = nullptr; |
|
|
|
|
|
|
|
|
|
LogPrint(eLogDebug, "Destination: -> Stopping Streaming Destination by ports"); |
|
|
|
|
for (auto& it: m_StreamingDestinationsByPorts) |
|
|
|
|
{ |
|
|
|
|
it.second->Stop (); |
|
|
|
@ -1048,11 +1052,14 @@ namespace client
@@ -1048,11 +1052,14 @@ namespace client
|
|
|
|
|
} |
|
|
|
|
m_StreamingDestinationsByPorts.clear (); |
|
|
|
|
m_LastStreamingDestination = nullptr; |
|
|
|
|
|
|
|
|
|
if (m_DatagramDestination) |
|
|
|
|
{ |
|
|
|
|
LogPrint(eLogDebug, "Destination: -> Stopping Datagram Destination"); |
|
|
|
|
delete m_DatagramDestination; |
|
|
|
|
m_DatagramDestination = nullptr; |
|
|
|
|
} |
|
|
|
|
LogPrint(eLogDebug, "Destination: -> Stopping done"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void ClientDestination::HandleDataMessage (const uint8_t * buf, size_t len) |
|
|
|
@ -1075,10 +1082,10 @@ namespace client
@@ -1075,10 +1082,10 @@ namespace client
|
|
|
|
|
if (toPort != m_LastPort || !m_LastStreamingDestination) |
|
|
|
|
{ |
|
|
|
|
m_LastStreamingDestination = GetStreamingDestination (toPort); |
|
|
|
|
if (!m_LastStreamingDestination) |
|
|
|
|
if (!m_LastStreamingDestination) |
|
|
|
|
m_LastStreamingDestination = m_StreamingDestination; // if no destination on port use default
|
|
|
|
|
m_LastPort = toPort; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (m_LastStreamingDestination) |
|
|
|
|
m_LastStreamingDestination->HandleDataMessagePayload (buf, length); |
|
|
|
|
else |
|
|
|
|