summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfengweihao <[email protected]>2019-06-26 20:53:45 +0800
committerfengweihao <[email protected]>2019-06-26 20:53:45 +0800
commit65e0ac29d5dff00652f2ed7a5c5da982f36d1417 (patch)
tree62e5ee261aa097340bca1ee911630ef2c2ad38e3
parentc7ecf014275efdf7650edf1c560520e89880a247 (diff)
修复redirect命中RespBody后,修改action状态,不发送日志v4.0.2-20190628
修复pcre2_substitute失败后,页面无法显示
-rw-r--r--plugin/business/pangu-http/src/pangu_http.cpp1
-rw-r--r--plugin/business/pangu-http/src/pattern_replace.cpp2
-rw-r--r--plugin/protocol/http2/src/http2_stream.cpp7
3 files changed, 8 insertions, 2 deletions
diff --git a/plugin/business/pangu-http/src/pangu_http.cpp b/plugin/business/pangu-http/src/pangu_http.cpp
index 36a984a..e71e962 100644
--- a/plugin/business/pangu-http/src/pangu_http.cpp
+++ b/plugin/business/pangu-http/src/pangu_http.cpp
@@ -1516,6 +1516,7 @@ static void http_redirect(const struct tfe_http_session * session, enum tfe_http
if ((events & EV_HTTP_RESP_BODY_BEGIN) || (events & EV_HTTP_RESP_BODY_CONT)
|| (events & EV_HTTP_RESP_BODY_END) || (events & EV_HTTP_RESP_END))
{
+ ctx->action = PG_ACTION_NONE;
return;
}
diff --git a/plugin/business/pangu-http/src/pattern_replace.cpp b/plugin/business/pangu-http/src/pattern_replace.cpp
index 34bb084..ea910c5 100644
--- a/plugin/business/pangu-http/src/pattern_replace.cpp
+++ b/plugin/business/pangu-http/src/pattern_replace.cpp
@@ -227,7 +227,7 @@ not_enough_mem_retry:
if(rc<=0)
{
free(out_buffer);
- outlen=rc;
+ outlen=0;
}
else
{
diff --git a/plugin/protocol/http2/src/http2_stream.cpp b/plugin/protocol/http2/src/http2_stream.cpp
index 797f2f7..907a8e8 100644
--- a/plugin/protocol/http2/src/http2_stream.cpp
+++ b/plugin/protocol/http2/src/http2_stream.cpp
@@ -1261,8 +1261,9 @@ nghttp2_submit_frame_data(struct tfe_h2_stream *h2_stream_info,const nghttp2_fra
nghttp2_session *ngh2_session = tfe_h2_stream_get_nghttp2_peer_session(h2_stream_info, dir);
h2_session = (struct tfe_h2_session *)nghttp2_session_get_stream_user_data(ngh2_session, frame->hd.stream_id);
- if (!h2_session)
+ if (h2_session == NULL)
{
+ nghttp2_submit_end_data_by_h2_half(h2_stream_info, frame->hd.stream_id, dir);
h2_stream_info->stream_action = ACTION_DROP_DATA;
return 0;
}
@@ -1615,6 +1616,8 @@ nghttp2_server_submit_header(struct tfe_h2_stream *h2_stream_info, int32_t strea
stream_id, h2_stream_info);
goto finish;
}
+ assert(h2_session->ngh2_stream_id == stream_id);
+
resp = h2_session->resp;
fill_resp_spec_from_handle(h2_session->resp);
@@ -1799,6 +1802,8 @@ nghttp2_client_submit_header(struct tfe_h2_stream *h2_stream_info, int32_t strea
stream_action = ACTION_FORWARD_DATA;
goto finish;
}
+ assert(h2_session->ngh2_stream_id == stream_id);
+
req = h2_session->req;
fill_req_spec_from_handle(h2_session->req);