r22232: add a special message handler ID meaning "all messages please"
authorAndrew Tridgell <tridge@samba.org>
Mon, 16 Apr 2007 00:29:13 +0000 (00:29 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 19:50:40 +0000 (14:50 -0500)
This better fits the way Samba4 does message dispatch

source/cluster/ctdb/common/ctdb_message.c
source/cluster/ctdb/ctdb_cluster.c
source/cluster/ctdb/include/ctdb.h

index dba15aecb9328b2a29ced404e5cdd5f54c29fe2a..ad88ec22d265d792de0109b97bb8b8da4d624cc9 100644 (file)
@@ -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);
index aee47c6281e1b9fd97e50311f5e4e58aa3dbe0ea..82eea6a3d46c79ef9867399a7ce74ee67c3fc6a8 100644 (file)
@@ -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)));
index d5a1b581e54bd266d48f3a7ae88c918b1ea6a75e..f24f1000a459bfc3616caa32f05d4529b083031d 100644 (file)
@@ -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;
 
 /*