bugfix:TSG-17106:修改kni proxy_rule_hits写入pinning status值错误的bug

This commit is contained in:
fumingwei
2023-10-17 15:43:14 +08:00
parent ce6433ed71
commit 9b969289a6
4 changed files with 7 additions and 2 deletions

View File

@@ -135,6 +135,7 @@ struct pme_info{
//from tfe, kafka log //from tfe, kafka log
uint8_t ssl_intercept_state; uint8_t ssl_intercept_state;
uint8_t ssl_pinningst; //defalut 0 uint8_t ssl_pinningst; //defalut 0
uint8_t ssl_pinningst_active;
uint64_t ssl_server_side_latency; uint64_t ssl_server_side_latency;
uint64_t ssl_client_side_latency; uint64_t ssl_client_side_latency;
char ssl_server_side_version[KNI_SYMBOL_MAX]; char ssl_server_side_version[KNI_SYMBOL_MAX];

View File

@@ -34,6 +34,7 @@ struct proxy_metric_tag
unsigned long long rule_id; unsigned long long rule_id;
unsigned char action; unsigned char action;
unsigned char pinning_status; unsigned char pinning_status;
unsigned char pinning_status_active;
}; };

View File

@@ -326,7 +326,8 @@ static void set_proxy_rule_hits_metric(struct pme_info *pmeinfo, int thread_id)
metric_tag.action = pmeinfo->maat_rule.action; metric_tag.action = pmeinfo->maat_rule.action;
metric_tag.rule_id = pmeinfo->maat_rule.rule_id; metric_tag.rule_id = pmeinfo->maat_rule.rule_id;
metric_tag.vsys_id = pmeinfo->maat_rule.vsys_id; metric_tag.vsys_id = pmeinfo->maat_rule.vsys_id;
metric_tag.pinning_status = pmeinfo->ssl_intercept_state; metric_tag.pinning_status = pmeinfo->ssl_pinningst;
metric_tag.pinning_status_active = pmeinfo->ssl_pinningst_active;
proxy_set_metric_value(g_kni_handle->proxy_fieldstat, &metric_tag, proxy_set_metric_value(g_kni_handle->proxy_fieldstat, &metric_tag,
metric_value, thread_id); metric_value, thread_id);
@@ -2536,6 +2537,7 @@ static int wrapped_kni_cmsg_get(struct pme_info *pmeinfo, struct kni_cmsg *cmsg,
break; break;
case TFE_CMSG_SSL_PINNING_STATE: case TFE_CMSG_SSL_PINNING_STATE:
memcpy((char*)&(pmeinfo->ssl_pinningst), value, value_size); memcpy((char*)&(pmeinfo->ssl_pinningst), value, value_size);
pmeinfo->ssl_pinningst_active = 1;
break; break;
case TFE_CMSG_SSL_CERT_VERIFY: case TFE_CMSG_SSL_CERT_VERIFY:
memcpy((char*)&(pmeinfo->ssl_cert_verify), value, value_size); memcpy((char*)&(pmeinfo->ssl_cert_verify), value, value_size);
@@ -2579,6 +2581,7 @@ static long traceid2pme_htable_search_cb(void *data, const uchar *key, uint size
can_destroy = judge_stream_can_destroy(pmeinfo, CALLER_TFE); can_destroy = judge_stream_can_destroy(pmeinfo, CALLER_TFE);
if(can_destroy == 1){ if(can_destroy == 1){
traceid2pme_htable_del(pmeinfo); traceid2pme_htable_del(pmeinfo);
set_proxy_rule_hits_metric(pmeinfo, g_kni_handle->thread_count);
stream_destroy(pmeinfo); stream_destroy(pmeinfo);
} }
} }

View File

@@ -17,7 +17,7 @@ static int read_fieldstat_tags(struct proxy_metric_tag *metric_tags,
tags[n_tags].value_int = metric_tags->rule_id; tags[n_tags].value_int = metric_tags->rule_id;
n_tags++; n_tags++;
if(metric_tags->pinning_status == 1) if(metric_tags->pinning_status_active == 1)
{ {
tags[n_tags].key = "pinning_status"; tags[n_tags].key = "pinning_status";
tags[n_tags].value_type = 0; tags[n_tags].value_type = 0;