eventscript: expost ctdb_ban_self()
authorRusty Russell <rusty@rustcorp.com.au>
Mon, 7 Dec 2009 12:48:40 +0000 (23:18 +1030)
committerRusty Russell <rusty@rustcorp.com.au>
Mon, 7 Dec 2009 12:48:40 +0000 (23:18 +1030)
eventscript.c uses this now, but our next patch makes others use it.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
include/ctdb_private.h
server/ctdb_banning.c
server/eventscript.c

index 4eb7decf05e2b6e7f38ae616248cb09847765795..a6cbf716f99ca7f6cf460a4713a6ca9108a46e50 100644 (file)
@@ -1535,6 +1535,7 @@ int32_t ctdb_control_disable_script(struct ctdb_context *ctdb, TDB_DATA indata);
 int32_t ctdb_control_set_ban_state(struct ctdb_context *ctdb, TDB_DATA indata);
 int32_t ctdb_control_get_ban_state(struct ctdb_context *ctdb, TDB_DATA *outdata);
 int32_t ctdb_control_set_db_priority(struct ctdb_context *ctdb, TDB_DATA indata);
+void ctdb_ban_self(struct ctdb_context *ctdb);
 
 int32_t ctdb_control_register_notify(struct ctdb_context *ctdb, uint32_t client_id, TDB_DATA indata);
 
index 5dfcef1f88d80c86b64d98052762200decdc960b..a46f60b40f9a760b78c18ce9ae91c16f29977022 100644 (file)
@@ -119,3 +119,18 @@ int32_t ctdb_control_get_ban_state(struct ctdb_context *ctdb, TDB_DATA *outdata)
 
        return 0;
 }
+
+/* Routine to ban ourselves for a while when trouble strikes. */
+void ctdb_ban_self(struct ctdb_context *ctdb)
+{
+       TDB_DATA data;
+       struct ctdb_ban_time bantime;
+
+       bantime.pnn  = ctdb->pnn;
+       bantime.time = ctdb->tunable.recovery_ban_period;
+
+       data.dsize = sizeof(bantime);
+       data.dptr  = (uint8_t *)&bantime;
+
+       ctdb_control_set_ban_state(ctdb, data);
+}
index f24f13bedc866ab8a16591ebfb9d5aee3f7d0914..a6d3950bada07b9b454c3b6e24527697eff914cb 100644 (file)
@@ -623,21 +623,6 @@ static void ctdb_event_script_handler(struct event_context *ev, struct fd_event
        talloc_free(state);
 }
 
-static void ctdb_ban_self(struct ctdb_context *ctdb, uint32_t ban_period)
-{
-       TDB_DATA data;
-       struct ctdb_ban_time bantime;
-
-       bantime.pnn  = ctdb->pnn;
-       bantime.time = ban_period;
-
-       data.dsize = sizeof(bantime);
-       data.dptr  = (uint8_t *)&bantime;
-
-       ctdb_control_set_ban_state(ctdb, data);
-}
-
-
 /* called when child times out */
 static void ctdb_event_script_timeout(struct event_context *ev, struct timed_event *te, 
                                      struct timeval t, void *p)
@@ -680,7 +665,7 @@ static void ctdb_event_script_timeout(struct event_context *ev, struct timed_eve
                */
                DEBUG(DEBUG_ERR, (__location__ " eventscript for NON-monitor/NON-startup event timedout. Immediately banning ourself for %d seconds\n", ctdb->tunable.recovery_ban_period));
 
-               ctdb_ban_self(ctdb, ctdb->tunable.recovery_ban_period);
+               ctdb_ban_self(ctdb);
 
                state->cb_status = -ETIME;
        }