summaryrefslogtreecommitdiffstats
path: root/source/namedbserver.c
diff options
context:
space:
mode:
authorSamba Release Account <samba-bugs@samba.org>1996-07-09 18:01:46 +0000
committerSamba Release Account <samba-bugs@samba.org>1996-07-09 18:01:46 +0000
commit429f1f975e2936f2e220b656c51c211d48d47047 (patch)
treee7b73378197bb59bd0fb4fb3e32196f099e9ca9c /source/namedbserver.c
parentd78b319062144d14a54408fce77ccc313ad58ee3 (diff)
downloadsamba-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.c10
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);
}
}
}