private void enableSocks5(ChannelHandlerContext ctx, ByteBuf msg) { enableSocks(ctx, msg, new Socks5ProxyHandler(server, mockServerLogger), Socks5ServerEncoder.DEFAULT, new Socks5InitialRequestDecoder()); }
@Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception { try { switch (state()) { case INIT: { final byte version = in.readByte(); if (actualReadableBytes() < authMethodCnt) { break; checkpoint(State.SUCCESS); int readableBytes = actualReadableBytes(); if (readableBytes > 0) { out.add(in.readRetainedSlice(readableBytes)); in.skipBytes(actualReadableBytes()); break; fail(out, e);
private void fail(List<Object> out, Exception cause) { if (!(cause instanceof DecoderException)) { cause = new DecoderException(cause); } checkpoint(State.FAILURE); Socks5Message m = new DefaultSocks5InitialRequest(Socks5AuthMethod.NO_AUTH); m.setDecoderResult(DecoderResult.failure(cause)); out.add(m); } }
private void fail(List<Object> out, Exception cause) { if (!(cause instanceof DecoderException)) { cause = new DecoderException(cause); } checkpoint(State.FAILURE); Socks5Message m = new DefaultSocks5InitialRequest(Socks5AuthMethod.NO_AUTH); m.setDecoderResult(DecoderResult.failure(cause)); out.add(m); } }
@Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception { try { switch (state()) { case INIT: { final byte version = in.readByte(); if (actualReadableBytes() < authMethodCnt) { break; checkpoint(State.SUCCESS); int readableBytes = actualReadableBytes(); if (readableBytes > 0) { out.add(in.readRetainedSlice(readableBytes)); in.skipBytes(actualReadableBytes()); break; fail(out, e);
@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 fail(List<Object> out, Exception cause) { if (!(cause instanceof DecoderException)) { cause = new DecoderException(cause); } checkpoint(State.FAILURE); Socks5Message m = new DefaultSocks5InitialRequest(Socks5AuthMethod.NO_AUTH); m.setDecoderResult(DecoderResult.failure(cause)); out.add(m); } }
@Override protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception { try { switch (state()) { case INIT: { final byte version = in.readByte(); if (actualReadableBytes() < authMethodCnt) { break; checkpoint(State.SUCCESS); int readableBytes = actualReadableBytes(); if (readableBytes > 0) { out.add(in.readRetainedSlice(readableBytes)); in.skipBytes(actualReadableBytes()); break; fail(out, e);
private void enableSocks5(ChannelHandlerContext ctx, ByteBuf msg) { enableSocks(ctx, msg, new Socks5ProxyHandler(server, mockServerLogger), Socks5ServerEncoder.DEFAULT, new Socks5InitialRequestDecoder()); }
@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); }