From aa864415c5183c948fe9ae221023d40265c38013 Mon Sep 17 00:00:00 2001 From: Samba Release Account Date: Tue, 20 May 1997 00:32:51 +0000 Subject: dir.c: Fixed double slash issue. includes.h: Changed to ifdef FAST_SHARE_MODES. ipc.c: Changed lp_workgroup() to myworkgroup. loadparm.c: Added new shared mem parameters. Added Luke's fix. locking.c: Rewrite to do share modes better (both fast and slow modes). nameannounce.c: Changed lp_workgroup() to myworkgroup. Added Luke's fix. nameconf.c: Changed lp_workgroup() to myworkgroup. namedbname.c: Improved debug. namedbserver.c: Changed lp_workgroup() to myworkgroup. namedbsubnet.c: Added Luke's fix - rewritten somewhat. namedbwork.c: Changed lp_workgroup() to myworkgroup. nameelect.c: Added Luke's fix - rewritten somewhat. nameresp.c: Stoped shadowing global. nameserv.c: Added Luke's fix - Improved debug. nameservreply.c: Improved debug. namework.c: Changed lp_workgroup() to myworkgroup. nmbd.c: Added Luke's fix - Changed lp_workgroup() to myworkgroup. pipes.c: Changed lp_workgroup() to myworkgroup. proto.h: Added Luke's fix, added smb_shm_ proto's. reply.c: Changed lp_workgroup() to myworkgroup. server.c: Rewrite to do share modes better (both fast and slow modes). shmem.c: Rewrite to do share modes better (both fast and slow modes). smb.h: Rewrite to do share modes better (both fast and slow modes). status.c: Rewrite to do share modes better (both fast and slow modes). trans2.c: Fixed double slash issue. util.c: Tidied up, created myworkgroup. Jeremy Allison (jallison@whistle.com). (This used to be commit 2a1711eaaf08bb6776770cd3c96b3010f431a677) --- source3/nameannounce.c | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) (limited to 'source3/nameannounce.c') diff --git a/source3/nameannounce.c b/source3/nameannounce.c index b46436168c..7d7a95334c 100644 --- a/source3/nameannounce.c +++ b/source3/nameannounce.c @@ -35,6 +35,7 @@ extern BOOL CanRecurse; extern struct in_addr ipzero; extern pstring myname; +extern fstring myworkgroup; extern int ClientDGRAM; extern int ClientNMB; @@ -185,9 +186,9 @@ void do_announce_host(int command, /**************************************************************************** - remove all samba's server entries - ****************************************************************************/ -void remove_my_servers(void) +announce all samba's server entries as 'gone'. +****************************************************************************/ +void announce_my_servers_removed(void) { struct subnet_record *d; for (d = FIRST_SUBNET; d; d = NEXT_SUBNET_EXCLUDING_WINS(d)) @@ -372,7 +373,7 @@ static time_t announce_timer_last=0; void reset_announce_timer() { - announce_timer_last = 0; + announce_timer_last = time(NULL) - (CHECK_TIME_MST_ANNOUNCE * 60); } /**************************************************************************** @@ -396,7 +397,7 @@ void announce_master(time_t t) return; } - if(wins_subnet == 0) + if(wins_subnet == NULL) { DEBUG(10,("announce_master: no wins subnet, ignoring.\n")); return; @@ -412,19 +413,19 @@ void announce_master(time_t t) if (AM_MASTER(work)) { am_master = True; + DEBUG(4,( "announce_master: am_master = %d for \ +workgroup %s\n", am_master, work->work_group)); } } } - DEBUG(4,( "announce_master: am_master = %d for workgroup %s\n", am_master, lp_workgroup())); - if (!am_master) return; /* only proceed if we are a master browser */ /* Note that we don't do this if we are domain master browser and that we *only* do this on the WINS subnet. */ /* Try and find our workgroup on the WINS subnet */ - work = find_workgroupstruct(wins_subnet, lp_workgroup(), False); + work = find_workgroupstruct(wins_subnet, myworkgroup, False); if (work) { @@ -488,7 +489,7 @@ in our own WINS database.\n", work->work_group)); /* Check that this isn't one of our addresses (ie. we are not domain master ourselves) */ - if(ismyip(nr->ip_flgs[0].ip)) + if(ismyip(nr->ip_flgs[0].ip) || ip_equal(nr->ip_flgs[0].ip, ipzero)) { DEBUG(4, ("announce_master: domain master ip found (%s) for workgroup %s \ is one of our interfaces.\n", work->work_group, inet_ntoa(nr->ip_flgs[0].ip) )); @@ -535,7 +536,7 @@ void announce_remote(time_t t) if (!*s) return; comment = lp_serverstring(); - workgroup = lp_workgroup(); + workgroup = myworkgroup; for (ptr=s; next_token(&ptr,s2,NULL); ) { /* the entries are of the form a.b.c.d/WORKGROUP with -- cgit