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
Nested ClassesModifier and TypeClassDescriptionstatic classModifiable Long, no locking -
Constructor Summary
ConstructorsConstructorDescriptionInboundMessageFragments(RouterContext ctx, OutboundMessageFragments outbound, UDPTransport transport) -
Method Summary
Modifier and TypeMethodDescriptionbooleanisAlive()booleanmessageReceived(long messageID) This message was received.voidreceiveData(PeerState from, UDPPacketReader.DataReader data) Pull the fragments and ACKs out of the authenticated data packet SSU 1 only.voidshutdown()voidstartup()booleanwasRecentlyReceived(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
-