Package net.i2p.router.transport.ntcp
Class InboundEstablishState
java.lang.Object
net.i2p.router.transport.ntcp.EstablishBase
net.i2p.router.transport.ntcp.InboundEstablishState
- All Implemented Interfaces:
EstablishState
,NTCP2Payload.PayloadCallback
class InboundEstablishState extends EstablishBase implements NTCP2Payload.PayloadCallback
NTCP 2. We are Bob.
- Since:
- 0.9.35 pulled out of EstablishState
-
Nested Class Summary
Nested classes/interfaces inherited from class net.i2p.router.transport.ntcp.EstablishBase
EstablishBase.State
-
Field Summary
Fields inherited from class net.i2p.router.transport.ntcp.EstablishBase
_con, _context, _curDecrypted, _e_bobSig, _e_hXY_tsB, _hX_xor_bobIdentHash, _log, _peerSkew, _prevEncrypted, _received, _state, _stateLock, _transport, _tsA, _tsB, _X, _Y, AES_SIZE, FAILED, HXY_SIZE, HXY_TSB_PAD_SIZE, MAX_RI_SIZE, MIN_RI_SIZE, STATES_DONE, VERIFIED, XY_SIZE
-
Constructor Summary
Constructors Constructor Description InboundEstablishState(RouterContext ctx, NTCPTransport transport, NTCPConnection con)
-
Method Summary
Modifier and Type Method Description protected void
fail(String reason, Exception e, boolean bySkew)
Caller must synch.int
getVersion()
Get the NTCP versionvoid
gotDateTime(long time)
void
gotI2NP(I2NPMessage msg)
void
gotOptions(byte[] options, boolean isHandshake)
void
gotPadding(int paddingLength, int frameLength)
For stats.void
gotRI(RouterInfo ri, boolean isHandshake, boolean flood)
Get "s" static key out of RI, compare to what we got in the handshake.void
gotTermination(int reason, long lastReceived)
void
gotUnknown(int type, int len)
void
receive(ByteBuffer src)
Parse the contents of the buffer as part of the handshake.protected void
releaseBufs(boolean isVerified)
Only call once.Methods inherited from class net.i2p.router.transport.ntcp.EstablishBase
_x, changeState, close, fail, fail, isComplete, isCorrupt, prefix, prepareOutbound, toString, xor32
-
Constructor Details
-
Method Details
-
receive
Parse the contents of the buffer as part of the handshake. All data must be copied out of the buffer as Reader.processRead() will return it to the pool. If there are additional data in the buffer after the handshake is complete, the EstablishState is responsible for passing it to NTCPConnection.- Specified by:
receive
in interfaceEstablishState
- Overrides:
receive
in classEstablishBase
-
getVersion
public int getVersion()Get the NTCP version- Specified by:
getVersion
in interfaceEstablishState
- Specified by:
getVersion
in classEstablishBase
- Returns:
- 1, 2, or 0 if unknown
- Since:
- 0.9.35
-
gotRI
Get "s" static key out of RI, compare to what we got in the handshake. Tell NTCPConnection who it is.- Specified by:
gotRI
in interfaceNTCP2Payload.PayloadCallback
- Parameters:
isHandshake
- always trueri
- will already be validated- Throws:
DataFormatException
- on bad sig, unknown SigType, no static key, static key mismatch, IP checks in verifyInbound()- Since:
- 0.9.36
-
gotOptions
public void gotOptions(byte[] options, boolean isHandshake)- Specified by:
gotOptions
in interfaceNTCP2Payload.PayloadCallback
isHandshake
- true only for message 3 part 2- Since:
- 0.9.36
-
gotPadding
public void gotPadding(int paddingLength, int frameLength)Description copied from interface:NTCP2Payload.PayloadCallback
For stats.- Specified by:
gotPadding
in interfaceNTCP2Payload.PayloadCallback
- Parameters:
paddingLength
- the number of padding bytes, not including the 3-byte block headerframeLength
- the total size of the frame, including all blocks and block headers- Since:
- 0.9.36
-
gotTermination
public void gotTermination(int reason, long lastReceived)- Specified by:
gotTermination
in interfaceNTCP2Payload.PayloadCallback
lastReceived
- in theory could wrap around to negative, but very unlikely- Since:
- 0.9.36
-
gotUnknown
public void gotUnknown(int type, int len)- Specified by:
gotUnknown
in interfaceNTCP2Payload.PayloadCallback
- Since:
- 0.9.36
-
gotDateTime
public void gotDateTime(long time)- Specified by:
gotDateTime
in interfaceNTCP2Payload.PayloadCallback
- Since:
- 0.9.36
-
gotI2NP
- Specified by:
gotI2NP
in interfaceNTCP2Payload.PayloadCallback
- Since:
- 0.9.36
-
fail
Description copied from class:EstablishBase
Caller must synch.- Overrides:
fail
in classEstablishBase
- Since:
- 0.9.16
-
releaseBufs
protected void releaseBufs(boolean isVerified)Only call once. Caller must synch.- Overrides:
releaseBufs
in classEstablishBase
- Since:
- 0.9.16
-