Package net.i2p.router.transport.udp
Interface SSU2Payload.PayloadCallback
- All Known Implementing Classes:
InboundEstablishState2
,OutboundEstablishState2
,PeerState2
- Enclosing class:
SSU2Payload
public static interface SSU2Payload.PayloadCallback
For all callbacks, recommend throwing exceptions only from the handshake.
Exceptions will get thrown out of processPayload() and prevent
processing of succeeding blocks.
-
Method Summary
Modifier and TypeMethodDescriptionvoid
gotACK
(long ackThru, int acks, byte[] ranges) void
gotAddress
(byte[] ip, int port) void
gotDateTime
(long time) void
gotFragment
(byte[] data, int off, int len, long messageID, int frag, boolean isLast) Data must be copied out in this method.void
gotI2NP
(I2NPMessage msg) void
gotOptions
(byte[] options, boolean isHandshake) void
gotPathChallenge
(RemoteHostId from, byte[] data) void
gotPathResponse
(RemoteHostId from, byte[] data) void
gotPeerTest
(int msg, int status, Hash h, byte[] data) void
gotRelayIntro
(Hash aliceHash, byte[] data) void
gotRelayRequest
(byte[] data) void
gotRelayResponse
(int status, byte[] data) void
gotRelayTag
(long tag) void
void
gotRI
(RouterInfo ri, boolean isHandshake, boolean flood) void
gotRIFragment
(byte[] data, boolean isHandshake, boolean flood, boolean isGzipped, int frag, int totalFrags) void
gotTermination
(int reason, long lastReceived) void
gotToken
(long token, long expires)
-
Method Details
-
gotDateTime
- Throws:
DataFormatException
-
gotI2NP
- Throws:
I2NPMessageException
-
gotFragment
void gotFragment(byte[] data, int off, int len, long messageID, int frag, boolean isLast) throws DataFormatException Data must be copied out in this method. Data starts at the 9 byte header for fragment 0.- Parameters:
off
- offset in datalen
- length of data to copy- Throws:
DataFormatException
-
gotACK
void gotACK(long ackThru, int acks, byte[] ranges) - Parameters:
ranges
- null if none
-
gotOptions
- Parameters:
isHandshake
- true only for message 3 part 2- Throws:
DataFormatException
-
gotRI
- Parameters:
ri
- will already be validatedisHandshake
- true only for message 3 part 2- Throws:
DataFormatException
-
gotRIFragment
void gotRIFragment(byte[] data, boolean isHandshake, boolean flood, boolean isGzipped, int frag, int totalFrags) - Parameters:
data
- is first gzipped and then fragmentedisHandshake
- true only for message 3 part 2
-
gotAddress
void gotAddress(byte[] ip, int port) -
gotRelayTagRequest
void gotRelayTagRequest() -
gotRelayTag
void gotRelayTag(long tag) -
gotRelayRequest
void gotRelayRequest(byte[] data) - Parameters:
data
- excludes flag, includes signature
-
gotRelayResponse
void gotRelayResponse(int status, byte[] data) - Parameters:
status
- 0 = accept, 1-255 = rejectdata
- excludes flag, includes signature
-
gotRelayIntro
- Parameters:
data
- excludes flag, includes signature
-
gotPeerTest
- Parameters:
msg
- 1-7status
- 0 = accept, 1-255 = rejecth
- Alice or Charlie hash for msg 2 and 4, null for msg 1, 3, 5-7data
- excludes flag, includes signature
-
gotToken
void gotToken(long token, long expires) -
gotTermination
void gotTermination(int reason, long lastReceived) - Parameters:
lastReceived
- in theory could wrap around to negative, but very unlikely
-
gotPathChallenge
- Parameters:
from
- null if unknown- Since:
- 0.9.55
-
gotPathResponse
- Parameters:
from
- null if unknown- Since:
- 0.9.55
-