use of io.netty.handler.codec.haproxy.HAProxyMessage in project thingsboard by thingsboard.
the class ProxyIpFilter method channelRead.
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
log.trace("[{}] Received msg: {}", ctx.channel().id(), msg);
if (msg instanceof HAProxyMessage) {
HAProxyMessage proxyMsg = (HAProxyMessage) msg;
if (proxyMsg.sourceAddress() != null && proxyMsg.sourcePort() > 0) {
InetSocketAddress address = new InetSocketAddress(proxyMsg.sourceAddress(), proxyMsg.sourcePort());
if (!context.checkAddress(address)) {
closeChannel(ctx);
} else {
log.trace("[{}] Setting address: {}", ctx.channel().id(), address);
ctx.channel().attr(MqttTransportService.ADDRESS).set(address);
// We no longer need this channel in the pipeline. Similar to HAProxyMessageDecoder
ctx.pipeline().remove(this);
}
} else {
log.trace("Received local health-check connection message: {}", proxyMsg);
closeChannel(ctx);
}
}
}
Aggregations