Interface SSU2Payload.PayloadCallback

All Known Implementing Classes:
InboundEstablishState2, OutboundEstablishState2, PeerState2
Enclosing class:
SSU2Payload

public static interface SSU2Payload.PayloadCallback
For all callbacks, recommend throwing exceptions only from the handshake. Exceptions will get thrown out of processPayload() and prevent processing of succeeding blocks.
  • Method Details

    • gotDateTime

      void gotDateTime(long time) throws DataFormatException
      Throws:
      DataFormatException
    • gotI2NP

      void gotI2NP(I2NPMessage msg) throws I2NPMessageException
      Throws:
      I2NPMessageException
    • gotFragment

      void gotFragment(byte[] data, int off, int len, long messageID, int frag, boolean isLast) throws DataFormatException
      Data must be copied out in this method. Data starts at the 9 byte header for fragment 0.
      Parameters:
      off - offset in data
      len - length of data to copy
      Throws:
      DataFormatException
    • gotACK

      void gotACK(long ackThru, int acks, byte[] ranges)
      Parameters:
      ranges - null if none
    • gotOptions

      void gotOptions(byte[] options, boolean isHandshake) throws DataFormatException
      Parameters:
      isHandshake - true only for message 3 part 2
      Throws:
      DataFormatException
    • gotRI

      void gotRI(RouterInfo ri, boolean isHandshake, boolean flood) throws DataFormatException
      Parameters:
      ri - will already be validated
      isHandshake - true only for message 3 part 2
      Throws:
      DataFormatException
    • gotRIFragment

      void gotRIFragment(byte[] data, boolean isHandshake, boolean flood, boolean isGzipped, int frag, int totalFrags)
      Parameters:
      data - is first gzipped and then fragmented
      isHandshake - true only for message 3 part 2
    • gotAddress

      void gotAddress(byte[] ip, int port)
    • gotRelayTagRequest

      void gotRelayTagRequest()
    • gotRelayTag

      void gotRelayTag(long tag)
    • gotRelayRequest

      void gotRelayRequest(byte[] data)
      Parameters:
      data - excludes flag, includes signature
    • gotRelayResponse

      void gotRelayResponse(int status, byte[] data)
      Parameters:
      status - 0 = accept, 1-255 = reject
      data - excludes flag, includes signature
    • gotRelayIntro

      void gotRelayIntro(Hash aliceHash, byte[] data)
      Parameters:
      data - excludes flag, includes signature
    • gotPeerTest

      void gotPeerTest(int msg, int status, Hash h, byte[] data)
      Parameters:
      msg - 1-7
      status - 0 = accept, 1-255 = reject
      h - Alice or Charlie hash for msg 2 and 4, null for msg 1, 3, 5-7
      data - excludes flag, includes signature
    • gotToken

      void gotToken(long token, long expires)
    • gotTermination

      void gotTermination(int reason, long lastReceived)
      Parameters:
      lastReceived - in theory could wrap around to negative, but very unlikely
    • gotPathChallenge

      void gotPathChallenge(RemoteHostId from, byte[] data)
      Parameters:
      from - null if unknown
      Since:
      0.9.55
    • gotPathResponse

      void gotPathResponse(RemoteHostId from, byte[] data)
      Parameters:
      from - null if unknown
      Since:
      0.9.55