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