diff options
author | Andrew Tridgell <tridge@samba.org> | 2007-04-16 00:29:13 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:50:40 -0500 |
commit | 71c5586d306d52f0ca96c2aa8c7ecd5d79005a1d (patch) | |
tree | 600993dac1d1394407e0849381c9a62997fc5638 | |
parent | c9f04d8648cfdd573d45d47467bc964ef01f754d (diff) | |
download | samba-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.c | 2 | ||||
-rw-r--r-- | source4/cluster/ctdb/ctdb_cluster.c | 4 | ||||
-rw-r--r-- | source4/cluster/ctdb/include/ctdb.h | 5 |
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; /* |