When assigning the single-public-ip during startup,
authorRonnie Sahlberg <ronniesahlberg@gmail.com>
Sun, 12 Dec 2010 03:22:20 +0000 (14:22 +1100)
committerRonnie Sahlberg <ronniesahlberg@gmail.com>
Sun, 12 Dec 2010 03:22:20 +0000 (14:22 +1100)
flag the interface as initially being "link ok"
so that we can add it and startup.

The eventscript can later drop the flag if required

server/ctdb_takeover.c

index 682d17ba1d06fa791322519d1c525bf278516ba2..e3e6787c86974572e44b0ffe5ba1217faf582ee1 100644 (file)
@@ -1000,6 +1000,7 @@ int ctdb_set_single_public_ip(struct ctdb_context *ctdb,
                              const char *ip)
 {
        struct ctdb_vnn *svnn;
+       struct ctdb_iface *cur = NULL;
        bool ok;
        int ret;
 
@@ -1028,6 +1029,14 @@ int ctdb_set_single_public_ip(struct ctdb_context *ctdb,
                return -1;
        }
 
+       /* assume the single public ip interface is initially "good" */
+       cur = ctdb_find_iface(ctdb, iface);
+       if (cur == NULL) {
+               DEBUG(DEBUG_CRIT,("Can not find public interface %s used by --single-public-ip", iface));
+               return -1;
+       }
+       cur->link_up = true;
+
        ret = ctdb_vnn_assign_iface(ctdb, svnn);
        if (ret != 0) {
                talloc_free(svnn);