HaProxyMessageEncoderTest Class — netty Architecture
Architecture documentation for the HaProxyMessageEncoderTest class in HaProxyMessageEncoderTest.java from the netty codebase.
Entity Profile
Dependency Diagram
graph TD 4545ac9d_2f62_4ac7_c80f_5975d8175456["HaProxyMessageEncoderTest"] dae55d16_8185_8f55_227e_85fb8d3d81c0["HaProxyMessageEncoderTest.java"] 4545ac9d_2f62_4ac7_c80f_5975d8175456 -->|defined in| dae55d16_8185_8f55_227e_85fb8d3d81c0 a3e4db28_ab9b_f212_c8f5_0e72cea7508e["testIPV4EncodeProxyV1()"] 4545ac9d_2f62_4ac7_c80f_5975d8175456 -->|method| a3e4db28_ab9b_f212_c8f5_0e72cea7508e 13bc4305_c4d7_2243_f49e_7ca6ff1a7ff0["testIPV6EncodeProxyV1()"] 4545ac9d_2f62_4ac7_c80f_5975d8175456 -->|method| 13bc4305_c4d7_2243_f49e_7ca6ff1a7ff0 40ef78a4_8b40_35ed_98ca_e66f35f264ee["testIPv4EncodeProxyV2()"] 4545ac9d_2f62_4ac7_c80f_5975d8175456 -->|method| 40ef78a4_8b40_35ed_98ca_e66f35f264ee 9e250540_5a69_8689_2859_e76cdc085f89["testIPv6EncodeProxyV2()"] 4545ac9d_2f62_4ac7_c80f_5975d8175456 -->|method| 9e250540_5a69_8689_2859_e76cdc085f89 41c4d3cb_79a0_34c3_0619_12844744d663["testUnixEncodeProxyV2()"] 4545ac9d_2f62_4ac7_c80f_5975d8175456 -->|method| 41c4d3cb_79a0_34c3_0619_12844744d663 09712c06_4bf8_0520_4bbd_891fba66c7c4["testTLVEncodeProxy()"] 4545ac9d_2f62_4ac7_c80f_5975d8175456 -->|method| 09712c06_4bf8_0520_4bbd_891fba66c7c4 d088e373_9657_80e7_340b_9eab3347e15a["testSslTLVEncodeProxy()"] 4545ac9d_2f62_4ac7_c80f_5975d8175456 -->|method| d088e373_9657_80e7_340b_9eab3347e15a ed29d1ab_c11b_57b9_021c_7333f4f6f145["testEncodeLocalProxyV2()"] 4545ac9d_2f62_4ac7_c80f_5975d8175456 -->|method| ed29d1ab_c11b_57b9_021c_7333f4f6f145 3389089c_7f2c_ea58_0a35_dcbda02e248f["testInvalidIpV4Address()"] 4545ac9d_2f62_4ac7_c80f_5975d8175456 -->|method| 3389089c_7f2c_ea58_0a35_dcbda02e248f db4686db_bb40_4d5c_1cc7_3a68ace86c73["testInvalidIpV6Address()"] 4545ac9d_2f62_4ac7_c80f_5975d8175456 -->|method| db4686db_bb40_4d5c_1cc7_3a68ace86c73 bebacdc6_0f53_7b99_feed_2f0639a4d731["testInvalidUnixAddress()"] 4545ac9d_2f62_4ac7_c80f_5975d8175456 -->|method| bebacdc6_0f53_7b99_feed_2f0639a4d731 d2ace9a9_a175_2788_4c29_e5c9da2ceb97["testNullUnixAddress()"] 4545ac9d_2f62_4ac7_c80f_5975d8175456 -->|method| d2ace9a9_a175_2788_4c29_e5c9da2ceb97 27ee0d7c_c098_fe80_dfba_a5f29eb2f3c1["testLongUnixAddress()"] 4545ac9d_2f62_4ac7_c80f_5975d8175456 -->|method| 27ee0d7c_c098_fe80_dfba_a5f29eb2f3c1
Relationship Graph
Source Code
codec-haproxy/src/test/java/io/netty/handler/codec/haproxy/HaProxyMessageEncoderTest.java lines 41–439
public class HaProxyMessageEncoderTest {
private static final int V2_HEADER_BYTES_LENGTH = 16;
private static final int IPv4_ADDRESS_BYTES_LENGTH = 12;
private static final int IPv6_ADDRESS_BYTES_LENGTH = 36;
@Test
public void testIPV4EncodeProxyV1() {
EmbeddedChannel ch = new EmbeddedChannel(INSTANCE);
HAProxyMessage message = new HAProxyMessage(
HAProxyProtocolVersion.V1, HAProxyCommand.PROXY, HAProxyProxiedProtocol.TCP4,
"192.168.0.1", "192.168.0.11", 56324, 443);
assertTrue(ch.writeOutbound(message));
ByteBuf byteBuf = ch.readOutbound();
assertEquals("PROXY TCP4 192.168.0.1 192.168.0.11 56324 443\r\n",
byteBuf.toString(CharsetUtil.US_ASCII));
byteBuf.release();
assertFalse(ch.finish());
}
@Test
public void testIPV6EncodeProxyV1() {
EmbeddedChannel ch = new EmbeddedChannel(INSTANCE);
HAProxyMessage message = new HAProxyMessage(
HAProxyProtocolVersion.V1, HAProxyCommand.PROXY, HAProxyProxiedProtocol.TCP6,
"2001:0db8:85a3:0000:0000:8a2e:0370:7334", "1050:0:0:0:5:600:300c:326b", 56324, 443);
assertTrue(ch.writeOutbound(message));
ByteBuf byteBuf = ch.readOutbound();
assertEquals("PROXY TCP6 2001:0db8:85a3:0000:0000:8a2e:0370:7334 1050:0:0:0:5:600:300c:326b 56324 443\r\n",
byteBuf.toString(CharsetUtil.US_ASCII));
byteBuf.release();
assertFalse(ch.finish());
}
@Test
public void testIPv4EncodeProxyV2() {
EmbeddedChannel ch = new EmbeddedChannel(INSTANCE);
HAProxyMessage message = new HAProxyMessage(
HAProxyProtocolVersion.V2, HAProxyCommand.PROXY, HAProxyProxiedProtocol.TCP4,
"192.168.0.1", "192.168.0.11", 56324, 443);
assertTrue(ch.writeOutbound(message));
ByteBuf byteBuf = ch.readOutbound();
// header
byte[] headerBytes = ByteBufUtil.getBytes(byteBuf, 0, 12);
assertArrayEquals(BINARY_PREFIX, headerBytes);
// command
byte commandByte = byteBuf.getByte(12);
assertEquals(0x02, (commandByte & 0xf0) >> 4);
assertEquals(0x01, commandByte & 0x0f);
// transport protocol, address family
byte transportByte = byteBuf.getByte(13);
assertEquals(0x01, (transportByte & 0xf0) >> 4);
assertEquals(0x01, transportByte & 0x0f);
// source address length
int sourceAddrLength = byteBuf.getUnsignedShort(14);
assertEquals(12, sourceAddrLength);
// source address
byte[] sourceAddr = ByteBufUtil.getBytes(byteBuf, 16, 4);
assertArrayEquals(new byte[] { (byte) 0xc0, (byte) 0xa8, 0x00, 0x01 }, sourceAddr);
// destination address
byte[] destAddr = ByteBufUtil.getBytes(byteBuf, 20, 4);
assertArrayEquals(new byte[] { (byte) 0xc0, (byte) 0xa8, 0x00, 0x0b }, destAddr);
// source port
int sourcePort = byteBuf.getUnsignedShort(24);
Defined In
Source
Frequently Asked Questions
What is the HaProxyMessageEncoderTest class?
HaProxyMessageEncoderTest is a class in the netty codebase, defined in codec-haproxy/src/test/java/io/netty/handler/codec/haproxy/HaProxyMessageEncoderTest.java.
Where is HaProxyMessageEncoderTest defined?
HaProxyMessageEncoderTest is defined in codec-haproxy/src/test/java/io/netty/handler/codec/haproxy/HaProxyMessageEncoderTest.java at line 41.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free