mirror of
https://github.com/PurpleI2P/i2pd.git
synced 2025-04-28 11:47:48 +02:00
pack 3 DatabaseLookup messages into one TunnelData while processing DatabaseSearchReply
This commit is contained in:
parent
093e566da6
commit
474aa9068a
7 changed files with 157 additions and 73 deletions
|
@ -15,10 +15,13 @@ namespace tunnel
|
|||
struct TunnelMessageBlockExt: public TunnelMessageBlock
|
||||
{
|
||||
size_t deliveryInstructionsLen, totalLen;
|
||||
bool isFragmented;
|
||||
};
|
||||
|
||||
public:
|
||||
|
||||
TunnelGatewayBuffer (): m_Remaining (0) {};
|
||||
|
||||
void PutI2NPMsg (const uint8_t * gwHash, uint32_t gwTunnel, I2NPMessage * msg);
|
||||
std::vector<I2NPMessage *> GetTunnelDataMsgs (uint32_t tunnelID);
|
||||
|
||||
|
@ -26,13 +29,13 @@ namespace tunnel
|
|||
|
||||
size_t CreateFirstFragment (TunnelMessageBlockExt * block, uint8_t * buf, size_t len);
|
||||
size_t CreateFollowOnFragment (TunnelMessageBlockExt * block, uint8_t * buf, size_t len);
|
||||
I2NPMessage * CreateNextTunnelMessage (uint32_t tunnelID, TunnelMessageBlockExt * block, size_t size);
|
||||
I2NPMessage * CreateNextTunnelMessage (uint32_t tunnelID, int& ind);
|
||||
|
||||
private:
|
||||
|
||||
std::vector<TunnelMessageBlockExt *> m_I2NPMsgs;
|
||||
// for fragmented messages
|
||||
size_t m_NextOffset, m_NextSeqn;
|
||||
size_t m_NextOffset, m_NextSeqn, m_Remaining;
|
||||
uint32_t m_NextMsgID;
|
||||
};
|
||||
|
||||
|
@ -42,6 +45,8 @@ namespace tunnel
|
|||
|
||||
TunnelGateway (TunnelBase * tunnel): m_Tunnel (tunnel) {};
|
||||
void SendTunnelDataMsg (const uint8_t * gwHash, uint32_t gwTunnel, i2p::I2NPMessage * msg);
|
||||
void PutTunnelDataMsg (const uint8_t * gwHash, uint32_t gwTunnel, i2p::I2NPMessage * msg);
|
||||
void SendBuffer ();
|
||||
|
||||
private:
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue