private void enableSocks4(ChannelHandlerContext ctx, ByteBuf msg) { enableSocks(ctx, msg, new Socks4ProxyHandler(server, mockServerLogger), Socks4ServerEncoder.INSTANCE, new Socks4ServerDecoder()); }
@Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception { final int readerIndex = in.readerIndex(); if (in.writerIndex() == readerIndex) { return; } ChannelPipeline p = ctx.pipeline(); final byte versionVal = in.getByte(readerIndex); SocksVersion version = SocksVersion.valueOf(versionVal); switch (version) { case SOCKS4a: logKnownVersion(ctx, version); p.addAfter(ctx.name(), null, Socks4ServerEncoder.INSTANCE); p.addAfter(ctx.name(), null, new Socks4ServerDecoder()); break; case SOCKS5: logKnownVersion(ctx, version); p.addAfter(ctx.name(), null, socks5encoder); p.addAfter(ctx.name(), null, new Socks5InitialRequestDecoder()); break; default: logUnknownVersion(ctx, versionVal); in.skipBytes(in.readableBytes()); ctx.close(); return; } p.remove(this); }
private void enableSocks4(ChannelHandlerContext ctx, ByteBuf msg) { enableSocks(ctx, msg, new Socks4ProxyHandler(server, mockServerLogger), Socks4ServerEncoder.INSTANCE, new Socks4ServerDecoder()); }
@Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception { final int readerIndex = in.readerIndex(); if (in.writerIndex() == readerIndex) { return; } ChannelPipeline p = ctx.pipeline(); final byte versionVal = in.getByte(readerIndex); SocksVersion version = SocksVersion.valueOf(versionVal); switch (version) { case SOCKS4a: logKnownVersion(ctx, version); p.addAfter(ctx.name(), null, Socks4ServerEncoder.INSTANCE); p.addAfter(ctx.name(), null, new Socks4ServerDecoder()); break; case SOCKS5: logKnownVersion(ctx, version); p.addAfter(ctx.name(), null, socks5encoder); p.addAfter(ctx.name(), null, new Socks5InitialRequestDecoder()); break; default: logUnknownVersion(ctx, versionVal); in.skipBytes(in.readableBytes()); ctx.close(); return; } p.remove(this); }
@Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception { final int readerIndex = in.readerIndex(); if (in.writerIndex() == readerIndex) { return; } ChannelPipeline p = ctx.pipeline(); final byte versionVal = in.getByte(readerIndex); SocksVersion version = SocksVersion.valueOf(versionVal); switch (version) { case SOCKS4a: logKnownVersion(ctx, version); p.addAfter(ctx.name(), null, Socks4ServerEncoder.INSTANCE); p.addAfter(ctx.name(), null, new Socks4ServerDecoder()); break; case SOCKS5: logKnownVersion(ctx, version); p.addAfter(ctx.name(), null, socks5encoder); p.addAfter(ctx.name(), null, new Socks5InitialRequestDecoder()); break; default: logUnknownVersion(ctx, versionVal); in.skipBytes(in.readableBytes()); ctx.close(); return; } p.remove(this); }