Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
struct relay_session *session = conn->session;
struct lttcomm_relayd_generic_reply reply;
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) {
DBG("Clear session received");
if (!session || !conn->version_check_done) {
if (!opt_allow_clear) {
ERR("Trying to clear session, but clear is disallowed.");
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);
}
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);
}
if (ret < 0) {
reply.ret_code = htobe32(LTTNG_ERR_UNK);
} else {
reply.ret_code = htobe32(LTTNG_OK);
}
send_ret = conn->sock->ops->sendmsg(conn->sock, &reply,
sizeof(struct lttcomm_relayd_generic_reply), 0);
if (send_ret < (ssize_t) sizeof(reply)) {
send_ret = conn->sock->ops->sendmsg(conn->sock, &reply,
sizeof(struct lttcomm_relayd_generic_reply), 0);
if (send_ret < (ssize_t) sizeof(reply)) {
*/
ret = consumer_clear_session(session);
if (ret < 0) {
*/
ret = consumer_clear_session(session);
if (ret < 0) {
- ret = LTTNG_ERR_CLEAR_FAIL_CONSUMER;
goto error;
}
ret = LTTNG_OK;
goto error;
}
ret = LTTNG_OK;
ret = 0;
} else {
ret = -reply.ret_code;
ret = 0;
} else {
ret = -reply.ret_code;
- DBG("Consumer ret code %d", ret);
case LTTNG_CLEAR_SESSION:
{
ret = cmd_clear_session(cmd_ctx->session);
case LTTNG_CLEAR_SESSION:
{
ret = cmd_clear_session(cmd_ctx->session);
- if (ret != LTTNG_OK) {
- goto error;
- }
}
ret = relayd_clear_session(&relayd->control_sock);
if (ret < 0) {
}
ret = relayd_clear_session(&relayd->control_sock);
if (ret < 0) {
- ret = LTTCOMM_CONSUMERD_FATAL;
goto end;
}
break; /* Stop after first match. */
goto end;
}
break; /* Stop after first match. */
reply.ret_code = be32toh(reply.ret_code);
reply.ret_code = be32toh(reply.ret_code);
- /* Return session id or negative ret code. */
+ /* Return 0 if OK, or negative ret code. */
if (reply.ret_code != LTTNG_OK) {
if (reply.ret_code != LTTNG_OK) {
- ret = -1;
- ERR("Relayd clear session replied error %d", reply.ret_code);
+ ret = -reply.ret_code;
+ DBG("Relayd clear session failed");
} else {
/* Success */
ret = 0;
} else {
/* Success */
ret = 0;
+ DBG("Relayd clear session successful");
- DBG("Relayd clear session successful");
-