summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>2007-04-16 00:29:13 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 14:50:40 -0500
commit71c5586d306d52f0ca96c2aa8c7ecd5d79005a1d (patch)
tree600993dac1d1394407e0849381c9a62997fc5638
parentc9f04d8648cfdd573d45d47467bc964ef01f754d (diff)
downloadsamba-71c5586d306d52f0ca96c2aa8c7ecd5d79005a1d.tar.gz
samba-71c5586d306d52f0ca96c2aa8c7ecd5d79005a1d.tar.bz2
samba-71c5586d306d52f0ca96c2aa8c7ecd5d79005a1d.zip
r22232: add a special message handler ID meaning "all messages please"
This better fits the way Samba4 does message dispatch (This used to be commit 2c12f8e72fb999f4f66700291dd4d7f6f73a8eae)
-rw-r--r--source4/cluster/ctdb/common/ctdb_message.c2
-rw-r--r--source4/cluster/ctdb/ctdb_cluster.c4
-rw-r--r--source4/cluster/ctdb/include/ctdb.h5
3 files changed, 8 insertions, 3 deletions
diff --git a/source4/cluster/ctdb/common/ctdb_message.c b/source4/cluster/ctdb/common/ctdb_message.c
index dba15aecb9..ad88ec22d2 100644
--- a/source4/cluster/ctdb/common/ctdb_message.c
+++ b/source4/cluster/ctdb/common/ctdb_message.c
@@ -39,7 +39,7 @@ static int ctdb_dispatch_message(struct ctdb_context *ctdb, uint32_t srvid, TDB_
/* XXX we need a must faster way of finding the matching srvid
- maybe a tree? */
for (ml=ctdb->message_list;ml;ml=ml->next) {
- if (ml->srvid == srvid) break;
+ if (ml->srvid == srvid || ml->srvid == CTDB_SRVID_ALL) break;
}
if (ml == NULL) {
printf("daemon vnn:%d no msg handler for srvid=%u\n", ctdb_get_vnn(ctdb), srvid);
diff --git a/source4/cluster/ctdb/ctdb_cluster.c b/source4/cluster/ctdb/ctdb_cluster.c
index aee47c6281..82eea6a3d4 100644
--- a/source4/cluster/ctdb/ctdb_cluster.c
+++ b/source4/cluster/ctdb/ctdb_cluster.c
@@ -144,8 +144,8 @@ static NTSTATUS ctdb_message_init(struct cluster_ops *ops,
int ret;
/* setup messaging handler */
- ret = ctdb_set_message_handler(state->ctdb, ctdb_message_handler,
- server.id, state);
+ ret = ctdb_set_message_handler(state->ctdb, CTDB_SRVID_ALL,
+ ctdb_message_handler, state);
if (ret == -1) {
DEBUG(0,("ctdb_set_message_handler failed - %s\n",
ctdb_errstr(state->ctdb)));
diff --git a/source4/cluster/ctdb/include/ctdb.h b/source4/cluster/ctdb/include/ctdb.h
index d5a1b581e5..f24f1000a4 100644
--- a/source4/cluster/ctdb/include/ctdb.h
+++ b/source4/cluster/ctdb/include/ctdb.h
@@ -56,6 +56,11 @@ struct ctdb_call_info {
#define CTDB_FLAG_CONNECT_WAIT (1<<2)
+/*
+ a message handler ID meaning "give me all messages"
+ */
+#define CTDB_SRVID_ALL 0xFFFFFFFF
+
struct event_context;
/*