ctdb-common: Reimplement external tracing using ctdb_set_helper()
authorMartin Schwenke <martin@meltin.net>
Sat, 7 Mar 2015 05:15:01 +0000 (16:15 +1100)
committerAmitay Isaacs <amitay@samba.org>
Sun, 10 May 2015 01:22:13 +0000 (03:22 +0200)
Signed-off-by: Martin Schwenke <martin@meltin.net>
Reviewed-by: Amitay Isaacs <amitay@gmail.com>
ctdb/common/ctdb_util.c

index 8e2e430da71857608ed3bb93f8636c47f14ed2c2..5d63c2729261a574417fb7a3993df3edbfd775f4 100644 (file)
@@ -134,14 +134,16 @@ bool ctdb_set_helper(const char *type, char *helper, size_t size,
 void ctdb_external_trace(void)
 {
        int ret;
-       const char * t = getenv("CTDB_EXTERNAL_TRACE");
+       static char external_trace[PATH_MAX+1] = "";
        char * cmd;
 
-       if (t == NULL) {
+       if (!ctdb_set_helper("external trace handler",
+                            external_trace, sizeof(external_trace),
+                            "CTDB_EXTERNAL_TRACE", NULL, NULL)) {
                return;
        }
 
-       cmd = talloc_asprintf(NULL, "%s %lu", t, (unsigned long) getpid());
+       cmd = talloc_asprintf(NULL, "%s %lu", external_trace, (unsigned long) getpid());
        DEBUG(DEBUG_WARNING,("begin external trace: %s\n", cmd));
        ret = system(cmd);
        if (ret == -1) {