Class DynamicAddressConnectHandler

  • All Implemented Interfaces:
    io.netty.channel.ChannelHandler, io.netty.channel.ChannelOutboundHandler

    public abstract class DynamicAddressConnectHandler
    extends io.netty.channel.ChannelOutboundHandlerAdapter
    ChannelOutboundHandler implementation which allows to dynamically replace the used remoteAddress and / or localAddress when making a connection attempt.

    This can be useful to for example bind to a specific NetworkInterface based on the remoteAddress.

    • Nested Class Summary

      • Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler

        io.netty.channel.ChannelHandler.Sharable
    • Constructor Detail

      • DynamicAddressConnectHandler

        public DynamicAddressConnectHandler()
    • Method Detail

      • connect

        public final void connect​(io.netty.channel.ChannelHandlerContext ctx,
                                  SocketAddress remoteAddress,
                                  SocketAddress localAddress,
                                  io.netty.channel.ChannelPromise promise)
        Specified by:
        connect in interface io.netty.channel.ChannelOutboundHandler
        Overrides:
        connect in class io.netty.channel.ChannelOutboundHandlerAdapter
      • localAddress

        protected SocketAddress localAddress​(SocketAddress remoteAddress,
                                             SocketAddress localAddress)
                                      throws Exception
        Returns the local SocketAddress to use for ChannelOutboundInvoker.connect(SocketAddress, SocketAddress) based on the original remoteAddress and localAddress. By default, this method returns the given localAddress.
        Throws:
        Exception
      • remoteAddress

        protected SocketAddress remoteAddress​(SocketAddress remoteAddress,
                                              SocketAddress localAddress)
                                       throws Exception
        Returns the remote SocketAddress to use for ChannelOutboundInvoker.connect(SocketAddress, SocketAddress) based on the original remoteAddress and localAddress. By default, this method returns the given remoteAddress.
        Throws:
        Exception