Fix handling of sessiond respawn after a SIGKILL
[lttng-tools.git] / liblttngctl / liblttngctl.c
index 37e202f2c35f7f1a099a50d7f9b4fa91524bf79d..2464bce3b2d1eb30ab0252a2fc4f224a5a85b0c0 100644 (file)
@@ -575,6 +575,22 @@ int lttng_set_tracing_group(const char *name)
        return 0;
 }
 
        return 0;
 }
 
+/*
+ *  lttng_calibrate
+ */
+int lttng_calibrate(struct lttng_domain *domain,
+               struct lttng_calibrate *calibrate)
+{
+       int ret;
+
+       copy_lttng_domain(domain);
+
+       memcpy(&lsm.u.calibrate, calibrate, sizeof(struct lttng_calibrate));
+       ret = ask_sessiond(LTTNG_CALIBRATE, NULL);
+
+       return ret;
+}
+
 /*
  *  lttng_check_session_daemon
  *
 /*
  *  lttng_check_session_daemon
  *
@@ -592,13 +608,22 @@ int lttng_session_daemon_alive(void)
                return ret;
        }
 
                return ret;
        }
 
-       /* If socket exist, we consider the daemon started */
+       /* If socket exist, we check if the daemon listens to connect. */
        ret = access(sessiond_sock_path, F_OK);
        if (ret < 0) {
                /* Not alive */
                return 0;
        }
 
        ret = access(sessiond_sock_path, F_OK);
        if (ret < 0) {
                /* Not alive */
                return 0;
        }
 
+       ret = lttcomm_connect_unix_sock(sessiond_sock_path);
+       if (ret < 0) {
+               /* Not alive */
+               return 0;
+       }
+       ret = lttcomm_close_unix_sock(ret);
+       if (ret < 0)
+               perror("lttcomm_close_unix_sock");
+
        /* Is alive */
        return 1;
 }
        /* Is alive */
        return 1;
 }
This page took 0.025723 seconds and 4 git commands to generate.