From a91feaf7edd616a8fa0ca02c7c906cf74652619a Mon Sep 17 00:00:00 2001 From: luqiuwen Date: Sat, 5 Jan 2019 18:17:47 +0600 Subject: [PATCH] =?UTF-8?q?Close=20#106=20=E4=BF=AE=E6=AD=A3=E5=BD=93?= =?UTF-8?q?=E5=91=BD=E4=B8=AD=E5=85=B3=E9=94=AE=E5=AD=97=E9=98=BB=E6=96=AD?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E5=9C=A8=E5=8F=91=E9=80=81=E7=8E=B0=E5=9C=BA?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=84Coredump=E7=9A=84=E9=97=AE=E9=A2=98?= =?UTF-8?q?=20*=20=E5=8E=9F=E5=AE=9E=E7=8E=B0=E5=9C=A8=E5=91=BD=E4=B8=AD?= =?UTF-8?q?=E5=BA=94=E7=AD=94=E5=85=B3=E9=94=AE=E5=AD=97=E6=97=B6=EF=BC=8C?= =?UTF-8?q?=E8=AE=A4=E4=B8=BABODY=5FBEGIN=E6=97=B6=E5=B7=B2=E7=BB=8F?= =?UTF-8?q?=E5=88=9B=E5=BB=BA=E8=BF=87evbuffer=EF=BC=8C=E7=9B=B4=E6=8E=A5?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=20*=20=E7=8E=B0=E4=BF=AE=E6=AD=A3=EF=BC=8C?= =?UTF-8?q?=E5=BD=93evbuf=E4=B8=BA=E7=A9=BA=E6=97=B6=EF=BC=8C=E5=88=9B?= =?UTF-8?q?=E5=BB=BAevbuffer.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin/business/pangu-http/src/pangu_http.cpp | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/plugin/business/pangu-http/src/pangu_http.cpp b/plugin/business/pangu-http/src/pangu_http.cpp index ff9bd9c..33b44eb 100644 --- a/plugin/business/pangu-http/src/pangu_http.cpp +++ b/plugin/business/pangu-http/src/pangu_http.cpp @@ -1152,25 +1152,26 @@ void enforce_control_policy(const struct tfe_stream * stream, const struct tfe_h default: assert(0); break; } - if(ctx->action!=PG_ACTION_NONE && ctx->action!=PG_ACTION_WHITELIST) + + /* Don't store reqeust/response body when NOT hit or hit whitelist */ + if(ctx->action == PG_ACTION_NONE || ctx->action == PG_ACTION_WHITELIST) { - if (events & EV_HTTP_REQ_BODY_BEGIN) - { - ctx->log_req_body=evbuffer_new(); - } - if (events & EV_HTTP_RESP_BODY_BEGIN) - { - ctx->log_resp_body=evbuffer_new(); - } - if(events & EV_HTTP_REQ_BODY_CONT) - { - evbuffer_add(ctx->log_req_body, body_frag, frag_size); - } - if(events & EV_HTTP_RESP_BODY_CONT) - { - evbuffer_add(ctx->log_resp_body, body_frag, frag_size); - } + return; } + + /* Otherwise, store body */ + if(events & EV_HTTP_REQ_BODY_CONT) + { + if(ctx->log_req_body == NULL) ctx->log_req_body = evbuffer_new(); + evbuffer_add(ctx->log_req_body, body_frag, frag_size); + } + + if(events & EV_HTTP_RESP_BODY_CONT) + { + if(ctx->log_resp_body == NULL) ctx->log_resp_body = evbuffer_new(); + evbuffer_add(ctx->log_resp_body, body_frag, frag_size); + } + return; } #define RESUMED_CB_NO_MORE_CALLS 0