## net.i2p.router.transport.udp
Class InboundEstablishState

    java.lang.Object
      net.i2p.router.transport.udp.InboundEstablishState

    public class InboundEstablishState

extends java.lang.Object

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.

Field Summary
`static int` `STATE_CONFIRMED_COMPLETELY` we have completely received all of the confirmation packets
`static int` `STATE_CONFIRMED_PARTIALLY` we have received one or more confirmation packets
`static int` `STATE_CREATED_SENT` we have sent a signed creation packet
`static int` `STATE_FAILED` we are explicitly failing it
`static int` `STATE_REQUEST_RECEIVED` we have received an initial request
`static int` `STATE_UNKNOWN` nothin known yet

Constructor Summary
`InboundEstablishState(RouterContext ctx, byte[] remoteIP, int remotePort, int localPort)`

Method Summary
`boolean` `complete()`
`boolean` `confirmedFullyReceived()` have we fully received the SessionConfirmed messages from Alice?
`void` `createdPacketSent()` note that we just sent a SessionCreated packet
`void` `fail()`
`void` `generateSessionKey()`
`byte[]` `getBobIP()`
`SessionKey` `getCipherKey()`
`RouterIdentity` `getConfirmedIdentity()` Who is Alice (null if forged/unknown)
`long` `getEstablishBeginTime()`
`long` `getLifetime()` how long have we been trying to establish this session?
`SessionKey` `getMACKey()`
`long` `getNextSendTime()`
`byte[]` `getReceivedOurIP()`
`byte[]` `getReceivedX()`
`RemoteHostId` `getRemoteHostId()` RemoteHostId, uniquely identifies an attempt
`byte[]` `getSentIP()` what IP do they appear to be on?
`int` `getSentPort()` what port number do they appear to be coming from?
`long` `getSentRelayTag()`
`Signature` `getSentSignature()`
`long` `getSentSignedOnTime()`
`byte[]` `getSentY()`
`int` `getState()`
`void` `prepareSessionCreated()`
`void` `receiveSessionConfirmed(UDPPacketReader.SessionConfirmedReader conf)`
`void` `receiveSessionRequest(UDPPacketReader.SessionRequestReader req)`
`boolean` `sessionRequestReceived()`
`void` `setNextSendTime(long when)`
`void` `setSentRelayTag(long tag)`
`java.lang.String` `toString()`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Field Detail

### STATE_UNKNOWN

    public static final int STATE_UNKNOWN

  nothin known yet

  See Also:
    Constant Field Values

### STATE_REQUEST_RECEIVED

    public static final int STATE_REQUEST_RECEIVED

  we have received an initial request

  See Also:
    Constant Field Values

### STATE_CREATED_SENT

    public static final int STATE_CREATED_SENT

  we have sent a signed creation packet

  See Also:
    Constant Field Values

### STATE_CONFIRMED_PARTIALLY

    public static final int STATE_CONFIRMED_PARTIALLY

  we have received one or more confirmation packets

  See Also:
    Constant Field Values

### STATE_CONFIRMED_COMPLETELY

    public static final int STATE_CONFIRMED_COMPLETELY

  we have completely received all of the confirmation packets

  See Also:
    Constant Field Values

### STATE_FAILED

    public static final int STATE_FAILED

  we are explicitly failing it

  See Also:
    Constant Field Values

Constructor Detail

### InboundEstablishState

    public InboundEstablishState(RouterContext ctx,
                                 byte[] remoteIP,
                                 int remotePort,
                                 int localPort)

Method Detail

### getState

    public int getState()

### complete

    public boolean complete()

### receiveSessionRequest

    public void receiveSessionRequest(UDPPacketReader.SessionRequestReader req)

### sessionRequestReceived

    public boolean sessionRequestReceived()

### getReceivedX

    public byte[] getReceivedX()

### getReceivedOurIP

    public byte[] getReceivedOurIP()

### generateSessionKey

    public void generateSessionKey()
                            throws DHSessionKeyBuilder.InvalidPublicParameterException

  Throws:
    `DHSessionKeyBuilder.InvalidPublicParameterException`

### getCipherKey

    public SessionKey getCipherKey()

### getMACKey

    public SessionKey getMACKey()

### 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?

### getBobIP

    public byte[] getBobIP()

### getSentY

    public byte[] getSentY()

### fail

    public void fail()

### getSentRelayTag

    public long getSentRelayTag()

### setSentRelayTag

    public void setSentRelayTag(long tag)

### getSentSignedOnTime

    public long getSentSignedOnTime()

### prepareSessionCreated

    public void prepareSessionCreated()

### getSentSignature

    public Signature getSentSignature()

### 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?

### getEstablishBeginTime

    public long getEstablishBeginTime()

### getNextSendTime

    public long getNextSendTime()

### setNextSendTime

    public void setNextSendTime(long when)

### getRemoteHostId

    public RemoteHostId getRemoteHostId()

  RemoteHostId, uniquely identifies an attempt

### receiveSessionConfirmed

    public void receiveSessionConfirmed(UDPPacketReader.SessionConfirmedReader conf)

### confirmedFullyReceived

    public boolean confirmedFullyReceived()

  have we fully received the SessionConfirmed messages from Alice?

### getConfirmedIdentity

    public RouterIdentity getConfirmedIdentity()

  Who is Alice (null if forged/unknown)

### toString

    public java.lang.String toString()

  Overrides:
    `toString` in class `java.lang.Object`