private Socket createSocket(ConnectivitySettings cs, InetSocketAddress address, int timeout) throws IOException { switch (cs.getConnectionType()) { case ConnectivitySettings.CONNECTION_VIA_SOCKS: case ConnectivitySettings.CONNECTION_DIRECT: Socket s = new Socket(); s.connect(address, timeout); return s; case ConnectivitySettings.CONNECTION_VIA_HTTPS: return getHttpsTunnelSocket(address, cs, timeout); default: throw new IllegalArgumentException("Illegal connection type: " + cs.getConnectionType()); } }