X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fcmd.c;h=2e2ae6006023c13b8457b30071e1332fdf24ef14;hb=a3a86f35682d8dd69a617ded2777092de51fcf8c;hp=534f191a8b447d0763d56ec62d4aba42a0c3af70;hpb=dd73d57bb95fae31161ca0781108d166082a06f5;p=deliverable%2Flttng-tools.git diff --git a/src/bin/lttng-sessiond/cmd.c b/src/bin/lttng-sessiond/cmd.c index 534f191a8..2e2ae6006 100644 --- a/src/bin/lttng-sessiond/cmd.c +++ b/src/bin/lttng-sessiond/cmd.c @@ -47,7 +47,7 @@ #include "kernel-consumer.h" #include "lttng-sessiond.h" #include "utils.h" -#include "syscall.h" +#include "lttng-syscall.h" #include "agent.h" #include "buffer-registry.h" #include "notification-thread.h" @@ -55,6 +55,7 @@ #include "rotate.h" #include "rotation-thread.h" #include "sessiond-timer.h" +#include "agent-thread.h" #include "cmd.h" @@ -1384,9 +1385,15 @@ int cmd_enable_channel(struct ltt_session *session, break; } case LTTNG_DOMAIN_UST: + break; case LTTNG_DOMAIN_JUL: case LTTNG_DOMAIN_LOG4J: case LTTNG_DOMAIN_PYTHON: + if (!agent_tracing_is_enabled()) { + DBG("Attempted to enable a channel in an agent domain but the agent thread is not running"); + ret = LTTNG_ERR_AGENT_TRACING_DISABLED; + goto error; + } break; default: ret = LTTNG_ERR_UNKNOWN_DOMAIN; @@ -2094,6 +2101,12 @@ static int _cmd_enable_event(struct ltt_session *session, assert(usess); + if (!agent_tracing_is_enabled()) { + DBG("Attempted to enable an event in an agent domain but the agent thread is not running"); + ret = LTTNG_ERR_AGENT_TRACING_DISABLED; + goto error; + } + agt = trace_ust_find_agent(usess, domain->type); if (!agt) { agt = agent_create(domain->type); @@ -3671,10 +3684,12 @@ static int clear_metadata_file(int fd) { int ret; + off_t lseek_ret; - ret = lseek(fd, 0, SEEK_SET); - if (ret < 0) { + lseek_ret = lseek(fd, 0, SEEK_SET); + if (lseek_ret < 0) { PERROR("lseek"); + ret = -1; goto end; } @@ -4646,7 +4661,7 @@ int cmd_rotate_get_info(struct ltt_session *session, current_tracing_path_reply_len = sizeof(info_return->location.local.absolute_path); info_return->location_type = - (uint8_t) LTTNG_TRACE_ARCHIVE_LOCATION_TYPE_LOCAL; + (int8_t) LTTNG_TRACE_ARCHIVE_LOCATION_TYPE_LOCAL; break; case CONSUMER_DST_NET: current_tracing_path_reply = @@ -4655,7 +4670,7 @@ int cmd_rotate_get_info(struct ltt_session *session, sizeof(info_return->location.relay.relative_path); /* Currently the only supported relay protocol. */ info_return->location.relay.protocol = - (uint8_t) LTTNG_TRACE_ARCHIVE_LOCATION_RELAY_PROTOCOL_TYPE_TCP; + (int8_t) LTTNG_TRACE_ARCHIVE_LOCATION_RELAY_PROTOCOL_TYPE_TCP; ret = lttng_strncpy(info_return->location.relay.host, session_get_net_consumer_hostname(session), @@ -4671,7 +4686,7 @@ int cmd_rotate_get_info(struct ltt_session *session, &info_return->location.relay.ports.control, &info_return->location.relay.ports.data); info_return->location_type = - (uint8_t) LTTNG_TRACE_ARCHIVE_LOCATION_TYPE_RELAY; + (int8_t) LTTNG_TRACE_ARCHIVE_LOCATION_TYPE_RELAY; break; default: abort();