From: Jeremy Allison Date: Sat, 29 Jan 2005 02:49:01 +0000 (+0000) Subject: r5082: Don't blindly copy question rr_type and class, set correctly as required X-Git-Tag: samba-misc-tags/initial-v3-0-unstable~5331 X-Git-Url: http://git.samba.org/samba.git/?p=kai%2Fsamba-autobuild%2F.git;a=commitdiff_plain;h=422fb43dda13e0840245ae272b7621640b8ad220 r5082: Don't blindly copy question rr_type and class, set correctly as required by rfc1002. Jeremy. --- diff --git a/source/nmbd/nmbd_packets.c b/source/nmbd/nmbd_packets.c index f6d267c8f11..4baf2d3d6ce 100644 --- a/source/nmbd/nmbd_packets.c +++ b/source/nmbd/nmbd_packets.c @@ -864,7 +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; + int rr_type = RR_TYPE_NB; const char *packet_type = "unknown"; /* Check if we are sending to or from ourselves. */ @@ -886,13 +886,14 @@ void reply_netbios_packet(struct packet_struct *orig_packet, packet_type = "nmb_status"; nmb->header.nm_flags.recursion_desired = False; nmb->header.nm_flags.recursion_available = False; + rr_type = RR_TYPE_NBSTAT; break; case NMB_QUERY: packet_type = "nmb_query"; nmb->header.nm_flags.recursion_desired = True; nmb->header.nm_flags.recursion_available = True; if (rcode) { - use_null_rr_type = True; + rr_type = RR_TYPE_NULL; } break; case NMB_REG: @@ -910,7 +911,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; + rr_type = RR_TYPE_NULL; break; case WINS_REG: packet_type = "wins_reg"; @@ -922,7 +923,7 @@ void reply_netbios_packet(struct packet_struct *orig_packet, nmb->header.nm_flags.recursion_desired = True; nmb->header.nm_flags.recursion_available = True; if (rcode) { - use_null_rr_type = True; + rr_type = RR_TYPE_NULL; } break; default: @@ -955,12 +956,8 @@ 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; - 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->rr_type = rr_type; + nmb->answers->rr_class = RR_CLASS_IN; nmb->answers->ttl = ttl; if (data && len) {