Class AddressData
java.lang.Object
org.apache.sshd.contrib.server.session.proxyprotocolv2.data.AddressData
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 -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivate
AddressData
(String srcAddress, String dstAddress, int srcPort, int dstPort) -
Method Summary
Modifier and TypeMethodDescriptionstatic 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) private static String
extractAddresses
(org.apache.sshd.common.util.buffer.Buffer buffer, FamilyAndTransport familyAndTransport) private static int
extractPort
(org.apache.sshd.common.util.buffer.Buffer buffer, FamilyAndTransport familyAndTransport) 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) toString()
-
Field Details
-
srcAddress
-
dstAddress
-
srcPort
private final int srcPort -
dstPort
private final int dstPort
-
-
Constructor Details
-
AddressData
-
-
Method Details
-
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 IOException - Throws:
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 String extractAddresses(org.apache.sshd.common.util.buffer.Buffer buffer, FamilyAndTransport familyAndTransport) throws IOException - Throws:
IOException
-
extractPort
private static int extractPort(org.apache.sshd.common.util.buffer.Buffer buffer, FamilyAndTransport familyAndTransport) -
toString
-