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
All Methods Instance Methods Concrete Methods 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 Detail
-
InboundEstablishState
public InboundEstablishState(RouterContext ctx, NTCPTransport transport, NTCPConnection con)
-
-
Method Detail
-
receive
public void receive(ByteBuffer src)
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
public void gotRI(RouterInfo ri, boolean isHandshake, boolean flood) throws DataFormatException
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
public void gotI2NP(I2NPMessage msg)
- Specified by:
gotI2NP
in interfaceNTCP2Payload.PayloadCallback
- Since:
- 0.9.36
-
fail
protected void fail(String reason, Exception e, boolean bySkew)
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
-
-