diff options
author | Andrew Tridgell <tridge@samba.org> | 2002-06-26 06:44:37 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 2002-06-26 06:44:37 +0000 |
commit | 07f35f68e00b48ad6ec4d18c628d0bb57bad85ef (patch) | |
tree | c275131d8156d06f06c83421ffe30eb5056cc586 /source3/nmbd/nmbd_namerelease.c | |
parent | 788c2c655baab3bf87cd984a8599b0829029f6c2 (diff) | |
download | samba-07f35f68e00b48ad6ec4d18c628d0bb57bad85ef.tar.gz samba-07f35f68e00b48ad6ec4d18c628d0bb57bad85ef.tar.bz2 samba-07f35f68e00b48ad6ec4d18c628d0bb57bad85ef.zip |
- completely rewrote the wins_srv.c code. It is now much simpler, and
gives us a good grounding to properly support multiple wins servers
for different interfaces (which will be coming soon ...)
- fixed our wins registration failover code to actually do failover!
We were not trying to register with a secondary wins server at all
when the primary was down. We now fallback correctly.
- fixed the multi-homed name registration packets so that they work
even in a non-connected network (ie. when one of our interfaces is not
routable from the wins server. Yes, this really happens in the real
world).
(This used to be commit a049360d5b0d95a935b06aad43efc17d34de46dc)
Diffstat (limited to 'source3/nmbd/nmbd_namerelease.c')
-rw-r--r-- | source3/nmbd/nmbd_namerelease.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/source3/nmbd/nmbd_namerelease.c b/source3/nmbd/nmbd_namerelease.c index fd35181f33..cefab44a08 100644 --- a/source3/nmbd/nmbd_namerelease.c +++ b/source3/nmbd/nmbd_namerelease.c @@ -147,9 +147,14 @@ static void release_name_timeout_response(struct subnet_record *subrec, DEBUG(2,("release_name_timeout_response: WINS server at address %s is not \ responding.\n", inet_ntoa(rrec->packet->ip))); - /* Keep trying to contact the WINS server periodically. This allows - us to work correctly if the WINS server is down temporarily when - we want to delete the name. */ + /* mark it temporarily dead */ + wins_srv_died(rrec->packet->ip); + + /* and try the next wins server */ + rrec->packet->ip = wins_srv_ip(); + + /* also update the UNICODE subnet IPs */ + subrec->bcast_ip = subrec->mask_ip = subrec->myip = rrec->packet->ip; /* Reset the number of attempts to zero and double the interval between retries. Max out at 5 minutes. */ |