The branch, master has been updated
       via  1261f3d9702800a4e59550c881350daf479f00ef (commit)
      from  2ce34e50d057ba95249117a581658a5ad7e8eb60 (commit)

http://gitweb.samba.org/?p=sahlberg/ctdb.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 1261f3d9702800a4e59550c881350daf479f00ef
Author: Ronnie Sahlberg <[email protected]>
Date:   Mon Sep 13 15:42:00 2010 +1000

    add a new serverid to send a message everytime an ip address is taken on 
the local node

-----------------------------------------------------------------------

Summary of changes:
 include/ctdb_protocol.h |    5 +++++
 server/ctdb_takeover.c  |    8 ++++++++
 2 files changed, 13 insertions(+), 0 deletions(-)


Changeset truncated at 500 lines:

diff --git a/include/ctdb_protocol.h b/include/ctdb_protocol.h
index 4cd3fca..a9f6249 100644
--- a/include/ctdb_protocol.h
+++ b/include/ctdb_protocol.h
@@ -85,6 +85,11 @@ struct ctdb_call_info {
 #define CTDB_SRVID_RELEASE_IP 0xF300000000000000LL
 
 /*
+   a message handler ID meaning that an IP address has been taken
+ */
+#define CTDB_SRVID_TAKE_IP 0xF301000000000000LL
+
+/*
    a message ID to set the node flags in the recovery daemon
  */
 #define CTDB_SRVID_SET_NODE_FLAGS 0xF400000000000000LL
diff --git a/server/ctdb_takeover.c b/server/ctdb_takeover.c
index 1931294..d7fb5ad 100644
--- a/server/ctdb_takeover.c
+++ b/server/ctdb_takeover.c
@@ -331,6 +331,7 @@ static void ctdb_do_takeip_callback(struct ctdb_context 
*ctdb, int status,
        struct ctdb_do_takeip_state *state =
                talloc_get_type(private_data, struct ctdb_do_takeip_state);
        int32_t ret;
+       TDB_DATA data;
 
        if (status != 0) {
                if (status == -ETIME) {
@@ -351,6 +352,13 @@ static void ctdb_do_takeip_callback(struct ctdb_context 
*ctdb, int status,
                return;
        }
 
+       data.dptr  = (uint8_t *)ctdb_addr_to_str(&state->vnn->public_address);
+       data.dsize = strlen((char *)data.dptr) + 1;
+       DEBUG(DEBUG_INFO,(__location__ " sending TAKE_IP for '%s'\n", 
data.dptr));
+
+       ctdb_daemon_send_message(ctdb, ctdb->pnn, CTDB_SRVID_TAKE_IP, data);
+
+
        /* the control succeeded */
        ctdb_request_control_reply(ctdb, state->c, NULL, 0, NULL);
        talloc_free(state);


-- 
CTDB repository

Reply via email to