final HttpContent encodeContent(final Connection connection, HttpContent httpContent) { final HttpHeader httpHeader = httpContent.getHttpHeader(); final List<ContentEncoding> encodings = httpHeader.getContentEncodings(true); for (int i = 0, len = encodings.size(); i < len; i++) { // Encode final ContentEncoding encoding = encodings.get(i); HttpProbeNotifier.notifyContentEncodingSerialize(this, connection, httpHeader, httpContent.getContent(), encoding); final HttpContent encodedContent = encoding.encode(connection, httpContent); if (encodedContent == null) { httpContent.recycle(); return null; } HttpProbeNotifier.notifyContentEncodingSerializeResult(this, connection, httpHeader, encodedContent.getContent(), encoding); httpContent = encodedContent; } return httpContent; }
final HttpContent encodeContent(final Connection connection, HttpContent httpContent) { final HttpHeader httpHeader = httpContent.getHttpHeader(); final List<ContentEncoding> encodings = httpHeader.getContentEncodings(true); for (int i = 0, len = encodings.size(); i < len; i++) { // Encode final ContentEncoding encoding = encodings.get(i); HttpProbeNotifier.notifyContentEncodingSerialize(this, connection, httpHeader, httpContent.getContent(), encoding); final HttpContent encodedContent = encoding.encode(connection, httpContent); if (encodedContent == null) { httpContent.recycle(); return null; } HttpProbeNotifier.notifyContentEncodingSerializeResult(this, connection, httpHeader, encodedContent.getContent(), encoding); httpContent = encodedContent; } return httpContent; }
final HttpContent encodeContent(final Connection connection, HttpContent httpContent) { final HttpHeader httpHeader = httpContent.getHttpHeader(); final List<ContentEncoding> encodings = httpHeader.getContentEncodings(true); for (int i = 0, len = encodings.size(); i < len; i++) { // Encode final ContentEncoding encoding = encodings.get(i); HttpProbeNotifier.notifyContentEncodingSerialize(this, connection, httpHeader, httpContent.getContent(), encoding); final HttpContent encodedContent = encoding.encode(connection, httpContent); if (encodedContent == null) { httpContent.recycle(); return null; } HttpProbeNotifier.notifyContentEncodingSerializeResult(this, connection, httpHeader, encodedContent.getContent(), encoding); httpContent = encodedContent; } return httpContent; }
final HttpContent encodeContent(final Connection connection, HttpContent httpContent) { final HttpHeader httpHeader = httpContent.getHttpHeader(); final List<ContentEncoding> encodings = httpHeader.getContentEncodings(true); for (int i = 0, len = encodings.size(); i < len; i++) { // Encode final ContentEncoding encoding = encodings.get(i); HttpProbeNotifier.notifyContentEncodingSerialize(this, connection, httpHeader, httpContent.getContent(), encoding); final HttpContent encodedContent = encoding.encode(connection, httpContent); if (encodedContent == null) { httpContent.recycle(); return null; } HttpProbeNotifier.notifyContentEncodingSerializeResult(this, connection, httpHeader, encodedContent.getContent(), encoding); httpContent = encodedContent; } return httpContent; }
final HttpContent encodeContent(final Connection connection, HttpContent httpContent) { final HttpHeader httpHeader = httpContent.getHttpHeader(); final List<ContentEncoding> encodings = httpHeader.getContentEncodings(true); for (int i = 0, len = encodings.size(); i < len; i++) { // Encode final ContentEncoding encoding = encodings.get(i); HttpProbeNotifier.notifyContentEncodingSerialize(this, connection, httpHeader, httpContent.getContent(), encoding); final HttpContent encodedContent = encoding.encode(connection, httpContent); if (encodedContent == null) { httpContent.recycle(); return null; } HttpProbeNotifier.notifyContentEncodingSerializeResult(this, connection, httpHeader, encodedContent.getContent(), encoding); httpContent = encodedContent; } return httpContent; }
final HttpContent encodeContent(final Connection connection, HttpContent httpContent) { final HttpHeader httpHeader = httpContent.getHttpHeader(); final List<ContentEncoding> encodings = httpHeader.getContentEncodings(true); for (int i = 0, len = encodings.size(); i < len; i++) { // Encode final ContentEncoding encoding = encodings.get(i); HttpProbeNotifier.notifyContentEncodingSerialize(this, connection, httpHeader, httpContent.getContent(), encoding); final HttpContent encodedContent = encoding.encode(connection, httpContent); if (encodedContent == null) { httpContent.recycle(); return null; } HttpProbeNotifier.notifyContentEncodingSerializeResult(this, connection, httpHeader, encodedContent.getContent(), encoding); httpContent = encodedContent; } return httpContent; }
final HttpContent encodeContent(final Connection connection, HttpContent httpContent) { final HttpHeader httpHeader = httpContent.getHttpHeader(); final List<ContentEncoding> encodings = httpHeader.getContentEncodings(true); for (int i = 0, len = encodings.size(); i < len; i++) { // Encode final ContentEncoding encoding = encodings.get(i); HttpProbeNotifier.notifyContentEncodingSerialize(this, connection, httpHeader, httpContent.getContent(), encoding); final HttpContent encodedContent = encoding.encode(connection, httpContent); if (encodedContent == null) { httpContent.recycle(); return null; } HttpProbeNotifier.notifyContentEncodingSerializeResult(this, connection, httpHeader, encodedContent.getContent(), encoding); httpContent = encodedContent; } return httpContent; }
final HttpContent encodeContent(final Connection connection, HttpContent httpContent) { final HttpHeader httpHeader = httpContent.getHttpHeader(); final List<ContentEncoding> encodings = httpHeader.getContentEncodings(true); for (int i = 0, len = encodings.size(); i < len; i++) { // Encode final ContentEncoding encoding = encodings.get(i); HttpProbeNotifier.notifyContentEncodingSerialize(this, connection, httpHeader, httpContent.getContent(), encoding); final HttpContent encodedContent = encoding.encode(connection, httpContent); if (encodedContent == null) { httpContent.recycle(); return null; } HttpProbeNotifier.notifyContentEncodingSerializeResult(this, connection, httpHeader, encodedContent.getContent(), encoding); httpContent = encodedContent; } return httpContent; }
final HttpContent encodeContent(final Connection connection, HttpContent httpContent) { final HttpHeader httpHeader = httpContent.getHttpHeader(); final List<ContentEncoding> encodings = httpHeader.getContentEncodings(true); for (int i = 0, len = encodings.size(); i < len; i++) { // Encode final ContentEncoding encoding = encodings.get(i); HttpProbeNotifier.notifyContentEncodingSerialize(this, connection, httpHeader, httpContent.getContent(), encoding); final HttpContent encodedContent = encoding.encode(connection, httpContent); if (encodedContent == null) { httpContent.recycle(); return null; } HttpProbeNotifier.notifyContentEncodingSerializeResult(this, connection, httpHeader, encodedContent.getContent(), encoding); httpContent = encodedContent; } return httpContent; }
@Override public NextAction handleRead(FilterChainContext ctx) throws IOException { // Get the parsed HttpContent (we assume prev. filter was HTTP) HttpContent message = ctx.getMessage(); Socket tunnelSocket = tunnelSockets.get(ctx.getConnection()); if (tunnelSocket == null) { // handle connection procedure return GrizzlyModProxy.this.handleConnect(ctx, message); } if (message.getContent().hasRemaining()) { // relay the content to the tunnel connection Buffer buffer = message.getContent(); message.recycle(); tunnelSocket.getOutputStream().write(buffer.array(), buffer.arrayOffset(), buffer.remaining()); } return ctx.getStopAction(); } }
@Override public NextAction handleRead(FilterChainContext ctx) throws IOException { // Get the parsed HttpContent (we assume prev. filter was HTTP) HttpContent message = ctx.getMessage(); Socket tunnelSocket = tunnelSockets.get(ctx.getConnection()); if (tunnelSocket == null) { // handle connection procedure return GrizzlyModProxy.this.handleConnect(ctx, message); } if (message.getContent().hasRemaining()) { // relay the content to the tunnel connection Buffer buffer = message.getContent(); message.recycle(); tunnelSocket.getOutputStream().write(buffer.array(), buffer.arrayOffset(), buffer.remaining()); } return ctx.getStopAction(); } }
private static NextAction handleClientHandShake(FilterChainContext ctx, HttpContent content) { final WebSocketHolder holder = WebSocketHolder.get(ctx.getConnection()); holder.handshake.validateServerResponse((HttpResponsePacket) content.getHttpHeader()); holder.webSocket.onConnect(); if (content.getContent().hasRemaining()) { return ctx.getRerunFilterAction(); } else { content.recycle(); return ctx.getStopAction(); } } }
private static NextAction handleClientHandShake(FilterChainContext ctx, HttpContent content) { final WebSocketHolder holder = WebSocketHolder.get(ctx.getConnection()); holder.handshake.validateServerResponse((HttpResponsePacket) content.getHttpHeader()); holder.webSocket.onConnect(); if (content.getContent().hasRemaining()) { return ctx.getRerunFilterAction(); } else { content.recycle(); return ctx.getStopAction(); } } }
private static NextAction handleClientHandShake(FilterChainContext ctx, HttpContent content) { final WebSocketHolder holder = WebSocketHolder.get(ctx.getConnection()); holder.handshake.validateServerResponse((HttpResponsePacket) content.getHttpHeader()); holder.webSocket.onConnect(); if (content.getContent().hasRemaining()) { return ctx.getRerunFilterAction(); } else { content.recycle(); return ctx.getStopAction(); } } }
private static NextAction handleClientHandShake(FilterChainContext ctx, HttpContent content) { final WebSocketHolder holder = WebSocketHolder.get(ctx.getConnection()); holder.handshake.validateServerResponse((HttpResponsePacket) content.getHttpHeader()); holder.webSocket.onConnect(); if (content.getContent().hasRemaining()) { return ctx.getRerunFilterAction(); } else { content.recycle(); return ctx.getStopAction(); } } }
private static NextAction handleClientHandShake(FilterChainContext ctx, HttpContent content) { final WebSocketHolder holder = WebSocketHolder.get(ctx.getConnection()); holder.handshake.validateServerResponse((HttpResponsePacket) content.getHttpHeader()); holder.webSocket.onConnect(); if (content.getContent().hasRemaining()) { return ctx.getRerunFilterAction(); } else { content.recycle(); return ctx.getStopAction(); } } }
private static NextAction handleClientHandShake(FilterChainContext ctx, HttpContent content) { final WebSocketHolder holder = WebSocketHolder.get(ctx.getConnection()); holder.handshake.validateServerResponse((HttpResponsePacket) content.getHttpHeader()); holder.webSocket.onConnect(); if (content.getContent().hasRemaining()) { return ctx.getRerunFilterAction(); } else { content.recycle(); return ctx.getStopAction(); } } }
/** * Handle server-side websocket handshake * * @param ctx {@link FilterChainContext} * @param requestContent HTTP message * @throws {@link IOException} */ private NextAction handleServerHandshake(final FilterChainContext ctx, final HttpContent requestContent) throws IOException { // get HTTP request headers final HttpRequestPacket request = (HttpRequestPacket) requestContent.getHttpHeader(); try { if (doServerUpgrade(ctx, requestContent)) { return ctx.getInvokeAction(); // not a WS request, pass to the next filter. } setIdleTimeout(ctx); } catch (HandshakeException e) { ctx.write(composeHandshakeError(request, e)); throw e; } requestContent.recycle(); return ctx.getStopAction(); }
/** * Handle server-side websocket handshake * * @param ctx {@link FilterChainContext} * @param requestContent HTTP message * @throws {@link IOException} */ private NextAction handleServerHandshake(final FilterChainContext ctx, final HttpContent requestContent) throws IOException { // get HTTP request headers final HttpRequestPacket request = (HttpRequestPacket) requestContent.getHttpHeader(); try { if (doServerUpgrade(ctx, requestContent)) { return ctx.getInvokeAction(); // not a WS request, pass to the next filter. } setIdleTimeout(ctx); } catch (HandshakeException e) { ctx.write(composeHandshakeError(request, e)); throw e; } requestContent.recycle(); return ctx.getStopAction(); }
private NextAction handleClientHandShake(FilterChainContext ctx, HttpContent content) { final WebSocketHolder holder = WebSocketEngine.getEngine().getWebSocketHolder(getWebSocketConnection(ctx, content)); if (holder == null) { content.recycle(); return ctx.getStopAction(); } try { final WebSocketResponse webSocketResponse = getWebSocketResponse((HttpResponsePacket) content.getHttpHeader()); holder.handshake.validateServerResponse(webSocketResponse); holder.handshake.getResponseListener().onResponseHeaders(webSocketResponse.getHeaders()); holder.webSocket.onConnect(); } catch (HandshakeException e) { holder.handshake.getResponseListener().onError(e); content.getContent().clear(); return ctx.getStopAction(); } if (content.getContent().hasRemaining()) { return ctx.getRerunFilterAction(); } else { content.recycle(); return ctx.getStopAction(); } }