Example usage for io.netty.handler.codec.socks SocksCmdType CONNECT

List of usage examples for io.netty.handler.codec.socks SocksCmdType CONNECT

Introduction

In this page you can find the example usage for io.netty.handler.codec.socks SocksCmdType CONNECT.

Prototype

SocksCmdType CONNECT

To view the source code for io.netty.handler.codec.socks SocksCmdType CONNECT.

Click Source Link

Usage

From source file:cc.agentx.client.net.nio.Socks5Handler.java

License:Apache License

@Override
public void channelRead0(ChannelHandlerContext ctx, SocksRequest request) throws Exception {
    switch (request.protocolVersion()) {
    case SOCKS4a:
        log.warn("\tBad Handshake! (protocol version not supported: 4)");
        ctx.write(new SocksInitResponse(SocksAuthScheme.UNKNOWN));
        if (ctx.channel().isActive()) {
            ctx.writeAndFlush(Unpooled.EMPTY_BUFFER).addListener(ChannelFutureListener.CLOSE);
        }//from   w  ww.j av a 2  s .  com
        break;
    case SOCKS5:
        switch (request.requestType()) {
        case INIT:
            ctx.pipeline().addFirst(new SocksCmdRequestDecoder());
            ctx.write(new SocksInitResponse(SocksAuthScheme.NO_AUTH));
            break;
        case AUTH:
            ctx.pipeline().addFirst(new SocksCmdRequestDecoder());
            ctx.write(new SocksAuthResponse(SocksAuthStatus.SUCCESS));
            break;
        case CMD:
            if (((SocksCmdRequest) request).cmdType() == SocksCmdType.CONNECT) {
                ctx.pipeline().addLast(new XConnectHandler());
                ctx.pipeline().remove(this);
                ctx.fireChannelRead(request);
            } else {
                ctx.close();
                log.warn("\tBad Handshake! (command not support: {})", ((SocksCmdRequest) request).cmdType());
            }
            break;
        case UNKNOWN:
            log.warn("\tBad Handshake! (unknown request type)");
        }
        break;
    case UNKNOWN:
        log.warn("\tBad Handshake! (protocol version not support: {}", request.protocolVersion());
        ctx.close();
        break;
    }
}

From source file:cn.david.socks.SocksServerHandler.java

License:Apache License

@Override
public void channelRead0(ChannelHandlerContext ctx, SocksRequest socksRequest) throws Exception {
    switch (socksRequest.requestType()) {
    case INIT: {//from  w  ww. j a  v  a2 s  .  c om
        // auth support example
        //ctx.pipeline().addFirst(new SocksAuthRequestDecoder());
        //ctx.write(new SocksInitResponse(SocksAuthScheme.AUTH_PASSWORD));
        ctx.pipeline().addFirst(new SocksCmdRequestDecoder());
        ctx.write(new SocksInitResponse(SocksAuthScheme.NO_AUTH));
        break;
    }
    case AUTH:
        ctx.pipeline().addFirst(new SocksCmdRequestDecoder());
        ctx.write(new SocksAuthResponse(SocksAuthStatus.SUCCESS));
        break;
    case CMD:
        SocksCmdRequest req = (SocksCmdRequest) socksRequest;
        if (req.cmdType() == SocksCmdType.CONNECT) {
            ctx.pipeline().addLast(new SocksServerConnectHandler());
            ctx.pipeline().remove(this);
            ctx.fireChannelRead(socksRequest);
        } else {
            ctx.close();
        }
        break;
    case UNKNOWN:
        ctx.close();
        break;
    }
}

From source file:com.github.sinsinpub.pero.frontend.SocksServerHandler.java

License:Apache License

@Override
public void channelRead0(ChannelHandlerContext ctx, SocksRequest socksRequest) throws Exception {
    switch (socksRequest.requestType()) {
    case INIT: {//from  w w w . ja  v  a  2  s.co  m
        ctx.pipeline().addFirst(new SocksCmdRequestDecoder());
        ctx.write(new SocksInitResponse(SocksAuthScheme.NO_AUTH));
        break;
    }
    case AUTH:
        ctx.pipeline().addFirst(new SocksCmdRequestDecoder());
        ctx.write(new SocksAuthResponse(SocksAuthStatus.SUCCESS));
        break;
    case CMD:
        SocksCmdRequest req = (SocksCmdRequest) socksRequest;
        if (req.cmdType() == SocksCmdType.CONNECT) {
            ctx.pipeline().addLast(oioExecutorGroup, getConnectBackendHandler());
            ctx.pipeline().remove(this);
            ctx.fireChannelRead(socksRequest);
        } else {
            ctx.close();
        }
        break;
    case UNKNOWN:
        ctx.close();
        break;
    }
}

From source file:com.gxkj.demo.netty.socksproxy.SocksServerHandler.java

License:Apache License

@Override
public void messageReceived(ChannelHandlerContext ctx, SocksRequest socksRequest) throws Exception {
    switch (socksRequest.requestType()) {
    case INIT: {/*from w  ww  .  java 2 s.  c om*/
        //                auth support example
        //                ctx.pipeline().addFirst("socksAuthRequestDecoder",new SocksAuthRequestDecoder());
        //                ctx.write(new SocksInitResponse(SocksMessage.SocksAuthScheme.AUTH_PASSWORD));
        ctx.pipeline().addFirst(SocksCmdRequestDecoder.getName(), new SocksCmdRequestDecoder());
        ctx.write(new SocksInitResponse(SocksAuthScheme.NO_AUTH));
        break;
    }
    case AUTH:
        ctx.pipeline().addFirst(SocksCmdRequestDecoder.getName(), new SocksCmdRequestDecoder());
        ctx.write(new SocksAuthResponse(SocksAuthStatus.SUCCESS));
        break;
    case CMD:
        SocksCmdRequest req = (SocksCmdRequest) socksRequest;
        if (req.cmdType() == SocksCmdType.CONNECT) {
            ctx.pipeline().addLast(SocksServerConnectHandler.getName(), new SocksServerConnectHandler());
            ctx.pipeline().remove(this);
            ctx.fireChannelRead(socksRequest);
        } else {
            ctx.close();
        }
        break;
    case UNKNOWN:
        ctx.close();
        break;
    }
}

From source file:com.xx_dev.apn.socks.remote.SocksServerHandler.java

License:Apache License

@Override
public void channelRead0(ChannelHandlerContext ctx, SocksRequest socksRequest) throws Exception {
    switch (socksRequest.requestType()) {
    case INIT: {/* w w w .j  a  v  a 2s . c  o m*/
        // auth support example
        //ctx.pipeline().addFirst(new SocksAuthRequestDecoder());
        //ctx.write(new SocksInitResponse(SocksAuthScheme.AUTH_PASSWORD));
        ctx.pipeline().addAfter("log", "cmdRequstDecoder", new SocksCmdRequestDecoder());
        ctx.write(new SocksInitResponse(SocksAuthScheme.NO_AUTH));
        break;
    }
    case AUTH:
        ctx.pipeline().addAfter("log", "cmdRequstDecoder", new SocksCmdRequestDecoder());
        ctx.write(new SocksAuthResponse(SocksAuthStatus.SUCCESS));
        break;
    case CMD:
        SocksCmdRequest req = (SocksCmdRequest) socksRequest;
        if (req.cmdType() == SocksCmdType.CONNECT) {
            ctx.pipeline().addLast(new SocksServerConnectHandler());
            ctx.pipeline().remove(this);
            ctx.fireChannelRead(socksRequest);
        } else {
            ctx.close();
        }
        break;
    case UNKNOWN:
        ctx.close();
        break;
    }
}

From source file:com.xx_dev.apn.socks.test.SocksClientHandler.java

License:Apache License

@Override
protected void channelRead0(ChannelHandlerContext ctx, SocksResponse socksResponse) throws Exception {
    switch (socksResponse.responseType()) {
    case INIT: {//from  w  w  w.j  a  v a  2 s.co m
        ctx.pipeline().addAfter("log", "cmdResponseDecoder", new SocksCmdResponseDecoder());
        ctx.write(new SocksCmdRequest(SocksCmdType.CONNECT, SocksAddressType.DOMAIN, "www.baidu.com", 80));
        break;
    }
    case AUTH:
        ctx.pipeline().addAfter("log", "cmdResponseDecoder", new SocksCmdResponseDecoder());
        ctx.write(new SocksCmdRequest(SocksCmdType.CONNECT, SocksAddressType.DOMAIN, "www.baidu.com", 80));
        break;
    case CMD:
        SocksCmdResponse res = (SocksCmdResponse) socksResponse;
        if (res.cmdStatus() == SocksCmdStatus.SUCCESS) {
            ctx.pipeline().addLast(new SocksClientConnectHandler());
            ctx.pipeline().remove(this);
            //ctx.fireChannelRead(socksResponse);

            String s = "GET / HTTP/1.1\r\nHOST: www.baidu.com\r\n\r\n";

            ctx.writeAndFlush(Unpooled.copiedBuffer(s, CharsetUtil.UTF_8));
        } else {
            ctx.close();
        }
        break;
    case UNKNOWN:
        ctx.close();
        break;
    }
}

From source file:org.msgpack.rpc.extension.socks.SocksProxyHandler.java

License:Open Source License

@Override
protected void channelRead0(ChannelHandlerContext ctx, SocksResponse response) throws Exception {

    SocksResponseType rt = response.responseType();

    switch (rt) {

    case INIT://w  ww  .java2  s .c  o  m
        ctx.pipeline().addFirst("socks-cmd-decoder", new SocksCmdResponseDecoder());
        InetSocketAddress addr = ((IPAddress) session.getAddress()).getInetSocketAddress();
        SocksCmdRequest cmdSocks = new SocksCmdRequest(SocksCmdType.CONNECT, SocksAddressType.DOMAIN,
                addr.getHostName(), addr.getPort());
        ctx.writeAndFlush(cmdSocks);
        break;

    case AUTH:
        break;
    case CMD:
        SocksCmdResponse scr = (SocksCmdResponse) response;
        ctx.pipeline().remove(this);
        ctx.pipeline().remove("socks-encode");
        if (scr.cmdStatus() != SocksCmdStatus.SUCCESS) {
            throw new ChannelException("Socks faild.");
        }
        clientTransport.onSocksConnected(ctx.channel());
        break;
    case UNKNOWN:
    default:
        throw new ChannelException("No support Socks Command.");
    }
}

From source file:org.wyb.sows.client.SocksServerHandler.java

License:Apache License

@Override
public void channelRead0(ChannelHandlerContext ctx, SocksRequest socksRequest) throws Exception {
    switch (socksRequest.requestType()) {
    case INIT: {/*w ww . j a v a2  s .  c  o m*/
        // auth support example
        //ctx.pipeline().addFirst(new SocksAuthRequestDecoder());
        //ctx.write(new SocksInitResponse(SocksAuthScheme.AUTH_PASSWORD));
        ctx.pipeline().addFirst(new SocksCmdRequestDecoder());
        ctx.write(new SocksInitResponse(SocksAuthScheme.NO_AUTH));
        break;
    }
    case AUTH:
        ctx.pipeline().addFirst(new SocksCmdRequestDecoder());
        ctx.write(new SocksAuthResponse(SocksAuthStatus.SUCCESS));
        break;
    case CMD:
        SocksCmdRequest req = (SocksCmdRequest) socksRequest;
        if (req.cmdType() == SocksCmdType.CONNECT) {
            ctx.pipeline().addLast(new SocksServerConnectHandler(bridgeServiceUri, userName, passcode));
            ctx.pipeline().remove(this);
            ctx.fireChannelRead(socksRequest);
        } else {
            ctx.close();
        }
        break;
    case UNKNOWN:
        ctx.close();
        break;
    }
}

From source file:pers.zlf.sslocal.handler.socks.SocksServerHandler.java

License:Apache License

@Override
public void channelRead0(ChannelHandlerContext ctx, SocksRequest socksRequest) throws Exception {
    switch (socksRequest.requestType()) {
    case INIT: {//from   w  w  w. jav  a2  s  .  c  om
        ctx.pipeline().addFirst(new SocksCmdRequestDecoder());
        ctx.write(new SocksInitResponse(SocksAuthScheme.NO_AUTH));
        break;
    }
    case AUTH:
        ctx.pipeline().addFirst(new SocksCmdRequestDecoder());
        ctx.write(new SocksAuthResponse(SocksAuthStatus.SUCCESS));
        break;
    case CMD:
        SocksCmdRequest req = (SocksCmdRequest) socksRequest;
        if (req.cmdType() == SocksCmdType.CONNECT) {
            ctx.pipeline().addLast(new ShadowsocksServerConnectHandler());
            ctx.pipeline().remove(this);
            ctx.fireChannelRead(socksRequest);
        } else {
            ctx.close();
        }
        break;
    case UNKNOWN:
        ctx.close();
        break;
    }
}