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 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 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 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 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 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 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 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); } }
@Override public void onDecoded(CharSequence name, CharSequence value) { if (capture != null) { capture.put(name.toString(), value.toString()); } for (int i = 0, len = name.length(); i < len; i++) { if (Character.isUpperCase(name.charAt(i))) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM); } } if (name.charAt(0) == ':') { if (noMoreServiceHeaders.get()) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM); } processServiceRequestHeader(request, serviceHeaders, name.toString(), value.toString()); } else { noMoreServiceHeaders.compareAndSet(false, true); processNormalHeader(request, name.toString(), value.toString()); } }
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); } }
@Override public void onDecoded(CharSequence name, CharSequence value) { if (capture != null) { capture.put(name.toString(), value.toString()); } for (int i = 0, len = name.length(); i < len; i++) { if (Character.isUpperCase(name.charAt(i))) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM); } } if (name.charAt(0) == ':') { if (noMoreServiceHeaders.get()) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM); } processServiceRequestHeader(request, serviceHeaders, name.toString(), value.toString()); } else { noMoreServiceHeaders.compareAndSet(false, true); processNormalHeader(request, name.toString(), value.toString()); } }
@Override public void onDecoded(CharSequence name, CharSequence value) { if (capture != null) { capture.put(name.toString(), value.toString()); } for (int i = 0, len = name.length(); i < len; i++) { if (Character.isUpperCase(name.charAt(i))) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM); } } if (name.charAt(0) == ':') { if (noMoreServiceHeaders.get()) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM); } processServiceRequestHeader(request, serviceHeaders, name.toString(), value.toString()); } else { noMoreServiceHeaders.compareAndSet(false, true); processNormalHeader(request, name.toString(), value.toString()); } }
@Override public void onDecoded(CharSequence name, CharSequence value) { if (capture != null) { capture.put(name.toString(), value.toString()); } for (int i = 0, len = name.length(); i < len; i++) { if (Character.isUpperCase(name.charAt(i))) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM); } } if (name.charAt(0) == ':') { if (noMoreServiceHeaders.get()) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM); } processServiceRequestHeader(request, serviceHeaders, name.toString(), value.toString()); } else { noMoreServiceHeaders.compareAndSet(false, true); processNormalHeader(request, name.toString(), value.toString()); } }
@Override public void onDecoded(CharSequence name, CharSequence value) { if (capture != null) { capture.put(name.toString(), value.toString()); } for (int i = 0, len = name.length(); i < len; i++) { if (Character.isUpperCase(name.charAt(i))) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM); } } if (name.charAt(0) == ':') { if (noMoreServiceHeaders.get()) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM); } processServiceRequestHeader(request, serviceHeaders, name.toString(), value.toString()); } else { noMoreServiceHeaders.compareAndSet(false, true); processNormalHeader(request, name.toString(), value.toString()); } }
@Override public void onDecoded(CharSequence name, CharSequence value) { if (capture != null) { capture.put(name.toString(), value.toString()); } for (int i = 0, len = name.length(); i < len; i++) { if (Character.isUpperCase(name.charAt(i))) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM); } } if (name.charAt(0) == ':') { if (noMoreServiceHeaders.get()) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM); } processServiceRequestHeader(request, serviceHeaders, name.toString(), value.toString()); } else { noMoreServiceHeaders.compareAndSet(false, true); processNormalHeader(request, name.toString(), value.toString()); } }
@Override public void onDecoded(CharSequence name, CharSequence value) { if (capture != null) { capture.put(name.toString(), value.toString()); } for (int i = 0, len = name.length(); i < len; i++) { if (Character.isUpperCase(name.charAt(i))) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM); } } if (name.charAt(0) == ':') { if (noMoreServiceHeaders.get()) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM); } processServiceRequestHeader(request, serviceHeaders, name.toString(), value.toString()); } else { noMoreServiceHeaders.compareAndSet(false, true); processNormalHeader(request, name.toString(), value.toString()); } }
@Override public void onDecoded(CharSequence name, CharSequence value) { if (capture != null) { capture.put(name.toString(), value.toString()); } for (int i = 0, len = name.length(); i < len; i++) { if (Character.isUpperCase(name.charAt(i))) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM); } } if (name.charAt(0) == ':') { if (noMoreServiceHeaders.get()) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM); } processServiceRequestHeader(request, serviceHeaders, name.toString(), value.toString()); } else { noMoreServiceHeaders.compareAndSet(false, true); processNormalHeader(request, name.toString(), value.toString()); } }
@Override public void onDecoded(CharSequence name, CharSequence value) { if (capture != null) { capture.put(name.toString(), value.toString()); } for (int i = 0, len = name.length(); i < len; i++) { if (Character.isUpperCase(name.charAt(i))) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM); } } if (name.charAt(0) == ':') { if (noMoreServiceHeaders.get()) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM); } processServiceRequestHeader(request, serviceHeaders, name.toString(), value.toString()); } else { noMoreServiceHeaders.compareAndSet(false, true); processNormalHeader(request, name.toString(), value.toString()); } }
private static void finalizeKnownHeader(final HttpHeader httpHeader, final String name, final String value) { switch (name) { case "content-length": { httpHeader.setContentLengthLong(Long.parseLong(value)); return; } case "upgrade": { httpHeader.getUpgradeDC().setString(value); return; } case "expect": { ((Http2Request) httpHeader).requiresAcknowledgement(true); } case "connection": { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM, "Invalid use of connection header."); } case "te": { if (!"trailers".equals(value)) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM, "TE header only allowed a value of trailers."); } } } }
private static void finalizeKnownHeader(final HttpHeader httpHeader, final String name, final String value) { switch (name) { case "content-length": { httpHeader.setContentLengthLong(Long.parseLong(value)); return; } case "upgrade": { httpHeader.getUpgradeDC().setString(value); return; } case "expect": { ((Http2Request) httpHeader).requiresAcknowledgement(true); } case "connection": { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM, "Invalid use of connection header."); } case "te": { if (!"trailers".equals(value)) { throw new HeaderDecodingException(ErrorCode.PROTOCOL_ERROR, ErrorType.STREAM, "TE header only allowed a value of trailers."); } } } }