From 2ee230726563e67fe1abefe807d3b44d7f2ae219 Mon Sep 17 00:00:00 2001 From: fengweihao Date: Fri, 2 Dec 2022 10:29:42 +0800 Subject: TSG-12671 lua脚本在删除host时,导致日志http.host字段乱码 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin/protocol/http/include/internal/http_half.h | 1 + plugin/protocol/http/src/http_half.cpp | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/plugin/protocol/http/include/internal/http_half.h b/plugin/protocol/http/include/internal/http_half.h index f244cd6..90af617 100644 --- a/plugin/protocol/http/include/internal/http_half.h +++ b/plugin/protocol/http/include/internal/http_half.h @@ -62,6 +62,7 @@ struct http_half_private short minor; /* URI */ + char * host; struct evbuffer * evbuf_uri; char * url_storage; diff --git a/plugin/protocol/http/src/http_half.cpp b/plugin/protocol/http/src/http_half.cpp index 8044812..07bfa1a 100644 --- a/plugin/protocol/http/src/http_half.cpp +++ b/plugin/protocol/http/src/http_half.cpp @@ -152,7 +152,8 @@ void __hf_public_req_fill_from_private(struct http_half_private * hf_private, st hf_private->method_or_status = (enum tfe_http_std_method) parser->method; const static struct http_field_name __host_field_name = {TFE_HTTP_HOST, NULL}; - hf_req_spec->host = (char *) tfe_http_field_read(hf_public, &__host_field_name); + hf_private->host = strdup((char *) tfe_http_field_read(hf_public, &__host_field_name)); + hf_req_spec->host = hf_private->host; /* uri is stored in underlay evbuffer, we need to append a terminal zero */ static const char __zero = 0; @@ -701,6 +702,12 @@ void hf_private_destory(struct http_half_private * hf_private) hf_private->evbuf_uri = NULL; } + if(hf_private->host) + { + free(hf_private->host); + hf_private->host = NULL; + } + if (hf_private->url_storage) { free(hf_private->url_storage); -- cgit v1.2.3