svn commit: samba r5081 - in trunk/source/nmbd: .

jra at samba.org jra at samba.org
Sat Jan 29 02:48:56 GMT 2005


Author: jra
Date: 2005-01-29 02:48:55 +0000 (Sat, 29 Jan 2005)
New Revision: 5081

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=5081

Log:
Don't blindly copy question rr_type and class, set correctly as required
by rfc1002.
Jeremy

Modified:
   trunk/source/nmbd/nmbd_packets.c


Changeset:
Modified: trunk/source/nmbd/nmbd_packets.c
===================================================================
--- trunk/source/nmbd/nmbd_packets.c	2005-01-29 02:46:37 UTC (rev 5080)
+++ trunk/source/nmbd/nmbd_packets.c	2005-01-29 02:48:55 UTC (rev 5081)
@@ -864,7 +864,7 @@
 	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 @@
 			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 @@
 			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 @@
 			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 @@
 	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) {



More information about the samba-cvs mailing list