mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-01-22 04:04:16 +00:00
handle streaming packet in streaming thread
This commit is contained in:
parent
4bd42625fd
commit
12d40e9023
@ -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
|
||||||
|
@ -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…
x
Reference in New Issue
Block a user