diff options
Diffstat (limited to 'source4')
-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; /* |