diff --git a/entry/include/kni_entry.h b/entry/include/kni_entry.h index ed0a208..203e7f8 100644 --- a/entry/include/kni_entry.h +++ b/entry/include/kni_entry.h @@ -138,6 +138,7 @@ struct pme_info{ int is_dynamic_bypass; //for proxy tcp option struct proxy_tcp_option pxy_tcp_option; + int pxy_tcp_option_is_scan; }; struct wrapped_packet{ diff --git a/entry/src/kni_entry.cpp b/entry/src/kni_entry.cpp index bfdd31b..fb8a1c5 100644 --- a/entry/src/kni_entry.cpp +++ b/entry/src/kni_entry.cpp @@ -1373,7 +1373,14 @@ char first_data_process(struct streaminfo *stream, struct pme_info *pmeinfo, str //only action = intercept, need sendlog pmeinfo->tld_handle = TLD_create(-1); if(g_kni_handle->pxy_tcp_option_enable == 1) - pxy_tcp_option_get_param(g_tsg_maat_feather,(const struct streaminfo *)stream,pmeinfo,logger); + { + KNI_LOG_DEBUG(logger, "Proxy-tcp-option: before scan status:%d ( 1 is has been scanned, other value not scan),stream traceid = %s", pmeinfo->pxy_tcp_option_is_scan,pmeinfo->stream_traceid); + if(pmeinfo->pxy_tcp_option_is_scan != 1) + { + pxy_tcp_option_get_param(g_tsg_maat_feather,(const struct streaminfo *)stream,pmeinfo,logger); + pmeinfo->pxy_tcp_option_is_scan = 1; + } + } return first_data_intercept(stream, pmeinfo, pktinfo, thread_seq); default: //action != intercept,bypass and dropme