summaryrefslogtreecommitdiff
path: root/source3/nmbd/nmbd_elections.c
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2000-09-12 06:13:25 +0000
committerAndrew Tridgell <tridge@samba.org>2000-09-12 06:13:25 +0000
commitf0ce4f7ae3b58f45b70598e3a44539e3e12291ce (patch)
tree35c9fea99d0325807f7044bf176047aa420cd17c /source3/nmbd/nmbd_elections.c
parenta19836ae5267fa967482f2baacd5e8cf8767bf79 (diff)
downloadsamba-f0ce4f7ae3b58f45b70598e3a44539e3e12291ce.tar.gz
samba-f0ce4f7ae3b58f45b70598e3a44539e3e12291ce.tar.bz2
samba-f0ce4f7ae3b58f45b70598e3a44539e3e12291ce.zip
- changed the msg_type to be an int instead of an enum so that it is
easier to add new message types to messages.h without breaking old binaries - added a MSG_FORCE_ELECTION message to force nmbd to hold an election (This used to be commit f1c49ca7ce56bc39259041a71479e84ebf53eeca)
Diffstat (limited to 'source3/nmbd/nmbd_elections.c')
-rw-r--r--source3/nmbd/nmbd_elections.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/source3/nmbd/nmbd_elections.c b/source3/nmbd/nmbd_elections.c
index be38b572f6..522e268ae7 100644
--- a/source3/nmbd/nmbd_elections.c
+++ b/source3/nmbd/nmbd_elections.c
@@ -381,3 +381,24 @@ yet registered on subnet %s\n", nmb_namestr(&nmbname), subrec->subnet_name ));
}
return run_any_election;
}
+
+
+
+/****************************************************************************
+process a internal Samba message forcing an election
+***************************************************************************/
+void nmbd_message_election(int msg_type, pid_t src, void *buf, size_t len)
+{
+ struct subnet_record *subrec;
+
+ for (subrec = FIRST_SUBNET; subrec; subrec = NEXT_SUBNET_EXCLUDING_UNICAST(subrec)) {
+ struct work_record *work;
+ for (work = subrec->workgrouplist; work; work = work->next) {
+ if (strequal(work->work_group, global_myworkgroup)) {
+ work->needelection = True;
+ work->ElectionCount=0;
+ work->mst_state = lp_local_master() ? MST_POTENTIAL : MST_NONE;
+ }
+ }
+ }
+}