http2: do not try to upgrade if http2 is disabled in config

pull/6433/head
Philippe Antoine 4 years ago committed by Victor Julien
parent 42ba421ca9
commit 8536048443

@ -925,10 +925,11 @@ static AppLayerResult HTPHandleResponseData(Flow *f, void *htp_state,
if (tx != NULL && tx->response_status_number == 101) { if (tx != NULL && tx->response_status_number == 101) {
htp_header_t *h = htp_header_t *h =
(htp_header_t *)htp_table_get_c(tx->response_headers, "Upgrade"); (htp_header_t *)htp_table_get_c(tx->response_headers, "Upgrade");
if (h == NULL) { if (h == NULL || bstr_cmp_c(h->value, "h2c") != 0) {
break; break;
} }
if (bstr_cmp_c(h->value, "h2c") != 0) { if (AppLayerProtoDetectGetProtoName(ALPROTO_HTTP2) == NULL) {
// if HTTP2 is disabled, keep the HTP_STREAM_TUNNEL mode
break; break;
} }
uint16_t dp = 0; uint16_t dp = 0;
@ -940,8 +941,7 @@ static AppLayerResult HTPHandleResponseData(Flow *f, void *htp_state,
// During HTTP2 upgrade, we may consume the HTTP1 part of the data // During HTTP2 upgrade, we may consume the HTTP1 part of the data
// and we need to parser the remaining part with HTTP2 // and we need to parser the remaining part with HTTP2
if (consumed > 0 && consumed < input_len) { if (consumed > 0 && consumed < input_len) {
SCReturnStruct( SCReturnStruct(APP_LAYER_INCOMPLETE(consumed, input_len - consumed));
APP_LAYER_INCOMPLETE(consumed, input_len - consumed));
} }
SCReturnStruct(APP_LAYER_OK); SCReturnStruct(APP_LAYER_OK);
} }

Loading…
Cancel
Save