diff options
| author | fengweihao <[email protected]> | 2024-02-29 11:25:36 +0800 |
|---|---|---|
| committer | fengweihao <[email protected]> | 2024-02-29 11:25:36 +0800 |
| commit | eb70e87583edda1c894e9a3d5e40da9571770de9 (patch) | |
| tree | 2d7ea472c71098f42a34938f523410c628fd359e /plugin/business/tsg-http/src | |
| parent | ddb41ce22f506114eb702fcb132178602d773591 (diff) | |
TSG-19480 修复Metric中命中策略统计和Throughput的时机不一致,造成界面展示歧义v4.8.67-20240301
TSG-19540 修复Manipulation策略中Protocol选择UDP/ICMP时,选择非无法命中策略
TSG-19337 界面展示一致性,Proxy的Manipulate日志中的IP Protocol统一小写
Diffstat (limited to 'plugin/business/tsg-http/src')
| -rw-r--r-- | plugin/business/tsg-http/src/tsg_http.cpp | 152 | ||||
| -rw-r--r-- | plugin/business/tsg-http/src/tsg_logger.cpp | 2 |
2 files changed, 78 insertions, 76 deletions
diff --git a/plugin/business/tsg-http/src/tsg_http.cpp b/plugin/business/tsg-http/src/tsg_http.cpp index 42afd8c..5f2481a 100644 --- a/plugin/business/tsg-http/src/tsg_http.cpp +++ b/plugin/business/tsg-http/src/tsg_http.cpp @@ -1189,6 +1189,77 @@ struct proxy_http_ctx int thread_id; }; +static inline int ctx_actually_replaced(struct proxy_http_ctx * ctx) +{ + if(ctx->action == PX_ACTION_MANIPULATE && + ctx->param->action == MA_ACTION_REPLACE && + ctx->rep_ctx->actually_replaced==1) + { + return 1; + } + else + { + return 0; + } +} + +static inline int ctx_actually_ran_script(struct proxy_http_ctx * ctx) +{ + if(ctx->action == PX_ACTION_MANIPULATE && + ctx->param->action == MA_ACTION_LUA_SCRIPT && + ctx->tsg_ctx->actually_executed==1) + { + return 1; + } + else + { + return 0; + } +} + +static inline int ctx_actually_inserted(struct proxy_http_ctx * ctx) +{ + if(ctx->action == PX_ACTION_MANIPULATE && + ctx->param->action == MA_ACTION_INSERT && + ctx->ins_ctx->actually_inserted==1) + { + return 1; + } + else + { + return 0; + } +} + +static inline int ctx_actually_edited(struct proxy_http_ctx * ctx) +{ + if(ctx->action == PX_ACTION_MANIPULATE && + ctx->param->action == MA_ACTION_ELEMENT && ctx->edit_ctx != NULL && + ctx->edit_ctx->actually_edited==1) + { + return 1; + } + else + { + return 0; + } +} + +static inline int ctx_actually_manipulate(struct proxy_http_ctx * ctx) +{ + if(ctx->action == PX_ACTION_MANIPULATE && + (ctx->param->action == MA_ACTION_REDIRECT || + ctx->param->action == MA_ACTION_HIJACK)&& + ctx->manipulate_replaced==1) + { + return 1; + } + else + { + return 0; + } +} + void http_repl_ctx_free(struct replace_ctx* rep_ctx) { if (rep_ctx->http_body) @@ -2829,7 +2900,12 @@ void enforce_control_policy(const struct tfe_stream * stream, const struct tfe_h if(ctx->log_resp_body == NULL) ctx->log_resp_body = evbuffer_new(); evbuffer_add(ctx->log_resp_body, body_frag, frag_size); } - proxy_send_metric_log(stream, ctx, thread_id, 1); + + if((((ctx_actually_replaced(ctx)) || (ctx_actually_inserted(ctx)) || (ctx_actually_edited(ctx)) || (ctx_actually_manipulate(ctx)) + || ctx_actually_ran_script(ctx)) || ctx->action == PX_ACTION_REJECT || (ctx->action == PX_ACTION_MONIT))) + { + proxy_send_metric_log(stream, ctx, thread_id, 1); + } return; } @@ -2910,80 +2986,6 @@ void proxy_on_http_begin(const struct tfe_stream *stream, const struct tfe_http_ return; } -static inline int ctx_actually_replaced(struct proxy_http_ctx * ctx) -{ - - if(ctx->action == PX_ACTION_MANIPULATE && - ctx->param->action == MA_ACTION_REPLACE && - ctx->rep_ctx->actually_replaced==1) - { - return 1; - } - else - { - return 0; - } -} - -static inline int ctx_actually_ran_script(struct proxy_http_ctx * ctx) -{ - if(ctx->action == PX_ACTION_MANIPULATE && - ctx->param->action == MA_ACTION_LUA_SCRIPT && - ctx->tsg_ctx->actually_executed==1) - { - return 1; - } - else - { - return 0; - } -} - -static inline int ctx_actually_inserted(struct proxy_http_ctx * ctx) -{ - - if(ctx->action == PX_ACTION_MANIPULATE && - ctx->param->action == MA_ACTION_INSERT && - ctx->ins_ctx->actually_inserted==1) - { - return 1; - } - else - { - return 0; - } -} - -static inline int ctx_actually_edited(struct proxy_http_ctx * ctx) -{ - - if(ctx->action == PX_ACTION_MANIPULATE && - ctx->param->action == MA_ACTION_ELEMENT && ctx->edit_ctx != NULL && - ctx->edit_ctx->actually_edited==1) - { - return 1; - } - else - { - return 0; - } -} - -static inline int ctx_actually_manipulate(struct proxy_http_ctx * ctx) -{ - if(ctx->action == PX_ACTION_MANIPULATE && - (ctx->param->action == MA_ACTION_REDIRECT || - ctx->param->action == MA_ACTION_HIJACK)&& - ctx->manipulate_replaced==1) - { - return 1; - } - else - { - return 0; - } -} - void proxy_on_http_end(const struct tfe_stream * stream, const struct tfe_http_session * session, unsigned int thread_id, void ** pme) { diff --git a/plugin/business/tsg-http/src/tsg_logger.cpp b/plugin/business/tsg-http/src/tsg_logger.cpp index 6673d83..4ae7203 100644 --- a/plugin/business/tsg-http/src/tsg_logger.cpp +++ b/plugin/business/tsg-http/src/tsg_logger.cpp @@ -253,7 +253,7 @@ int proxy_send_log(struct proxy_logger* handle, const struct proxy_log* log_msg) cJSON_AddStringToObject(common_obj, "http_version", app_proto[http->major_version]); cJSON_AddStringToObject(common_obj, "decoded_as", "HTTP"); - cJSON_AddStringToObject(common_obj, "ip_protocol", "TCP"); + cJSON_AddStringToObject(common_obj, "ip_protocol", "tcp"); cJSON_AddNumberToObject(common_obj, "out_link_id", 0); cJSON_AddNumberToObject(common_obj, "in_link_id", 0); cJSON_AddStringToObject(common_obj, "sled_ip", handle->kafka_logger->local_ip_str); |
