From ab8c9240044f1ef3d5c6ac4850c8ec615c2e32fd Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Sat, 29 Jan 2005 02:03:46 +0000 Subject: [PATCH] r5076: Ensure that WINS negative name query responses and WACK packets use the correct RR type of 0xA instead of reflecting back what the query RR type was (0x20). See rfc1002 sections 4.2.14 and 4.2.16. Jeremy. --- source/nmbd/nmbd_packets.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/source/nmbd/nmbd_packets.c b/source/nmbd/nmbd_packets.c index 8a111eb957a..70ea087426c 100644 --- a/source/nmbd/nmbd_packets.c +++ b/source/nmbd/nmbd_packets.c @@ -864,6 +864,7 @@ void reply_netbios_packet(struct packet_struct *orig_packet, struct res_rec answers; struct nmb_packet *orig_nmb = &orig_packet->packet.nmb; BOOL loopback_this_packet = False; + BOOL use_null_rr_type = False; const char *packet_type = "unknown"; /* Check if we are sending to or from ourselves. */ @@ -906,6 +907,7 @@ void reply_netbios_packet(struct packet_struct *orig_packet, packet_type = "nmb_wack"; nmb->header.nm_flags.recursion_desired = False; nmb->header.nm_flags.recursion_available = False; + use_null_rr_type = True; break; case WINS_REG: packet_type = "wins_reg"; @@ -916,6 +918,9 @@ void reply_netbios_packet(struct packet_struct *orig_packet, packet_type = "wins_query"; nmb->header.nm_flags.recursion_desired = True; nmb->header.nm_flags.recursion_available = True; + if (rcode) { + use_null_rr_type = True; + } break; default: DEBUG(0,("reply_netbios_packet: Unknown packet type: %s %s to ip %s\n", @@ -947,7 +952,11 @@ for id %hu\n", packet_type, nmb_namestr(&orig_nmb->question.question_name), memset((char*)nmb->answers,'\0',sizeof(*nmb->answers)); nmb->answers->rr_name = orig_nmb->question.question_name; - nmb->answers->rr_type = orig_nmb->question.question_type; + if (use_null_rr_type) { + nmb->answers->rr_type = RR_TYPE_NULL; + } else { + nmb->answers->rr_type = orig_nmb->question.question_type; + } nmb->answers->rr_class = orig_nmb->question.question_class; nmb->answers->ttl = ttl; -- 2.47.3