From 21bbd4e1f724506514c776a89dd0af936bd313e5 Mon Sep 17 00:00:00 2001 From: fengweihao Date: Tue, 26 Dec 2023 17:13:03 +0800 Subject: [PATCH] =?UTF-8?q?TSG-18165=20Manipulation=E6=97=A5=E5=BF=97?= =?UTF-8?q?=E4=B8=AD=20Subscriber=20ID=E5=80=BC=E4=B8=BA=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin/business/doh/src/logger.cpp | 8 +++++++- plugin/business/tsg-http/src/tsg_http.cpp | 10 +++++----- plugin/business/tsg-http/src/tsg_logger.cpp | 6 ++++++ 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/plugin/business/doh/src/logger.cpp b/plugin/business/doh/src/logger.cpp index 9cbaab4..8381e26 100644 --- a/plugin/business/doh/src/logger.cpp +++ b/plugin/business/doh/src/logger.cpp @@ -335,7 +335,8 @@ int doh_send_log(struct doh_conf *handle, const struct tfe_http_session *http, c cJSON_AddStringToObject(common_obj, "doh_version", app_proto[http->major_version]); cJSON_AddStringToObject(common_obj, "decoded_as", "DoH"); - char opt_val[24] = { 0 }; + char opt_val[24]={0}; + char source_subscribe_id[64]={0}; uint16_t opt_out_size; struct tfe_cmsg *cmsg = tfe_stream_get0_cmsg(stream); if (cmsg != NULL) @@ -345,6 +346,11 @@ int doh_send_log(struct doh_conf *handle, const struct tfe_http_session *http, c { cJSON_AddStringToObject(common_obj, "session_id", opt_val); } + ret = tfe_cmsg_get_value(cmsg, TFE_CMSG_SRC_SUB_ID, (unsigned char *)source_subscribe_id, sizeof(source_subscribe_id), &opt_out_size); + if (ret==0) + { + cJSON_AddStringToObject(common_obj, "subscriber_id", source_subscribe_id); + } } if (http->req) diff --git a/plugin/business/tsg-http/src/tsg_http.cpp b/plugin/business/tsg-http/src/tsg_http.cpp index f44863d..5d6b0f9 100644 --- a/plugin/business/tsg-http/src/tsg_http.cpp +++ b/plugin/business/tsg-http/src/tsg_http.cpp @@ -760,7 +760,7 @@ void policy_action_param_dup(int idx, void **to, void **from, long argl, void *a void ma_profile_table_new_cb(const char *table_name, int table_id, const char* key, const char* table_line, void **ad, long argl, void* argp) { int ret=0, profile_id=0, is_valid=0; - char profile_name[256]={0}, formate[128]={0}; + char profile_name[512]={0}, formate[128]={0}; char profile_path[TFE_PATH_MAX]={0}; ret=sscanf(table_line, "%d\t%s\t%s\t%s\t%d", &profile_id, profile_name, formate, profile_path, &is_valid); @@ -800,7 +800,7 @@ void ma_profile_table_new_cb(const char *table_name, int table_id, const char* k void ma_insert_profile_table_new_cb(const char *table_name, int table_id, const char* key, const char* table_line, void **ad, long argl, void* argp) { int ret=0, profile_id=0, is_valid=0; - char profile_name[256]={0}, formate[128]={0}; + char profile_name[512]={0}, formate[128]={0}; char profile_path[TFE_PATH_MAX]={0},profile_position[TFE_PATH_MAX]={0}; ret=sscanf(table_line, "%d\t%s\t%s\t%s\t%s\t%d", &profile_id, profile_name, formate, profile_path, profile_position, &is_valid); @@ -840,8 +840,8 @@ void ma_insert_profile_table_new_cb(const char *table_name, int table_id, const void ma_hijack_profile_table_new_cb(const char *table_name, int table_id, const char* key, const char* table_line, void **ad, long argl, void* argp) { int ret=0, profile_id=0, is_valid=0; - char profile_name[256]={0}, formate[128]={0}; - char profile_path[TFE_PATH_MAX]={0},hijack_name[128]={0}; + char profile_name[512]={0}, formate[128]={0}; + char profile_path[TFE_PATH_MAX]={0},hijack_name[512]={0}; ret=sscanf(table_line, "%d\t%s\t%s\t%s\t%s\t%d", &profile_id, profile_name, hijack_name, formate, profile_path, &is_valid); if(ret!=6) @@ -868,7 +868,7 @@ void ma_lua_profile_table_new_cb(const char *table_name, int table_id, const cha { int timeout=0; int ret=0, profile_id=0, is_valid=0; - char profile_name[128]={0}, profile_path[TFE_PATH_MAX]={0}; + char profile_name[512]={0}, profile_path[TFE_PATH_MAX]={0}; ret=sscanf(table_line, "%d\t%s\t%d\t%d", &profile_id, profile_path, &timeout, &is_valid); if(ret!=4) diff --git a/plugin/business/tsg-http/src/tsg_logger.cpp b/plugin/business/tsg-http/src/tsg_logger.cpp index a5e8b26..9df6da1 100644 --- a/plugin/business/tsg-http/src/tsg_logger.cpp +++ b/plugin/business/tsg-http/src/tsg_logger.cpp @@ -212,6 +212,7 @@ int proxy_send_log(struct proxy_logger* handle, const struct proxy_log* log_msg) cJSON_AddNumberToObject(common_obj, "end_timestamp_ms", get_time_ms(cur_time)); unsigned int category_id_val[64]={0}; + char source_subscribe_id[64]={0}; char opt_val[24]={0}; uint16_t opt_out_size; struct tfe_cmsg * cmsg = tfe_stream_get0_cmsg(log_msg->stream); if (cmsg!=NULL) @@ -221,6 +222,11 @@ int proxy_send_log(struct proxy_logger* handle, const struct proxy_log* log_msg) { cJSON_AddStringToObject(common_obj, "session_id", opt_val); } + ret = tfe_cmsg_get_value(cmsg, TFE_CMSG_SRC_SUB_ID, (unsigned char *)source_subscribe_id, sizeof(source_subscribe_id), &opt_out_size); + if (ret==0) + { + cJSON_AddStringToObject(common_obj, "subscriber_id", source_subscribe_id); + } ret = proxy_log_get_fqdn_cat(cmsg, category_id_val, sizeof(category_id_val)); if (ret>0) {