private static void validateHeaderCharacters(final CharSequence name, final CharSequence value) { assert (name != null); assert (value != null); int idx = ensureRange(name); if (idx != -1) { final String msg = String.format(INVALID_CHARACTER_MESSAGE, (int) name.charAt(idx), idx, "name", name, value); throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM, msg); } idx = ensureRange(value); if (idx != -1) { final String msg = String.format(INVALID_CHARACTER_MESSAGE, (int) name.charAt(idx), idx, "value", name, value); throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM, msg); } }
private static void processNormalHeader(final HttpHeader httpHeader, final String name, final String value) { if (name.equals(Header.Host.getLowerCase())) { return; } final MimeHeaders mimeHeaders = httpHeader.getHeaders(); final DataChunk valueChunk = mimeHeaders.addValue(name); validateHeaderCharacters(name, value); valueChunk.setString(value); finalizeKnownHeader(httpHeader, name, value); }
stream.inputBuffer.terminate(IN_FIN_TERMINATION); DecoderUtils.decodeResponseHeaders(http2Session, response, capture); onHttpHeadersParsed(response, context); response.getHeaders().mark(); content = response.httpContentBuilder().content(Buffers.EMPTY_BUFFER).last(isEOS).build(); } else { DecoderUtils.decodeTrailerHeaders(http2Session, response, capture); final HttpTrailer trailer = response.httpTrailerBuilder().content(Buffers.EMPTY_BUFFER).last(isEOS).build(); final MimeHeaders mimeHeaders = response.getHeaders();
stream.onRcvHeaders(headersFrame.isEndStream()); final Map<String,String> capture = ((NetLogger.isActive()) ? new HashMap<>() : null); DecoderUtils.decodeTrailerHeaders(http2Session, stream.getRequest(), capture); NetLogger.log(Context.RX, http2Session, headersFrame, capture); } catch (IOException ioe) { DecoderUtils.decodeRequestHeaders(http2Session, request, capture); NetLogger.log(Context.RX, http2Session, headersFrame, capture); } catch (IOException ioe) {
private static void processServiceResponseHeader( final HttpResponsePacket response, final String name, final String value) { validateHeaderCharacters(name, value); final int valueLen = value.length(); switch (name) { case STATUS_HEADER: { if ((valueLen) != 3) { throw new IllegalStateException("Unexpected status code: " + value); } response.setStatus(Integer.parseInt(value)); } } LOGGER.log(Level.FINE, "Skipping unknown service header[{0}={1}", new Object[]{name, value}); }
DecoderUtils.decodeRequestHeaders(http2Session, request, capture); NetLogger.log(Context.RX, http2Session, pushPromiseFrame, capture); onHttpHeadersParsed(request, context);
stream.inputBuffer.terminate(IN_FIN_TERMINATION); DecoderUtils.decodeResponseHeaders(http2Session, response, capture); onHttpHeadersParsed(response, context); response.getHeaders().mark(); content = response.httpContentBuilder().content(Buffers.EMPTY_BUFFER).last(isEOS).build(); } else { DecoderUtils.decodeTrailerHeaders(http2Session, response, capture); final HttpTrailer trailer = response.httpTrailerBuilder().content(Buffers.EMPTY_BUFFER).last(isEOS).build(); final MimeHeaders mimeHeaders = response.getHeaders();
stream.onRcvHeaders(headersFrame.isEndStream()); final Map<String,String> capture = ((NetLogger.isActive()) ? new HashMap<>() : null); DecoderUtils.decodeTrailerHeaders(http2Session, stream.getRequest(), capture); NetLogger.log(Context.RX, http2Session, headersFrame, capture); } catch (IOException ioe) { DecoderUtils.decodeRequestHeaders(http2Session, request, capture); NetLogger.log(Context.RX, http2Session, headersFrame, capture); } catch (IOException ioe) {
private static void processServiceResponseHeader( final HttpResponsePacket response, final String name, final String value) { validateHeaderCharacters(name, value); final int valueLen = value.length(); switch (name) { case STATUS_HEADER: { if ((valueLen) != 3) { throw new IllegalStateException("Unexpected status code: " + value); } response.setStatus(Integer.parseInt(value)); } } LOGGER.log(Level.FINE, "Skipping unknown service header[{0}={1}", new Object[]{name, value}); }
DecoderUtils.decodeRequestHeaders(http2Session, request, capture); NetLogger.log(Context.RX, http2Session, pushPromiseFrame, capture); onHttpHeadersParsed(request, context);
private static void processNormalHeader(final HttpHeader httpHeader, final String name, final String value) { if (name.equals(Header.Host.getLowerCase())) { return; } final MimeHeaders mimeHeaders = httpHeader.getHeaders(); final DataChunk valueChunk = mimeHeaders.addValue(name); validateHeaderCharacters(name, value); valueChunk.setString(value); finalizeKnownHeader(httpHeader, name, value); }
stream.inputBuffer.terminate(IN_FIN_TERMINATION); DecoderUtils.decodeResponseHeaders(http2Session, response, capture); onHttpHeadersParsed(response, context); response.getHeaders().mark(); content = response.httpContentBuilder().content(Buffers.EMPTY_BUFFER).last(isEOS).build(); } else { DecoderUtils.decodeTrailerHeaders(http2Session, response, capture); final HttpTrailer trailer = response.httpTrailerBuilder().content(Buffers.EMPTY_BUFFER).last(isEOS).build(); final MimeHeaders mimeHeaders = response.getHeaders();
stream.onRcvHeaders(headersFrame.isEndStream()); final Map<String,String> capture = ((NetLogger.isActive()) ? new HashMap<>() : null); DecoderUtils.decodeTrailerHeaders(http2Session, stream.getRequest(), capture); NetLogger.log(Context.RX, http2Session, headersFrame, capture); } catch (IOException ioe) { DecoderUtils.decodeRequestHeaders(http2Session, request, capture); NetLogger.log(Context.RX, http2Session, headersFrame, capture); } catch (IOException ioe) {
private static void validateHeaderCharacters(final CharSequence name, final CharSequence value) { assert (name != null); assert (value != null); int idx = ensureRange(name); if (idx != -1) { final String msg = String.format(INVALID_CHARACTER_MESSAGE, (int) name.charAt(idx), idx, "name", name, value); throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM, msg); } idx = ensureRange(value); if (idx != -1) { final String msg = String.format(INVALID_CHARACTER_MESSAGE, (int) name.charAt(idx), idx, "value", name, value); throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM, msg); } }
private static void processServiceResponseHeader( final HttpResponsePacket response, final String name, final String value) { validateHeaderCharacters(name, value); final int valueLen = value.length(); switch (name) { case STATUS_HEADER: { if ((valueLen) != 3) { throw new IllegalStateException("Unexpected status code: " + value); } response.setStatus(Integer.parseInt(value)); } } LOGGER.log(Level.FINE, "Skipping unknown service header[{0}={1}", new Object[]{name, value}); }
DecoderUtils.decodeRequestHeaders(http2Session, request, capture); NetLogger.log(Context.RX, http2Session, pushPromiseFrame, capture); onHttpHeadersParsed(request, context);
private static void processNormalHeader(final HttpHeader httpHeader, final String name, final String value) { if (name.equals(Header.Host.getLowerCase())) { return; } final MimeHeaders mimeHeaders = httpHeader.getHeaders(); final DataChunk valueChunk = mimeHeaders.addValue(name); validateHeaderCharacters(name, value); valueChunk.setString(value); finalizeKnownHeader(httpHeader, name, value); }
stream.inputBuffer.terminate(IN_FIN_TERMINATION); DecoderUtils.decodeResponseHeaders(http2Session, response, capture); onHttpHeadersParsed(response, context); response.getHeaders().mark(); content = response.httpContentBuilder().content(Buffers.EMPTY_BUFFER).last(isEOS).build(); } else { DecoderUtils.decodeTrailerHeaders(http2Session, response, capture); final HttpTrailer trailer = response.httpTrailerBuilder().content(Buffers.EMPTY_BUFFER).last(isEOS).build(); final MimeHeaders mimeHeaders = response.getHeaders();
stream.onRcvHeaders(headersFrame.isEndStream()); final Map<String,String> capture = ((NetLogger.isActive()) ? new HashMap<>() : null); DecoderUtils.decodeTrailerHeaders(http2Session, stream.getRequest(), capture); NetLogger.log(Context.RX, http2Session, headersFrame, capture); } catch (IOException ioe) { DecoderUtils.decodeRequestHeaders(http2Session, request, capture); NetLogger.log(Context.RX, http2Session, headersFrame, capture); } catch (IOException ioe) {
private static void validateHeaderCharacters(final CharSequence name, final CharSequence value) { assert (name != null); assert (value != null); int idx = ensureRange(name); if (idx != -1) { final String msg = String.format(INVALID_CHARACTER_MESSAGE, (int) name.charAt(idx), idx, "name", name, value); throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM, msg); } idx = ensureRange(value); if (idx != -1) { final String msg = String.format(INVALID_CHARACTER_MESSAGE, (int) name.charAt(idx), idx, "value", name, value); throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM, msg); } }