summaryrefslogtreecommitdiff
path: root/source3/nmbd/nmbd_serverlistdb.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>1997-12-24 08:49:44 +0000
committerJeremy Allison <jra@samba.org>1997-12-24 08:49:44 +0000
commit5cdb60bd93fcf97fa9ee1c42642237eb7d4c2083 (patch)
treea25a261c11d94aac922f4ba0c6346e7215e95010 /source3/nmbd/nmbd_serverlistdb.c
parent0c0777400fd4a2e0586761514345153c9ee218ed (diff)
downloadsamba-5cdb60bd93fcf97fa9ee1c42642237eb7d4c2083.tar.gz
samba-5cdb60bd93fcf97fa9ee1c42642237eb7d4c2083.tar.bz2
samba-5cdb60bd93fcf97fa9ee1c42642237eb7d4c2083.zip
nmbd_elections.c: Added new parameter to dump_workgroups call.
nmbd_incomingdgrams.c: Deal with announcements with servertype == 0 - these are announcements that a machine is shutting down and must be treated differently. nmbd_serverlistdb.c: Exposed remove_server_from_workgroup as external. Added code to dump out workgroups on signal correctly. nmbd_workgroupdb.c: Added new parameter to dump_workgroups call. Jeremy. (This used to be commit f7591109b968c66012af5e9fe818bba8e6f1cf23)
Diffstat (limited to 'source3/nmbd/nmbd_serverlistdb.c')
-rw-r--r--source3/nmbd/nmbd_serverlistdb.c18
1 files changed, 11 insertions, 7 deletions
diff --git a/source3/nmbd/nmbd_serverlistdb.c b/source3/nmbd/nmbd_serverlistdb.c
index b3dca36c84..6a6998f81d 100644
--- a/source3/nmbd/nmbd_serverlistdb.c
+++ b/source3/nmbd/nmbd_serverlistdb.c
@@ -111,7 +111,7 @@ struct server_record *find_server_in_workgroup(struct work_record *work, char *n
Remove a server entry from this workgroup.
****************************************************************************/
-static void remove_server_from_workgroup(struct work_record *work, struct server_record *servrec)
+void remove_server_from_workgroup(struct work_record *work, struct server_record *servrec)
{
if (servrec->prev)
servrec->prev->next = servrec->next;
@@ -311,11 +311,17 @@ void write_browse_list(time_t t, BOOL force_write)
BOOL list_changed = force_write;
static time_t lasttime = 0;
- if (!lasttime)
- lasttime = t;
- if (t - lasttime < 5)
- return;
+ /* Always dump if we're being told to by a signal. */
+ if(force_write == False)
+ {
+ if (!lasttime)
+ lasttime = t;
+ if (t - lasttime < 5)
+ return;
+ }
+ dump_workgroups(force_write);
+
for (subrec = FIRST_SUBNET; subrec ; subrec = NEXT_SUBNET_INCLUDING_UNICAST(subrec))
{
if(subrec->work_changed)
@@ -331,8 +337,6 @@ void write_browse_list(time_t t, BOOL force_write)
lasttime = t;
updatecount++;
- dump_workgroups();
-
pstrcpy(fname,lp_lockdir());
trim_string(fname,NULL,"/");
strcat(fname,"/");