Package net.i2p.router.transport.udp
Class InboundEstablishState
java.lang.Object
net.i2p.router.transport.udp.InboundEstablishState
- Direct Known Subclasses:
InboundEstablishState2
Data for a new connection being established, where the remote peer has
initiated the connection with us. In other words, they are Alice and
we are Bob.
TODO do all these methods need to be synchronized?
-
Nested Class Summary
-
Field Summary
Modifier and TypeFieldDescriptionprotected final byte[]
protected final int
protected byte[]
protected final int
protected final RouterContext
protected int
protected InboundEstablishState.InboundState
protected final long
protected boolean
protected long
protected final Log
protected long
protected RouterIdentity
protected RouterIdentity
protected final RemoteHostId
protected int
protected long
protected static final long
max delay including backoff This should be a little shorter than for outbound.protected static final long
basic delay before backoff Transmissions at 0, 1, 3, 7 sec This should be a little shorter than for outbound. -
Constructor Summary
ModifierConstructorDescriptionprotected
InboundEstablishState
(RouterContext ctx, InetSocketAddress addr) For SSU2 -
Method Summary
Modifier and TypeMethodDescriptionvoid
addMessage
(OutNetMessage msg) Queue a message to be sent after the session is established.void
complete()
Notify successful completionprotected boolean
Have we fully received the SessionConfirmed messages from Alice? Caller must synch on this.void
note that we just sent a SessionCreated packetvoid
fail()
Who is Alice (null if forged/unknown) Note that this isn't really confirmed - see below.long
long
how long have we been trying to establish this session?long
getLifetime
(long now) how long have we been trying to establish this session?Pull from the message queuelong
byte[]
byte[]
(package private) RemoteHostId
RemoteHostId, uniquely identifies an attempt(package private) int
getRTT()
byte[]
what IP do they appear to be on?int
what port number do they appear to be coming from?long
long
getState()
int
boolean
boolean
True (default) if no extended options in session request, or value of flag bit in the extended options.protected void
Call from synchronized method onlyboolean
void
setSentRelayTag
(long tag) toString()
-
Field Details
-
_context
-
_log
-
_bobIP
protected byte[] _bobIP -
_bobPort
protected final int _bobPort -
_aliceIP
protected final byte[] _aliceIP -
_alicePort
protected final int _alicePort -
_sentRelayTag
protected long _sentRelayTag -
_receivedUnconfirmedIdentity
-
_receivedConfirmedIdentity
-
_establishBegin
protected final long _establishBegin -
_lastSend
protected long _lastSend -
_nextSend
protected long _nextSend -
_remoteHostId
-
_currentState
-
_createdSentCount
protected int _createdSentCount -
_introductionRequested
protected boolean _introductionRequested -
_rtt
protected int _rtt -
RETRANSMIT_DELAY
protected static final long RETRANSMIT_DELAYbasic delay before backoff Transmissions at 0, 1, 3, 7 sec This should be a little shorter than for outbound.- See Also:
-
MAX_DELAY
protected static final long MAX_DELAYmax delay including backoff This should be a little shorter than for outbound.- See Also:
-
-
Constructor Details
-
InboundEstablishState
For SSU2- Since:
- 0.9.54
-
-
Method Details
-
getVersion
public int getVersion()- Since:
- 0.9.54
-
getState
-
isComplete
public boolean isComplete()- Returns:
- if previously complete
-
complete
public void complete()Notify successful completion -
addMessage
Queue a message to be sent after the session is established. This will only happen if we decide to send something during establishment- Since:
- 0.9.2
-
getNextQueuedMessage
Pull from the message queue- Returns:
- null if none
- Since:
- 0.9.2
-
sessionRequestReceived
public boolean sessionRequestReceived() -
getReceivedX
public byte[] getReceivedX() -
getReceivedOurIP
public byte[] getReceivedOurIP() -
isIntroductionRequested
public boolean isIntroductionRequested()True (default) if no extended options in session request, or value of flag bit in the extended options.- Since:
- 0.9.24
-
getSentIP
public byte[] getSentIP()what IP do they appear to be on? -
getSentPort
public int getSentPort()what port number do they appear to be coming from? -
fail
public void fail() -
getSentRelayTag
public long getSentRelayTag() -
setSentRelayTag
public void setSentRelayTag(long tag) -
getSentSignedOnTime
public long getSentSignedOnTime() -
createdPacketSent
public void createdPacketSent()note that we just sent a SessionCreated packet -
getLifetime
public long getLifetime()how long have we been trying to establish this session? -
getLifetime
public long getLifetime(long now) how long have we been trying to establish this session?- Since:
- 0.9.57
-
getEstablishBeginTime
public long getEstablishBeginTime() -
getNextSendTime
public long getNextSendTime()- Returns:
- rcv time after receiving a packet (including after constructor), send time + delay after sending a packet
-
getRTT
int getRTT() -
getRemoteHostId
RemoteHostId getRemoteHostId()RemoteHostId, uniquely identifies an attempt -
confirmedFullyReceived
protected boolean confirmedFullyReceived()Have we fully received the SessionConfirmed messages from Alice? Caller must synch on this. -
getConfirmedIdentity
Who is Alice (null if forged/unknown) Note that this isn't really confirmed - see below. -
packetReceived
protected void packetReceived()Call from synchronized method only -
toString
-