- Add the Codota plugin to your IDE and get smart completions
private void myMethod () {}
/** * Closes all sessions. */ protected void closeAllSession() { for (long key : sessions.keySet()) { sessions.get(key).close(); } }
/** * Closes all sessions. */ protected void closeAllSession() { for (long key : sessions.keySet()) { sessions.get(key).close(); } }
@Override public void doMethod(Session session) throws SocksException, IOException { checkNotNull(session, "Argument [session] may not be null"); session.close(); // close session throw SocksException.noAcceptableMethods(); }
@Override public void doMethod(Session session) throws SocksException, IOException { checkNotNull(session, "Argument [session] may not be null"); session.close(); // close session throw SocksException.noAcceptableMethods(); }
@Override public void run() { try { handle(session); } catch (Exception e) { sessionManager.sessionOnException(session, e); // logger.error("SESSION[{}]: {}", session.getId(), e.getMessage()); } finally { session.close(); sessionManager.sessionOnClose(session); // logger.info("SESSION[{}] closed, {}", session.getId(), session.getNetworkMonitor().toString // ()); } }
@Override public void run() { try { handle(session); } catch (Exception e) { sessionManager.sessionOnException(session, e); // logger.error("SESSION[{}]: {}", session.getId(), e.getMessage()); } finally { session.close(); sessionManager.sessionOnClose(session); // logger.info("SESSION[{}] closed, {}", session.getId(), session.getNetworkMonitor().toString // ()); } }
@Override public void doBind(Session session, CommandMessage commandMessage) throws SocksException, IOException { ServerSocket serverSocket = new ServerSocket(commandMessage.getPort()); int bindPort = serverSocket.getLocalPort(); Socket socket = null; logger.info("Create TCP server bind at {} for session[{}]", serverSocket .getLocalSocketAddress(), session.getId()); session.write(new CommandResponseMessage(VERSION, ServerReply.SUCCEEDED, serverSocket .getInetAddress(), bindPort)); socket = serverSocket.accept(); session.write(new CommandResponseMessage(VERSION, ServerReply.SUCCEEDED, socket .getLocalAddress(), socket.getLocalPort())); Pipe pipe = new SocketPipe(session.getSocket(), socket); pipe.setBufferSize(bufferSize); pipe.start(); // wait for pipe exit. while (pipe.isRunning()) { try { Thread.sleep(idleTime); } catch (InterruptedException e) { pipe.stop(); session.close(); logger.info("Session[{}] closed", session.getId()); } } serverSocket.close(); // throw new NotImplementException("Not implement BIND command"); }
@Override public void doBind(Session session, CommandMessage commandMessage) throws SocksException, IOException { ServerSocket serverSocket = new ServerSocket(commandMessage.getPort()); int bindPort = serverSocket.getLocalPort(); Socket socket = null; logger.info("Create TCP server bind at {} for session[{}]", serverSocket .getLocalSocketAddress(), session.getId()); session.write(new CommandResponseMessage(VERSION, ServerReply.SUCCEEDED, serverSocket .getInetAddress(), bindPort)); socket = serverSocket.accept(); session.write(new CommandResponseMessage(VERSION, ServerReply.SUCCEEDED, socket .getLocalAddress(), socket.getLocalPort())); Pipe pipe = new SocketPipe(session.getSocket(), socket); pipe.setBufferSize(bufferSize); pipe.start(); // wait for pipe exit. while (pipe.isRunning()) { try { Thread.sleep(idleTime); } catch (InterruptedException e) { pipe.stop(); session.close(); logger.info("Session[{}] closed", session.getId()); } } serverSocket.close(); // throw new NotImplementException("Not implement BIND command"); }
@Override public void doUDPAssociate(Session session, CommandMessage commandMessage) throws SocksException, IOException { UDPRelayServer udpRelayServer = new UDPRelayServer(((InetSocketAddress) session.getClientAddress()).getAddress(), commandMessage.getPort()); InetSocketAddress socketAddress = (InetSocketAddress) udpRelayServer.start(); logger.info("Create UDP relay server at[{}] for {}", socketAddress, commandMessage .getSocketAddress()); session.write(new CommandResponseMessage(VERSION, ServerReply.SUCCEEDED, InetAddress .getLocalHost(), socketAddress.getPort())); while (udpRelayServer.isRunning()) { try { Thread.sleep(idleTime); } catch (InterruptedException e) { session.close(); logger.info("Session[{}] closed", session.getId()); } if (session.isClose()) { udpRelayServer.stop(); logger.debug("UDP relay server for session[{}] is closed", session.getId()); } } }
@Override public void doUDPAssociate(Session session, CommandMessage commandMessage) throws SocksException, IOException { UDPRelayServer udpRelayServer = new UDPRelayServer(((InetSocketAddress) session.getClientAddress()).getAddress(), commandMessage.getPort()); InetSocketAddress socketAddress = (InetSocketAddress) udpRelayServer.start(); logger.info("Create UDP relay server at[{}] for {}", socketAddress, commandMessage .getSocketAddress()); session.write(new CommandResponseMessage(VERSION, ServerReply.SUCCEEDED, InetAddress .getLocalHost(), socketAddress.getPort())); while (udpRelayServer.isRunning()) { try { Thread.sleep(idleTime); } catch (InterruptedException e) { session.close(); logger.info("Session[{}] closed", session.getId()); } if (session.isClose()) { udpRelayServer.stop(); logger.debug("UDP relay server for session[{}] is closed", session.getId()); } } }