Browse Source

handle streaming packet in streaming thread

pull/48/head
orignal 11 years ago
parent
commit
12d40e9023
  1. 10
      Streaming.cpp
  2. 3
      Streaming.h

10
Streaming.cpp

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

3
Streaming.h

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

Loading…
Cancel
Save