ThriftNetworkInterface(InetAddress address, int portNumber) { super(address, portNumber, false); this.thriftService = new SnappyThriftServer(); this.socketParams = isServer() ? new SocketParameters( ServerType.THRIFT_SNAPPY_CP) : new SocketParameters( ServerType.THRIFT_LOCATOR_CP); }
protected static void setTimeout(Socket socket, int timeout, SocketParameters params) throws SocketException { socket.setSoTimeout(timeout != 0 ? timeout : params.getReadTimeout()); ClientSharedUtils.setKeepAliveOptions(socket, null, params.getKeepAliveIdle(), params.getKeepAliveInterval(), params.getKeepAliveCount()); }
public static SSLEngine createEngine(String peerHostName, int peerPort, SocketParameters params, boolean forClient) throws TTransportException { SSLContext ctx = createSSLContext(params); SSLEngine engine = ctx.createSSLEngine(peerHostName, peerPort); if (params != null) { if (params.getSSLEnabledProtocols() != null) { engine.setEnabledProtocols(params.getSSLEnabledProtocols()); } if (params.getSSLCipherSuites() != null) { engine.setEnabledCipherSuites(params.getSSLCipherSuites()); } if (forClient) { engine.setUseClientMode(true); } else { engine.setUseClientMode(false); engine.setNeedClientAuth(params.getSSLClientAuth()); } } return engine; }
/** * Sets the socket properties like timeout, keepalive, buffer sizes. * * @param params Socket parameters like buffer sizes, keep-alive settings */ protected void setProperties(Socket socket, int timeout, SocketParameters params) throws TTransportException, IOException { this.inputBufferSize = params.getInputBufferSize(); this.outputBufferSize = params.getOutputBufferSize(); socket.setSoLinger(false, 0); socket.setTcpNoDelay(true); setTimeout(socket, timeout, params); this.timeout = timeout; }
this.socketParams = new SocketParameters(); for (SocketParameters.Param p : SocketParameters.getAllParamsNoSSL()) { propValue = props.remove(p.getPropertyName()); if (propValue != null) { this.socketParams.setServerType(ServerType.getServerType(true, binaryProtocol, useSSL)); this.framedTransport = framedTransport;
private static SSLSocket createClient(SSLSocketFactory factory, InetAddress hostAddress, int port, int timeout, final SocketParameters params) throws TTransportException { try { SSLSocket socket = (SSLSocket)factory.createSocket(hostAddress, port); socket.setSoTimeout(timeout); if (params != null) { if (params.getSSLEnabledProtocols() != null) { socket.setEnabledProtocols(params.getSSLEnabledProtocols()); } if (params.getSSLCipherSuites() != null) { socket.setEnabledCipherSuites(params.getSSLCipherSuites()); } } return socket; } catch (IOException ioe) { throw new TTransportException(TTransportException.NOT_OPEN, ioe); } catch (Exception e) { throw new TTransportException(TTransportException.NOT_OPEN, "Could not connect to " + hostAddress + " on port " + port, e); } }
.getAllParamsNoSSL()) { propValue = networkProps.getProperty(param.getPropertyName()); if (propValue != null) { useSSL = false; socketParams.setServerType(ServerType.getServerType(isServer, useBinaryProtocol, useSSL));
/** * Creates a new socket that will connect to the given host on the given port. * * @param host Remote HostAddress including port * @param params Socket parameters like buffer sizes, keep-alive settings */ public SnappyTSocket(HostAddress host, String clientId, boolean useSSL, boolean blocking, boolean framedWrites, SocketParameters params) throws TTransportException { this(host.resolveHost(), host.getPort(), clientId, useSSL, blocking, framedWrites, params.getReadTimeout(), params); }
/** * {@inheritDoc} */ @Override public ServerType getServerType() { return this.socketParams.getServerType(); }
@Override public void stopServer() { this.thriftService.stop(); this.socketParams.setServerType(isServer() ? ServerType.THRIFT_SNAPPY_CP : ServerType.THRIFT_LOCATOR_CP); }
/** * Sets the socket properties like timeout, keepalive, buffer sizes. * * @param params Socket parameters including buffer sizes and keep-alive settings */ protected void setProperties(Socket socket, int timeout, SocketParameters params) throws TTransportException { this.inputBufferSize = params.getInputBufferSize(); this.outputBufferSize = params.getInputBufferSize(); try { socket.setSoLinger(false, 0); socket.setTcpNoDelay(true); SnappyTSocket.setTimeout(socket, timeout, params); this.timeout = timeout; } catch (SocketException se) { LOGGER.warn("Could not set socket timeout.", se); throw new TTransportException(TTransportException.NOT_OPEN, "Could not set socket timeout.", se); } }
/** * Creates a new SSL socket that will connect to the given host on the given * port. * * @param host Remote HostAddress including port * @param params Socket parameters including SSL properties */ public SnappyTSSLSocket(HostAddress host, SocketParameters params) throws TTransportException { this(host.resolveHost(), host.getPort(), params.getReadTimeout(), params); }
final ServerType getServerType() { return this.socketParams.getServerType(); }
private static SnappyTSSLServerSocket createServer( SSLServerSocketFactory factory, InetSocketAddress bindAddress, SocketParameters params) throws TTransportException { try { SSLServerSocket serverSocket = (SSLServerSocket)factory .createServerSocket(bindAddress.getPort(), 100, bindAddress.getAddress()); if (params != null) { if (params.getSSLEnabledProtocols() != null) { serverSocket.setEnabledProtocols(params.getSSLEnabledProtocols()); } if (params.getSSLCipherSuites() != null) { serverSocket.setEnabledCipherSuites(params.getSSLCipherSuites()); } serverSocket.setNeedClientAuth(params.getSSLClientAuth()); } return new SnappyTSSLServerSocket(serverSocket, bindAddress, params); } catch (Exception e) { throw new TTransportException(TTransportException.NOT_OPEN, "Could not bind to host:port " + bindAddress.toString(), e); } } }
/** * Constructor that takes an already created socket. * * @param socket Already created socket object * @throws TTransportException if there is an error setting up the streams */ public SnappyTSSLSocket(Socket socket, SocketParameters params) throws TTransportException { super(socket); this.socketToSameHost = ClientSharedUtils.isSocketToSameHost( socket.getLocalSocketAddress(), socket.getRemoteSocketAddress()); if (isOpen()) { try { setProperties(socket, params.getReadTimeout(), params); this.inputStream_ = new BufferedInputStream(socket.getInputStream(), this.inputBufferSize); this.outputStream_ = new BufferedOutputStream(socket.getOutputStream(), this.outputBufferSize); } catch (IOException ioe) { close(); throw new TTransportException(TTransportException.NOT_OPEN, ioe); } } }
final ServerType getServerType() { return this.socketParams.getServerType(); }
try { srvChannel.configureBlocking(blocking); setProperties(srvChannel.socket(), params.getReadTimeout(), params);
readTimeout = ((SocketTimeout)currentTransport).getRawTimeout(); if (readTimeout == 0) { // not set readTimeout = socketParams.getReadTimeout(); readTimeout = socketParams.getReadTimeout(); readTimeout = socketParams.getReadTimeout();