From 7c99fddde98afe2e362e0a0785810a861a7d4c3b Mon Sep 17 00:00:00 2001 From: fengweihao Date: Mon, 23 Sep 2019 19:37:30 +0800 Subject: [PATCH] =?UTF-8?q?#174=20*=20=E4=BF=AE=E6=94=B9=E5=8E=9F=E5=BA=94?= =?UTF-8?q?=E7=AD=94=E5=A4=B4/=E8=AF=B7=E6=B1=82=E5=A4=B4=E6=A0=87?= =?UTF-8?q?=E5=87=86=E5=A4=B4=E5=8C=B9=E9=85=8D=EF=BC=8C=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E5=AD=97=E7=AC=A6=E4=B8=B2=E9=95=BF=E5=BA=A6=E6=AF=94=E8=BE=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin/protocol/http2/src/http2_common.cpp | 6 +++--- plugin/protocol/http2/src/http2_stream.cpp | 8 +------- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/plugin/protocol/http2/src/http2_common.cpp b/plugin/protocol/http2/src/http2_common.cpp index ef2ad56..f4b7007 100644 --- a/plugin/protocol/http2/src/http2_common.cpp +++ b/plugin/protocol/http2/src/http2_common.cpp @@ -38,9 +38,9 @@ Http2Plugin *http2_plugin() int http2_header_str_to_val(const char *str, const char * map[], unsigned int map_size) { - for (unsigned int i = 1; i < map_size; i++) + for (unsigned int i = 2; i < map_size; i++) { - if (!strncasecmp(str, map[i], strlen(map[i]))) + if ( (strlen(str) == strlen(map[i])) && !strncasecmp(str, map[i], strlen(map[i]))) { return i; } @@ -48,7 +48,7 @@ http2_header_str_to_val(const char *str, const char * map[], unsigned int map_si // in http [TFE_HTTP_UNKNOWN_FIELD] = NULL; [TFE_HTTP_HOST] = "Host", // in http2 [TFE_HTTP_UNKNOWN_FIELD] = "unknown"; [TFE_HTTP_HOST] = ":authority" - if (!strncasecmp(str, ":authority", strlen(":authority"))) + if ( (strlen(str) == strlen(":authority")) && !strncasecmp(str, ":authority", strlen(":authority"))) { return TFE_HTTP_HOST; } else { diff --git a/plugin/protocol/http2/src/http2_stream.cpp b/plugin/protocol/http2/src/http2_stream.cpp index 08d85cd..2f88dba 100644 --- a/plugin/protocol/http2/src/http2_stream.cpp +++ b/plugin/protocol/http2/src/http2_stream.cpp @@ -760,7 +760,6 @@ nghttp2_frame_submit_built_resp(struct tfe_h2_stream *h2_stream_info, if (rv != 0){ return ACTION_FORWARD_DATA; } - delete_nv_packet_data(h2_header); return ACTION_DROP_DATA; } @@ -805,7 +804,6 @@ nghttp2_frame_submit_built_req(struct tfe_h2_stream *h2_stream_info, nghttp2_strerror(stream_id)); return ACTION_FORWARD_DATA; } - delete_nv_packet_data(h2_header); return ACTION_DROP_DATA; } @@ -1195,7 +1193,6 @@ nghttp2_submit_header_by_not_modify(struct tfe_h2_stream *h2_stream_info, printf("Fatal headers error: %s\n", nghttp2_strerror(stream_id)); stream_action = ACTION_FORWARD_DATA; } - delete_nv_packet_data(&headers); if (stream_action == ACTION_DROP_DATA){ xret = nghttp2_session_send(h2_stream_info->as_server); @@ -1385,7 +1382,6 @@ nghttp2_server_frame_submit_push_promise(struct tfe_h2_stream *h2_stream_info, } upstream_create_req(h2_stream_info, h2_stream_info->as_server, peer_h2_stream, stream_id); /*clean header message **/ - delete_nv_packet_data(headers); stream_action = ACTION_DROP_DATA; finish: return stream_action; @@ -1594,7 +1590,6 @@ nghttp2_server_frame_submit_header(struct tfe_h2_stream *h2_stream_info, if (xret < 0){ printf("Fatal headers error: %s\n", nghttp2_strerror(xret)); } - delete_nv_packet_data(headers); return stream_action; } @@ -1778,7 +1773,6 @@ nghttp2_client_frame_submit_header(struct tfe_h2_stream *h2_stream_info, } stream_action = ACTION_DROP_DATA; finish: - delete_nv_packet_data(headers); return stream_action; } @@ -1874,7 +1868,7 @@ nghttp2_fill_up_header(nghttp2_session *ngh2_session, const nghttp2_frame *frame TFE_LOG_ERROR(logger()->handle, "Header stream id %d, can't find stream information", frame->hd.stream_id); return 0; - } + } struct tfe_h2_half_private *half = (dir == CONN_DIR_UPSTREAM) ? h2_session->resp : h2_session->req; struct http_field_name field;