diff options
author | Andrew Tridgell <tridge@samba.org> | 1996-08-21 06:09:00 +0000 |
---|---|---|
committer | Andrew Tridgell <tridge@samba.org> | 1996-08-21 06:09:00 +0000 |
commit | eb84f2f342375439d94481a0ccf47c9593544e32 (patch) | |
tree | 132b11791f08d5be2316475d9dd0210499f87cb5 /source/nameannounce.c | |
parent | 48e623e2ea8101009586f09e8ee56d4529dc477f (diff) | |
download | samba-eb84f2f342375439d94481a0ccf47c9593544e32.tar.gz |
- new handling of ST_TYPE bits, they are now consolidated much more in
DFLT_SERVER_TYPE in nameserv.h
- got rid of a lot of spurious domain controller stuff. Samba is not a
domain controller yet, but it can be a domain master. We were claiming
to be a domain controller in some packets which may have caused
problems
- don't do preferred master startups on the WINS pseudo-net
- don't do election requests on the WINS pseudo-net
- fix a nasty bug in become_non_master() which wiped out the bits in
remove_type before using them. The result was that samba didn't like
losing its master status.
- changed the logic in the election packet handling to enable us to
become a non-master whenever we receive a winning election frame, even
if we aren't expecting it
- get another packet from the socket in nmbd when we reject one of our
own packets, this stops us from going into the packet reading code too
often and makes nmbd much snappier
- always remove a name immediately when we try to release it, don't
wait for the lack of response from the network, otherwise we will end
up replying to name that we don't really own. We still send the dereg
packets, we just don't wait for them to time out.
Diffstat (limited to 'source/nameannounce.c')
-rw-r--r-- | source/nameannounce.c | 14 |
1 files changed, 2 insertions, 12 deletions
diff --git a/source/nameannounce.c b/source/nameannounce.c index 5591c5ba19a..ff2c89df852 100644 --- a/source/nameannounce.c +++ b/source/nameannounce.c @@ -208,7 +208,7 @@ void remove_my_servers(void) void announce_server(struct subnet_record *d, struct work_record *work, char *name, char *comment, time_t ttl, int server_type) { - uint32 domain_type = SV_TYPE_DOMAIN_ENUM|SV_TYPE_SERVER_UNIX; + uint32 domain_type = SV_TYPE_DOMAIN_ENUM|DFLT_SERVER_TYPE; BOOL wins_iface = ip_equal(d->bcast_ip, ipgrp); if (wins_iface && server_type != 0) @@ -237,11 +237,6 @@ void announce_server(struct subnet_record *d, struct work_record *work, } } - if (AM_DOMCTL(work)) - { - /* XXXX announce to backup domain masters? */ - } - /* XXXX any other kinds of announcements we need to consider here? e.g local master browsers... no. local master browsers do local master announcements to their domain master. they even @@ -268,10 +263,6 @@ void announce_server(struct subnet_record *d, struct work_record *work, /* XXXX should we do a domain-announce-kill? */ if (server_type != 0) { - if (AM_DOMCTL(work)) - { - domain_type |= SV_TYPE_DOMAIN_CTRL; - } do_announce_host(ANN_DomainAnnouncement, name , 0x00, d->myip, MSBROWSE, 0x01, d->bcast_ip, @@ -490,8 +481,7 @@ void announce_remote(void) pstring s2; struct in_addr addr; char *comment,*workgroup; - int stype = SV_TYPE_WORKSTATION | SV_TYPE_SERVER | SV_TYPE_PRINTQ_SERVER | - SV_TYPE_SERVER_UNIX; + int stype = DFLT_SERVER_TYPE; if (last_time && t < last_time + REMOTE_ANNOUNCE_INTERVAL) return; |