Class EstablishBase

java.lang.Object
net.i2p.router.transport.ntcp.EstablishBase
All Implemented Interfaces:
EstablishState
Direct Known Subclasses:
InboundEstablishState

abstract class EstablishBase
extends Object
implements EstablishState
Inbound NTCP 2 only. OutboundNTCP2State does not extend this.
Since:
0.9.35 pulled out of EstablishState
  • Field Details

  • Constructor Details

  • Method Details

    • changeState

      protected void changeState​(EstablishBase.State state)
      Since:
      0.9.16
    • 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 interface EstablishState
    • prepareOutbound

      public void prepareOutbound()
      Does nothing. Outbound (Alice) must override. We are establishing an outbound connection, so prepare ourselves by queueing up the write of the first part of the handshake
      Specified by:
      prepareOutbound in interface EstablishState
    • isCorrupt

      public boolean isCorrupt()
      did the handshake fail for some reason?
      Specified by:
      isCorrupt in interface EstablishState
    • isComplete

      public boolean isComplete()
      If synchronized on this, fails with deadlocks from all over via CSFI.isEstablished(). Also CSFI.getFramedAveragePeerClockSkew().
      Specified by:
      isComplete in interface EstablishState
      Returns:
      is the handshake complete and valid?
    • getVersion

      public abstract int getVersion()
      Get the NTCP version
      Specified by:
      getVersion in interface EstablishState
      Returns:
      1, 2, or 0 if unknown
      Since:
      0.9.35
    • close

      public void close​(String reason, Exception e)
      Release resources on timeout.
      Specified by:
      close in interface EstablishState
      Parameters:
      e - may be null
      Since:
      0.9.16
    • fail

      protected void fail​(String reason)
      Caller must synch.
    • fail

      protected void fail​(String reason, Exception e)
      Caller must synch.
    • fail

      protected void fail​(String reason, Exception e, boolean bySkew)
      Caller must synch.
    • releaseBufs

      protected void releaseBufs​(boolean isVerified)
      Only call once. Caller must synch.
      Since:
      0.9.16
    • xor32

      protected static void xor32​(byte[] a, byte[] b)
      XOR a into b. Modifies b. a is unmodified.
      Parameters:
      a - 32 bytes
      b - 32 bytes
      Since:
      0.9.12
    • prefix

      protected String prefix()
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • _x

      protected static final String _x​(String s)
      Mark a string for extraction by xgettext and translation. Use this only in static initializers. It does not translate!
      Returns:
      s