diff options
author | Jeremy Allison <jra@samba.org> | 1997-12-24 08:49:44 +0000 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 1997-12-24 08:49:44 +0000 |
commit | 5cdb60bd93fcf97fa9ee1c42642237eb7d4c2083 (patch) | |
tree | a25a261c11d94aac922f4ba0c6346e7215e95010 /source3/nmbd/nmbd_serverlistdb.c | |
parent | 0c0777400fd4a2e0586761514345153c9ee218ed (diff) | |
download | samba-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.c | 18 |
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,"/"); |