private void parseDstAddr(HAProxyMessage hapm, Channel channel) {
        String destinationAddress = hapm.destinationAddress();
        if (destinationAddress != null) {
            channel.attr(SourceAddressChannelHandler.ATTR_LOCAL_ADDRESS).set(destinationAddress);

            SocketAddress dstAddr;
            switch (hapm.proxiedProtocol()) {
                case UNKNOWN:
                    throw new IllegalArgumentException("unknown proxy protocol" + destinationAddress);
                case TCP4:
                case TCP6:
                    InetSocketAddress inetAddr =
                            new InetSocketAddress(InetAddresses.forString(destinationAddress), hapm.destinationPort());
                    dstAddr = inetAddr;
                    // set ppv2 attr explicitly because ATTR_LOCAL_ADDR could be non ppv2
                    channel.attr(SourceAddressChannelHandler.ATTR_PROXY_PROTOCOL_DESTINATION_ADDRESS)
                            .set(inetAddr);
                    Attrs attrs = channel.attr(Server.CONN_DIMENSIONS).get();
                    if (inetAddr.getAddress() instanceof Inet4Address) {
                        HAPM_DEST_IP_VERSION.put(attrs, "v4");
                    } else if (inetAddr.getAddress() instanceof Inet6Address) {
                        HAPM_DEST_IP_VERSION.put(attrs, "v6");
                    } else {
                        HAPM_DEST_IP_VERSION.put(attrs, "unknown");
                    }
                    HAPM_DEST_PORT.put(attrs, hapm.destinationPort());
                    break;
                case UNIX_STREAM: // TODO: implement
                case UDP4:
                case UDP6:
                case UNIX_DGRAM:
                    throw new IllegalArgumentException("unknown proxy protocol" + destinationAddress);
                default:
                    throw new AssertionError(hapm.proxiedProtocol());
            }
            channel.attr(SourceAddressChannelHandler.ATTR_LOCAL_ADDR).set(dstAddr);
        }
    }
Copies any decoded HAProxyMessage into the channel attributes, and doesn't pass it any further along the pipeline.
Use in conjunction with HAProxyMessageDecoder if proxy protocol is enabled on the ELB.
zuul-core/src/main/java/com/netflix/netty/common/proxyprotocol/HAProxyMessageChannelHandler.java