svn commit: samba r5213 - in branches/SAMBA_4_0/source/nbt_server: .

tridge at samba.org tridge at samba.org
Fri Feb 4 02:16:59 GMT 2005


Author: tridge
Date: 2005-02-04 02:16:59 +0000 (Fri, 04 Feb 2005)
New Revision: 5213

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

Log:
do our name broadcast refresh requests as register packets not refresh
packets, as w2k3 and Samba3 do not defend against broadcast name
refresh packets



Modified:
   branches/SAMBA_4_0/source/nbt_server/register.c


Changeset:
Modified: branches/SAMBA_4_0/source/nbt_server/register.c
===================================================================
--- branches/SAMBA_4_0/source/nbt_server/register.c	2005-02-04 02:05:27 UTC (rev 5212)
+++ branches/SAMBA_4_0/source/nbt_server/register.c	2005-02-04 02:16:59 UTC (rev 5213)
@@ -76,19 +76,24 @@
 {
 	struct nbt_iface_name *iname = talloc_get_type(private, struct nbt_iface_name);
 	struct nbt_interface *iface = iname->iface;
-	struct nbt_name_refresh io;
+	struct nbt_name_register io;
 	struct nbt_name_request *req;
 
-	/* setup a name refresh request */
+	/* setup a single name register request. Notice that we don't
+	   use a name refresh request, as Windows and Samba3 do not
+	   defend against broadcast name refresh packets. So for this
+	   to be of any use at all, we need to refresh using name
+	   registration packets */
 	io.in.name            = iname->name;
 	io.in.dest_addr       = iface->bcast_address;
 	io.in.address         = iface->ip_address;
 	io.in.nb_flags        = iname->nb_flags;
 	io.in.ttl             = iname->ttl;
+	io.in.register_demand = False;
 	io.in.broadcast       = True;
 	io.in.timeout         = 3;
 
-	req = nbt_name_refresh_send(iface->nbtsock, &io);
+	req = nbt_name_register_send(iface->nbtsock, &io);
 	if (req == NULL) return;
 
 	req->async.fn = refresh_completion_handler;
@@ -108,7 +113,7 @@
 	
 	event_add_timed(iname->iface->nbtsrv->task->event_ctx, 
 			iname, 
-			timeval_current_ofs(refresh_time, 0),
+			timeval_add(&iname->registration_time, refresh_time, 0),
 			name_refresh_handler, iname);
 }
 



More information about the samba-cvs mailing list