diff options
author | Samba Release Account <samba-bugs@samba.org> | 1996-07-09 18:01:46 +0000 |
---|---|---|
committer | Samba Release Account <samba-bugs@samba.org> | 1996-07-09 18:01:46 +0000 |
commit | 429f1f975e2936f2e220b656c51c211d48d47047 (patch) | |
tree | e7b73378197bb59bd0fb4fb3e32196f099e9ca9c /source/namedbserver.c | |
parent | d78b319062144d14a54408fce77ccc313ad58ee3 (diff) | |
download | samba-429f1f975e2936f2e220b656c51c211d48d47047.tar.gz samba-429f1f975e2936f2e220b656c51c211d48d47047.tar.xz samba-429f1f975e2936f2e220b656c51c211d48d47047.zip |
sorted out various timer delay bugs: nameannounce.c nameserv.c
namedbname.c:search_for_name() wasn't looking for 0x1b as well as
0x0 and 0x20 name types.
reduced number of retransmissions of packets from 4 to 3 times.
added code that ensures remote lmhosts entries don't get deleted when
a master browser cannot be found on a remote subnet. stopped forcing
an election on remote subnets if a master browser cannot be found.
stopped browse list and wins list from being written out too frequently.
only add samba's names to local interfaces.
add 0x1c name if we are a domain logon machine (needs more exploration).
why bother reloading services when receiving a SIGTERM?
sort out add_my_name_entry() and remove_name_entry() to deal with
broadcast, samba as a WINS and samba using a WINS. properly.
added extra debug information to help with expected response queue code.
updated debug comments in become_master().
altered dump_names() DEBUG format. it looks prettier.
altered wins.dat format to match DEBUG format.
lkcl
Diffstat (limited to 'source/namedbserver.c')
-rw-r--r-- | source/namedbserver.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/source/namedbserver.c b/source/namedbserver.c index 74c7a96baa9..de0cda79cce 100644 --- a/source/namedbserver.c +++ b/source/namedbserver.c @@ -46,9 +46,11 @@ extern BOOL updatedlists; /******************************************************************* expire old servers in the serverlist - time of -1 indicates everybody dies + time of -1 indicates everybody dies except those with time of 0 + remove_all_servers indicates everybody dies. ******************************************************************/ -void remove_old_servers(struct work_record *work, time_t t) +void remove_old_servers(struct work_record *work, time_t t, + BOOL remove_all) { struct server_record *s; struct server_record *nexts; @@ -56,7 +58,7 @@ void remove_old_servers(struct work_record *work, time_t t) /* expire old entries in the serverlist */ for (s = work->serverlist; s; s = nexts) { - if (t == -1 || (s->death_time && s->death_time < t)) + if (remove_all || (s->death_time && (t == -1 || s->death_time < t))) { DEBUG(3,("Removing dead server %s\n",s->serv.name)); updatedlists = True; @@ -195,7 +197,7 @@ void expire_servers(time_t t) for (work = d->workgrouplist; work; work = work->next) { - remove_old_servers(work, t); + remove_old_servers(work, t, False); } } } |