From: David Disseldorp Date: Mon, 8 Aug 2011 12:09:46 +0000 (+0200) Subject: client: add req timeout argument to ctdb_cmdline_client X-Git-Url: http://git.samba.org/?p=sahlberg%2Fctdb.git;a=commitdiff_plain;h=0634d0305f42f17048b6830733767e8dc300e11c client: add req timeout argument to ctdb_cmdline_client Following connection to the local ctdbd, ctdb_cmdline_client() currently issues a CTDB_CONTROL_GET_PNN request with a fixed 3 second timeout. The ctdb cmd line client accepts a --timelimit argument for specifying a per request timeout, pass this value through to ctdb_cmdline_client() for use as a CTDB_CONTROL_GET_PNN request timeout. --- diff --git a/common/cmdline.c b/common/cmdline.c index 145a13a8..5c00763e 100644 --- a/common/cmdline.c +++ b/common/cmdline.c @@ -111,7 +111,8 @@ struct ctdb_context *ctdb_cmdline_init(struct event_context *ev) /* startup a client only ctdb context */ -struct ctdb_context *ctdb_cmdline_client(struct event_context *ev) +struct ctdb_context *ctdb_cmdline_client(struct tevent_context *ev, + struct timeval req_timeout) { struct ctdb_context *ctdb; char *socket_name; @@ -152,7 +153,7 @@ struct ctdb_context *ctdb_cmdline_client(struct event_context *ev) } /* get our pnn */ - ctdb->pnn = ctdb_ctrl_getpnn(ctdb, timeval_current_ofs(3, 0), CTDB_CURRENT_NODE); + ctdb->pnn = ctdb_ctrl_getpnn(ctdb, req_timeout, CTDB_CURRENT_NODE); if (ctdb->pnn == (uint32_t)-1) { DEBUG(DEBUG_CRIT,(__location__ " Failed to get ctdb pnn\n")); talloc_free(ctdb); diff --git a/include/ctdb_client.h b/include/ctdb_client.h index 3dc115f0..baa720de 100644 --- a/include/ctdb_client.h +++ b/include/ctdb_client.h @@ -188,7 +188,8 @@ int ctdb_register_message_handler(struct ctdb_context *ctdb, struct ctdb_db_context *find_ctdb_db(struct ctdb_context *ctdb, uint32_t id); -struct ctdb_context *ctdb_cmdline_client(struct tevent_context *ev); +struct ctdb_context *ctdb_cmdline_client(struct tevent_context *ev, + struct timeval req_timeout); struct ctdb_statistics; int ctdb_ctrl_statistics(struct ctdb_context *ctdb, uint32_t destnode, struct ctdb_statistics *status); diff --git a/tests/src/ctdb_bench.c b/tests/src/ctdb_bench.c index 6d812237..cdd176ac 100644 --- a/tests/src/ctdb_bench.c +++ b/tests/src/ctdb_bench.c @@ -222,7 +222,7 @@ int main(int argc, const char *argv[]) ev = event_context_init(NULL); /* initialise ctdb */ - ctdb = ctdb_cmdline_client(ev); + ctdb = ctdb_cmdline_client(ev, timeval_current_ofs(3, 0)); /* attach to a specific database */ ctdb_db = ctdb_attach(ctdb, "test.tdb", false, 0); diff --git a/tests/src/ctdb_fetch.c b/tests/src/ctdb_fetch.c index a8f38eee..b97e2ef0 100644 --- a/tests/src/ctdb_fetch.c +++ b/tests/src/ctdb_fetch.c @@ -207,7 +207,7 @@ int main(int argc, const char *argv[]) ev = event_context_init(NULL); - ctdb = ctdb_cmdline_client(ev); + ctdb = ctdb_cmdline_client(ev, timeval_current_ofs(3, 0)); if (ctdb == NULL) { printf("failed to connect to ctdb daemon.\n"); diff --git a/tests/src/ctdb_fetch_one.c b/tests/src/ctdb_fetch_one.c index 7348aa69..f8fa4666 100644 --- a/tests/src/ctdb_fetch_one.c +++ b/tests/src/ctdb_fetch_one.c @@ -114,7 +114,7 @@ int main(int argc, const char *argv[]) ev = event_context_init(NULL); - ctdb = ctdb_cmdline_client(ev); + ctdb = ctdb_cmdline_client(ev, timeval_current_ofs(3, 0)); if (ctdb == NULL) { printf("failed to connect to ctdb deamon.\n"); diff --git a/tests/src/ctdb_persistent.c b/tests/src/ctdb_persistent.c index 6074b6a1..bf975c61 100644 --- a/tests/src/ctdb_persistent.c +++ b/tests/src/ctdb_persistent.c @@ -220,7 +220,7 @@ int main(int argc, const char *argv[]) ev = event_context_init(NULL); - ctdb = ctdb_cmdline_client(ev); + ctdb = ctdb_cmdline_client(ev, timeval_current_ofs(3, 0)); if (ctdb == NULL) { printf("Could not attach to daemon\n"); return 1; diff --git a/tests/src/ctdb_randrec.c b/tests/src/ctdb_randrec.c index 5b7eef83..128ffc87 100644 --- a/tests/src/ctdb_randrec.c +++ b/tests/src/ctdb_randrec.c @@ -181,7 +181,7 @@ int main(int argc, const char *argv[]) ev = event_context_init(NULL); - ctdb = ctdb_cmdline_client(ev); + ctdb = ctdb_cmdline_client(ev, timeval_current_ofs(3, 0)); if (ctdb == NULL) { printf("failed to connect to daemon\n"); diff --git a/tests/src/ctdb_store.c b/tests/src/ctdb_store.c index 82669b7b..ea1486c0 100644 --- a/tests/src/ctdb_store.c +++ b/tests/src/ctdb_store.c @@ -136,7 +136,7 @@ int main(int argc, const char *argv[]) ev = event_context_init(NULL); - ctdb = ctdb_cmdline_client(ev); + ctdb = ctdb_cmdline_client(ev, timeval_current_ofs(3, 0)); if (ctdb == NULL) { printf("failed to connect to ctdb daemon.\n"); diff --git a/tests/src/ctdb_transaction.c b/tests/src/ctdb_transaction.c index 39e40dd1..1eba5c86 100644 --- a/tests/src/ctdb_transaction.c +++ b/tests/src/ctdb_transaction.c @@ -252,7 +252,7 @@ int main(int argc, const char *argv[]) ev = event_context_init(NULL); - ctdb = ctdb_cmdline_client(ev); + ctdb = ctdb_cmdline_client(ev, timeval_current_ofs(3, 0)); if (ctdb == NULL) { DEBUG(DEBUG_ERR, ("Could not attach to daemon\n")); return 1; diff --git a/tests/src/ctdb_traverse.c b/tests/src/ctdb_traverse.c index c4510e43..4d523f27 100644 --- a/tests/src/ctdb_traverse.c +++ b/tests/src/ctdb_traverse.c @@ -89,7 +89,7 @@ int main(int argc, const char *argv[]) ev = event_context_init(NULL); - ctdb = ctdb_cmdline_client(ev); + ctdb = ctdb_cmdline_client(ev, timeval_current_ofs(3, 0)); /* attach to a specific database */ ctdb_db = ctdb_attach(ctdb, dbname, false, 0); diff --git a/tools/ctdb.c b/tools/ctdb.c index 8528de70..e9c8b914 100644 --- a/tools/ctdb.c +++ b/tools/ctdb.c @@ -5134,7 +5134,7 @@ int main(int argc, const char *argv[]) } /* initialise ctdb */ - ctdb = ctdb_cmdline_client(ev); + ctdb = ctdb_cmdline_client(ev, TIMELIMIT()); if (ctdb_commands[i].without_daemon == false) { const char *socket_name;