summaryrefslogtreecommitdiff
path: root/source/namedbwork.c
diff options
context:
space:
mode:
Diffstat (limited to 'source/namedbwork.c')
-rw-r--r--source/namedbwork.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/source/namedbwork.c b/source/namedbwork.c
index 200132304b0..04f2103254b 100644
--- a/source/namedbwork.c
+++ b/source/namedbwork.c
@@ -38,13 +38,10 @@ extern int DEBUGLEVEL;
/* this is our domain/workgroup/server database */
extern struct subnet_record *subnetlist;
-int workgroup_count = 0; /* unique index key: one for each workgroup */
+extern struct in_addr ipgrp;
-/* what server type are we currently */
+int workgroup_count = 0; /* unique index key: one for each workgroup */
-#define DFLT_SERVER_TYPE (SV_TYPE_WORKSTATION | SV_TYPE_SERVER | \
- SV_TYPE_TIME_SOURCE | SV_TYPE_SERVER_UNIX | \
- SV_TYPE_PRINTQ_SERVER | SV_TYPE_POTENTIAL_BROWSER)
/****************************************************************************
@@ -89,7 +86,7 @@ static struct work_record *make_workgroup(char *name)
StrnCpy(work->work_group,name,sizeof(work->work_group)-1);
work->serverlist = NULL;
- work->ServerType = DFLT_SERVER_TYPE;
+ work->ServerType = DFLT_SERVER_TYPE | SV_TYPE_POTENTIAL_BROWSER;
work->RunningElection = False;
work->ElectionCount = 0;
work->needelection = False;
@@ -202,7 +199,8 @@ struct work_record *find_workgroupstruct(struct subnet_record *d,
if ((work = make_workgroup(name)))
{
- if (lp_preferred_master() &&
+ if (!ip_equal(d->bcast_ip, ipgrp) &&
+ lp_preferred_master() &&
strequal(lp_workgroup(), name))
{
DEBUG(3, ("preferred master startup for %s\n", work->work_group));