choose streaming destination for destination port

This commit is contained in:
orignal 2015-03-02 16:09:59 -05:00
parent 45cb98c8de
commit 7b938b246a
2 changed files with 15 additions and 1 deletions

View File

@ -371,11 +371,24 @@ namespace client
switch (buf[9])
{
case PROTOCOL_TYPE_STREAMING:
{
// streaming protocol
if (toPort) // not null
{
auto it = m_StreamingDestinationsByPorts.find (toPort);
if (it != m_StreamingDestinationsByPorts.end ())
{
// found destination for specific port
it->second->HandleDataMessagePayload (buf, length);
break;
}
}
// if port is zero, or destination for port not found, use default
if (m_StreamingDestination)
m_StreamingDestination->HandleDataMessagePayload (buf, length);
else
LogPrint ("Missing streaming destination");
}
break;
case PROTOCOL_TYPE_DATAGRAM:
// datagram protocol

View File

@ -130,7 +130,8 @@ namespace client
uint32_t m_PublishReplyToken;
std::set<i2p::data::IdentHash> m_ExcludedFloodfills; // for publishing
std::shared_ptr<i2p::stream::StreamingDestination> m_StreamingDestination;
std::shared_ptr<i2p::stream::StreamingDestination> m_StreamingDestination; // default
std::map<uint16_t, std::shared_ptr<i2p::stream::StreamingDestination> > m_StreamingDestinationsByPorts;
i2p::datagram::DatagramDestination * m_DatagramDestination;
boost::asio::deadline_timer m_PublishConfirmationTimer, m_CleanupTimer;