Propagate error for clear command
[lttng-tools.git] / src / bin / lttng-relayd / main.c
index 0e95c948173659496c476823a330af4ab9f37ad2..c9b3c9f549e8bc4e1abe058de5c553d24f157dab 100644 (file)
@@ -1463,6 +1463,8 @@ int relay_clear_session(const struct lttcomm_relayd_hdr *recv_hdr,
        struct relay_session *session = conn->session;
        struct lttcomm_relayd_generic_reply reply;
 
+       memset(&reply, 0, sizeof(reply));
+
        DBG("Clear session received");
 
        if (!session || !conn->version_check_done) {
@@ -1473,17 +1475,17 @@ int relay_clear_session(const struct lttcomm_relayd_hdr *recv_hdr,
 
        if (!opt_allow_clear) {
                ERR("Trying to clear session, but clear is disallowed.");
-               ret = -1;
-               goto end_no_session;
+               ret = 0;
+               reply.ret_code = htobe32(LTTNG_ERR_CLEAR_RELAY_DISALLOW);
+               goto reply;
        }
        ret = session_clear(session);
-
-       memset(&reply, 0, sizeof(reply));
        if (ret < 0) {
                reply.ret_code = htobe32(LTTNG_ERR_UNK);
        } else {
                reply.ret_code = htobe32(LTTNG_OK);
        }
+reply:
        send_ret = conn->sock->ops->sendmsg(conn->sock, &reply,
                        sizeof(struct lttcomm_relayd_generic_reply), 0);
        if (send_ret < (ssize_t) sizeof(reply)) {
This page took 0.025527 seconds and 5 git commands to generate.