Class AddressData


  • public final class AddressData
    extends java.lang.Object
    Address data structure.

    Starting from the 17th byte, addresses are presented in network byte order.

    The address order is always the same : - source layer 3 address in network byte order - destination layer 3 address in network byte order - source layer 4 address if any, in network byte order (port) - destination layer 4 address if any, in network byte order (port)

    The address block may directly be sent from or received into the following union which makes it easy to cast from/to the relevant socket native structs depending on the address type :

         union proxy_addr {
             struct {        // for TCP/UDP over IPv4, len = 12
                 uint32_t src_addr;
                 uint32_t dst_addr;
                 uint16_t src_port;
                 uint16_t dst_port;
             }ipv4_addr;
             struct{        // for TCP/UDP over IPv6, len = 36
                 uint8_t src_addr[16];
                 uint8_t dst_addr[16];
                 uint16_t src_port;
                 uint16_t dst_port;
             }ipv6_addr;
             struct{        // for AF_UNIX sockets, len = 216
                 uint8_t src_addr[108];
                 uint8_t dst_addr[108];
             }unix_addr;
         };
     
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.String dstAddress  
      private int dstPort  
      private java.lang.String srcAddress  
      private int srcPort  
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private AddressData​(java.lang.String srcAddress, java.lang.String dstAddress, int srcPort, int dstPort)  
    • Field Detail

      • srcAddress

        private final java.lang.String srcAddress
      • dstAddress

        private final java.lang.String dstAddress
      • srcPort

        private final int srcPort
      • dstPort

        private final int dstPort
    • Constructor Detail

      • AddressData

        private AddressData​(java.lang.String srcAddress,
                            java.lang.String dstAddress,
                            int srcPort,
                            int dstPort)
    • Method Detail

      • extractAddressData

        public static AddressData extractAddressData​(org.slf4j.Logger logger,
                                                     org.apache.sshd.server.session.ServerSession session,
                                                     org.apache.sshd.common.util.buffer.Buffer buffer,
                                                     FamilyAndTransport familyAndTransport,
                                                     int dataLength)
                                              throws java.io.IOException
        Throws:
        java.io.IOException
      • skipUnprocessedData

        public static void skipUnprocessedData​(org.slf4j.Logger logger,
                                               org.apache.sshd.server.session.ServerSession session,
                                               org.apache.sshd.common.util.buffer.Buffer buffer,
                                               FamilyAndTransport familyAndTransport,
                                               int dataLength)
      • extractAddresses

        private static java.lang.String extractAddresses​(org.apache.sshd.common.util.buffer.Buffer buffer,
                                                         FamilyAndTransport familyAndTransport)
                                                  throws java.io.IOException
        Throws:
        java.io.IOException
      • extractPort

        private static int extractPort​(org.apache.sshd.common.util.buffer.Buffer buffer,
                                       FamilyAndTransport familyAndTransport)
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object