Package net.i2p.router.transport.udp
Class InboundMessageFragments
java.lang.Object
net.i2p.router.transport.udp.InboundMessageFragments
Organize the received data message fragments, feeding completed messages
to the
MessageReceiver
and telling the PeerState
to ACK. In addition, it drops failed fragments and keeps a
minimal list of the most recently completed messages (even though higher
up in the router we have full blown replay detection, its nice to have a
basic line of defense here).-
Nested Class Summary
Modifier and TypeClassDescriptionstatic class
Modifiable Long, no locking -
Constructor Summary
ConstructorDescriptionInboundMessageFragments
(RouterContext ctx, OutboundMessageFragments outbound, UDPTransport transport) -
Method Summary
Modifier and TypeMethodDescriptionboolean
isAlive()
boolean
messageReceived
(long messageID) This message was received.void
receiveData
(PeerState from, UDPPacketReader.DataReader data) Pull the fragments and ACKs out of the authenticated data packet SSU 1 only.void
shutdown()
void
startup()
boolean
wasRecentlyReceived
(long messageID) Was this message recently received? SSU 2 only.
-
Constructor Details
-
InboundMessageFragments
public InboundMessageFragments(RouterContext ctx, OutboundMessageFragments outbound, UDPTransport transport)
-
-
Method Details
-
startup
public void startup() -
shutdown
public void shutdown() -
isAlive
public boolean isAlive() -
receiveData
Pull the fragments and ACKs out of the authenticated data packet SSU 1 only. -
messageReceived
public boolean messageReceived(long messageID) This message was received. SSU 2 only. No stats updated here, caller should handle stats.- Returns:
- true if this message was a duplicate
- Since:
- 0.9.54
-
wasRecentlyReceived
public boolean wasRecentlyReceived(long messageID) Was this message recently received? SSU 2 only. No stats updated here, caller should handle stats.- Returns:
- true if this message was recently received.
- Since:
- 0.9.54
-