Move health comm to health-internal.h
[lttng-tools.git] / src / lib / lttng-ctl / lttng-ctl.c
index bff522201233db0a5e6551e160becfb78a0e1260..0efc1591510fbff0b1eebf8f4e0bd313166204a6 100644 (file)
@@ -34,6 +34,7 @@
 #include <common/uri.h>
 #include <common/utils.h>
 #include <lttng/lttng.h>
+#include <lttng/health-internal.h>
 
 #include "filter/filter-ast.h"
 #include "filter/filter-parser.h"
@@ -1365,45 +1366,37 @@ int lttng_disable_consumer(struct lttng_handle *handle)
  * Set health socket path by putting it in the global health_sock_path
  * variable.
  *
- * Returns 0 on success or assert(0) on ENOMEM.
+ * Returns 0 on success or -ENOMEM.
  */
 static int set_health_socket_path(void)
 {
-       int in_tgroup = 0;      /* In tracing group */
        uid_t uid;
        const char *home;
+       int ret;
 
        uid = getuid();
 
-       if (uid != 0) {
-               /* Are we in the tracing group ? */
-               in_tgroup = check_tracing_group(tracing_group);
-       }
-
-       if ((uid == 0) || in_tgroup) {
+       if (uid == 0 || check_tracing_group(tracing_group)) {
                lttng_ctl_copy_string(health_sock_path,
                                DEFAULT_GLOBAL_HEALTH_UNIX_SOCK, sizeof(health_sock_path));
+               return 0;
        }
 
-       if (uid != 0) {
-               int ret;
-
-               /*
-                * With GNU C <  2.1, snprintf returns -1 if the target buffer is too small;
-                * With GNU C >= 2.1, snprintf returns the required size (excluding closing null)
-                */
-               home = utils_get_home_dir();
-               if (home == NULL) {
-                       /* Fallback in /tmp .. */
-                       home = "/tmp";
-               }
+       /*
+        * With GNU C <  2.1, snprintf returns -1 if the target buffer
+        * is too small; With GNU C >= 2.1, snprintf returns the
+        * required size (excluding closing null).
+        */
+       home = utils_get_home_dir();
+       if (home == NULL) {
+               /* Fallback in /tmp */
+               home = "/tmp";
+       }
 
-               ret = snprintf(health_sock_path, sizeof(health_sock_path),
-                               DEFAULT_HOME_HEALTH_UNIX_SOCK, home);
-               if ((ret < 0) || (ret >= sizeof(health_sock_path))) {
-                       /* ENOMEM at this point... just kill the control lib. */
-                       assert(0);
-               }
+       ret = snprintf(health_sock_path, sizeof(health_sock_path),
+                       DEFAULT_HOME_HEALTH_UNIX_SOCK, home);
+       if ((ret < 0) || (ret >= sizeof(health_sock_path))) {
+               return -ENOMEM;
        }
 
        return 0;
@@ -1420,8 +1413,8 @@ static int set_health_socket_path(void)
 int lttng_health_check(enum lttng_health_component c)
 {
        int sock, ret;
-       struct lttcomm_health_msg msg;
-       struct lttcomm_health_data reply;
+       struct health_comm_msg msg;
+       struct health_comm_reply reply;
 
        /* Connect to the sesssion daemon */
        sock = lttcomm_connect_unix_sock(health_sock_path);
@@ -1430,7 +1423,7 @@ int lttng_health_check(enum lttng_health_component c)
                goto error;
        }
 
-       msg.cmd = LTTNG_HEALTH_CHECK;
+       msg.cmd = HEALTH_CMD_CHECK;
        msg.component = c;
 
        ret = lttcomm_send_unix_sock(sock, (void *)&msg, sizeof(msg));
@@ -1649,7 +1642,9 @@ static void __attribute__((constructor)) init()
        /* Set default session group */
        lttng_set_tracing_group(DEFAULT_TRACING_GROUP);
        /* Set socket for health check */
-       (void) set_health_socket_path();
+       if (set_health_socket_path()) {
+               abort();
+       }
 }
 
 /*
This page took 0.026017 seconds and 5 git commands to generate.