X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fcmd.c;h=217d45a2577f8f67df59cb5d65093f96e6caad24;hb=d4769e1418514c6320ff16b2585562308f108c90;hp=73b4ce3a1d7acd47e040e67ace0e930f704b5949;hpb=135347bd92b3e432a973613e0e673db3b50e6044;p=lttng-tools.git diff --git a/src/bin/lttng-sessiond/cmd.c b/src/bin/lttng-sessiond/cmd.c index 73b4ce3a1..217d45a25 100644 --- a/src/bin/lttng-sessiond/cmd.c +++ b/src/bin/lttng-sessiond/cmd.c @@ -1575,7 +1575,7 @@ int cmd_enable_event(struct ltt_session *session, struct lttng_domain *domain, if (!agt) { agt = agent_create(domain->type); if (!agt) { - ret = -LTTNG_ERR_NOMEM; + ret = LTTNG_ERR_NOMEM; goto error; } agent_add(agt, usess->agents); @@ -1587,7 +1587,7 @@ int cmd_enable_event(struct ltt_session *session, struct lttng_domain *domain, uevent.loglevel_type = LTTNG_EVENT_LOGLEVEL_ALL; default_event_name = event_get_default_agent_ust_name(domain->type); if (!default_event_name) { - ret = -LTTNG_ERR_FATAL; + ret = LTTNG_ERR_FATAL; goto error; } strncpy(uevent.name, default_event_name, sizeof(uevent.name)); @@ -1609,26 +1609,40 @@ int cmd_enable_event(struct ltt_session *session, struct lttng_domain *domain, { struct lttng_filter_bytecode *filter_copy = NULL; + char *filter_expression_copy = NULL; if (filter) { filter_copy = zmalloc( sizeof(struct lttng_filter_bytecode) + filter->len); if (!filter_copy) { + ret = LTTNG_ERR_NOMEM; goto error; } memcpy(filter_copy, filter, - sizeof(struct lttng_filter_bytecode) - + filter->len); + sizeof(struct lttng_filter_bytecode) + + filter->len); + } + + if (filter_expression) { + filter_expression_copy = + strdup(filter_expression); + if (!filter_expression) { + ret = LTTNG_ERR_NOMEM; + goto error_free_copy; + } } ret = cmd_enable_event(session, &tmp_dom, (char *) default_chan_name, - &uevent, filter_expression, filter_copy, - NULL, wpipe); - /* We have passed ownership */ - filter_expression = NULL; + &uevent, filter_expression_copy, + filter_copy, NULL, wpipe); + filter_copy = NULL; + filter_expression_copy = NULL; +error_free_copy: + free(filter_copy); + free(filter_expression_copy); } if (ret != LTTNG_OK && ret != LTTNG_ERR_UST_EVENT_ENABLED) { @@ -1637,10 +1651,12 @@ int cmd_enable_event(struct ltt_session *session, struct lttng_domain *domain, /* The wild card * means that everything should be enabled. */ if (strncmp(event->name, "*", 1) == 0 && strlen(event->name) == 1) { - ret = event_agent_enable_all(usess, agt, event, filter); + ret = event_agent_enable_all(usess, agt, event, filter, + filter_expression); filter = NULL; } else { - ret = event_agent_enable(usess, agt, event, filter); + ret = event_agent_enable(usess, agt, event, filter, + filter_expression); filter = NULL; } if (ret != LTTNG_OK) { @@ -2436,6 +2452,10 @@ ssize_t cmd_list_domains(struct ltt_session *session, if (session->kernel_session != NULL) { (*domains)[index].type = LTTNG_DOMAIN_KERNEL; + + /* Kernel session buffer type is always GLOBAL */ + (*domains)[index].buf_type = LTTNG_BUFFER_GLOBAL; + index++; } @@ -3134,7 +3154,7 @@ int cmd_snapshot_record(struct ltt_session *session, int ret = LTTNG_OK; unsigned int use_tmp_output = 0; struct snapshot_output tmp_output; - unsigned int nb_streams, snapshot_success = 0; + unsigned int snapshot_success = 0; assert(session); assert(output);