handle streaming packet in streaming thread

This commit is contained in:
orignal 2014-03-23 19:48:09 -04:00
parent 4bd42625fd
commit 12d40e9023
2 changed files with 10 additions and 3 deletions

View File

@ -1,5 +1,6 @@
#include <fstream>
#include <algorithm>
#include <boost/bind.hpp>
#include <cryptopp/gzip.h>
#include "Log.h"
#include "RouterInfo.h"
@ -479,8 +480,13 @@ namespace stream
else
delete stream;
}
void StreamingDestinations::HandleNextPacket (i2p::data::IdentHash destination, Packet * packet)
{
m_Service.post (boost::bind (&StreamingDestinations::PostNextPacket, this, destination, packet));
}
void StreamingDestinations::PostNextPacket (i2p::data::IdentHash destination, Packet * packet)
{
// TODO: we have onle one destination, might be more
if (m_SharedLocalDestination)
@ -527,7 +533,7 @@ namespace stream
uncompressed->len = MAX_PACKET_SIZE;
}
decompressor.Get (uncompressed->buf, uncompressed->len);
// then forward to streaming engine
// then forward to streaming engine thread
destinations.HandleNextPacket (destination, uncompressed);
}
else

View File

@ -156,7 +156,7 @@ namespace stream
void Start ();
void Stop ();
void HandleNextPacket (i2p::data::IdentHash destination, Packet * packet);
void HandleNextPacket (i2p::data::IdentHash destination, Packet * packet);
Stream * CreateClientStream (const i2p::data::LeaseSet& remote);
void DeleteClientStream (Stream * stream);
@ -164,6 +164,7 @@ namespace stream
private:
void Run ();
void PostNextPacket (i2p::data::IdentHash destination, Packet * packet);
private: