From 8cfb3571160f52be1400e4bbf4d20734d211d8aa Mon Sep 17 00:00:00 2001 From: liuxueli Date: Fri, 12 May 2023 19:40:38 +0800 Subject: TSG-14990: DNS按照请求、应答包中的message_id关联session,查询是message_id类型不正确导致请求应答关联失败 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/dns.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/dns.cpp b/src/dns.cpp index e80b714..da556ec 100644 --- a/src/dns.cpp +++ b/src/dns.cpp @@ -1948,9 +1948,11 @@ int parse_dns_protocol(struct streaminfo *a_stream, unsigned char opstate, char if(dns_register_flag&DNS_ALL) { + int message_id=0; if(dns_info.hdr_info.qr==0) { - HASH_FIND_INT(context->session_hash, &dns_info.hdr_info.id, one_session); + message_id=dns_info.hdr_info.id; + HASH_FIND_INT(context->session_hash, &message_id, one_session); if(one_session!=NULL) { dns_delete_one_session(a_stream, context, one_session, a_packet); @@ -1964,7 +1966,8 @@ int parse_dns_protocol(struct streaminfo *a_stream, unsigned char opstate, char { dir_state=DNS_DIR_DOUBLE; session_state=SESSION_STATE_DATA|SESSION_STATE_CLOSE; - HASH_FIND_INT(context->session_hash, &dns_info.hdr_info.id, one_session); + message_id=dns_info.hdr_info.id; + HASH_FIND_INT(context->session_hash, &message_id, one_session); if(one_session==NULL) { one_session=(struct dns_session *)dictator_malloc(thread_seq, sizeof(struct dns_session)); -- cgit v1.2.3