summaryrefslogtreecommitdiffstats
path: root/source/nameannounce.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>1996-08-21 06:09:00 +0000
committerAndrew Tridgell <tridge@samba.org>1996-08-21 06:09:00 +0000
commiteb84f2f342375439d94481a0ccf47c9593544e32 (patch)
tree132b11791f08d5be2316475d9dd0210499f87cb5 /source/nameannounce.c
parent48e623e2ea8101009586f09e8ee56d4529dc477f (diff)
downloadsamba-eb84f2f342375439d94481a0ccf47c9593544e32.tar.gz
samba-eb84f2f342375439d94481a0ccf47c9593544e32.tar.xz
samba-eb84f2f342375439d94481a0ccf47c9593544e32.zip
- 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.c14
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;