@Override public void startResponse(Buffer version, int status, Buffer reason) throws IOException { if (status != 101) { _error = "Bad response status " + status + " " + reason; _endp.close(); } }
public void asyncDispatch() { _aEndp.asyncDispatch(); }
@Override public String toString() { StringBuilder builder = new StringBuilder("ProxyToServer"); builder.append("(:").append(_endPoint.getLocalPort()); builder.append("<=>:").append(_endPoint.getRemotePort()); return builder.append(")").toString(); }
public Connection handle() throws IOException while (_endp.isOpen() && !_parser.isComplete()) if (_endp.isInputShutdown()) _future.handshakeFailed(new IOException("Incomplete handshake response")); return this; _endp.close(); return this;
if (_endPoint.isOutputShutdown() || !_endPoint.isOpen()) closeClient(); else
_asyncEndp.setCheckForIdle(false); if (_asyncEndp.hasProgressed()) progress=true; _asyncEndp.setCheckForIdle(true);
public void setConnection(Connection connection) { _endp.setConnection(connection); }
public boolean hasProgressed() { return _endp.hasProgressed(); }
public void cancelTimeout(Task task) { _aEndp.cancelTimeout(task); }
@Override public int getRemotePort() { return endPoint.getRemotePort(); } }
@Override public int getLocalPort() { return endPoint.getLocalPort(); }
@Override public String getLocalAddr() { return endPoint.getLocalAddr(); }
public String getLocalHost() { return _endp.getLocalHost(); }
public void upgrade() { AsyncHttpConnection connection = (AsyncHttpConnection)_endp.getConnection(); SslConnection sslConnection = new SslConnection(_engine,_endp); _endp.setConnection(sslConnection); _endp=sslConnection.getSslEndPoint(); sslConnection.getSslEndPoint().setConnection(connection); LOG.debug("upgrade {} to {} for {}",this,sslConnection,connection); }
public boolean isOpen() { return _endp.isOpen(); }
public Connection handle() throws IOException while (_endp.isOpen() && !_parser.isComplete()) if (_endp.isInputShutdown()) _future.handshakeFailed(new IOException("Incomplete handshake response")); return this; _endp.close(); return this;
if (_endPoint.isOutputShutdown() || !_endPoint.isOpen()) closeClient(); else
_asyncEndp.setCheckForIdle(false); if (_asyncEndp.hasProgressed()) progress=true; _asyncEndp.setCheckForIdle(true);
@Override protected SelectChannelEndPoint newEndPoint(SocketChannel channel, SelectSet selectSet, final SelectionKey key) throws IOException { WebSocketClient.WebSocketFuture holder = (WebSocketClient.WebSocketFuture)key.attachment(); int maxIdleTime = holder.getMaxIdleTime(); if (maxIdleTime < 0) maxIdleTime = (int)getMaxIdleTime(); SelectChannelEndPoint result = new SelectChannelEndPoint(channel, selectSet, key, maxIdleTime); AsyncEndPoint endPoint = result; // Detect if it is SSL, and wrap the connection if so if ("wss".equals(holder.getURI().getScheme())) { SSLEngine sslEngine = newSslEngine(channel); SslConnection sslConnection = new SslConnection(sslEngine, endPoint); endPoint.setConnection(sslConnection); endPoint = sslConnection.getSslEndPoint(); } AsyncConnection connection = selectSet.getManager().newConnection(channel, endPoint, holder); endPoint.setConnection(connection); return result; }
_endp.flush(); if (_endp instanceof AsyncEndPoint && ((AsyncEndPoint)_endp).hasProgressed()) progress=true;