Class PortMapper

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

    public class PortMapper
    extends io.netty.channel.SimpleChannelInboundHandler<InetAddressedMessage<io.netty.buffer.ByteBuf>>
    This handler tries to create a port forwarding for the UDP server using different methods (PCP, NAT-PMP, UPnP-IGD, etc.). For this purpose, the individual methods are tried one after one. If all methods fail, the program waits for RETRY_DELAY and then tries all methods again. It never gives up.
    • Nested Class Summary

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

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

      Constructors 
      Constructor Description
      PortMapper()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean acceptInboundMessage​(Object msg)  
      void channelInactive​(io.netty.channel.ChannelHandlerContext ctx)  
      protected void channelRead0​(io.netty.channel.ChannelHandlerContext ctx, InetAddressedMessage<io.netty.buffer.ByteBuf> msg)  
      void userEventTriggered​(io.netty.channel.ChannelHandlerContext ctx, Object evt)  
      • Methods inherited from class io.netty.channel.SimpleChannelInboundHandler

        channelRead
      • Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter

        channelActive, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged, exceptionCaught
      • Methods inherited from class io.netty.channel.ChannelHandlerAdapter

        ensureNotSharable, handlerAdded, handlerRemoved, isSharable
      • Methods inherited from interface io.netty.channel.ChannelHandler

        handlerAdded, handlerRemoved
    • Field Detail

      • MAPPING_LIFETIME

        public static final Duration MAPPING_LIFETIME
      • RETRY_DELAY

        public static final Duration RETRY_DELAY
    • Constructor Detail

      • PortMapper

        public PortMapper()
    • Method Detail

      • acceptInboundMessage

        public boolean acceptInboundMessage​(Object msg)
        Overrides:
        acceptInboundMessage in class io.netty.channel.SimpleChannelInboundHandler<InetAddressedMessage<io.netty.buffer.ByteBuf>>
      • channelRead0

        protected void channelRead0​(io.netty.channel.ChannelHandlerContext ctx,
                                    InetAddressedMessage<io.netty.buffer.ByteBuf> msg)
        Specified by:
        channelRead0 in class io.netty.channel.SimpleChannelInboundHandler<InetAddressedMessage<io.netty.buffer.ByteBuf>>
      • channelInactive

        public void channelInactive​(io.netty.channel.ChannelHandlerContext ctx)
        Specified by:
        channelInactive in interface io.netty.channel.ChannelInboundHandler
        Overrides:
        channelInactive in class io.netty.channel.ChannelInboundHandlerAdapter
      • userEventTriggered

        public void userEventTriggered​(io.netty.channel.ChannelHandlerContext ctx,
                                       Object evt)
        Specified by:
        userEventTriggered in interface io.netty.channel.ChannelInboundHandler
        Overrides:
        userEventTriggered in class io.netty.channel.ChannelInboundHandlerAdapter