*/
#define _GNU_SOURCE
+#define _LGPL_SOURCE
#include <assert.h>
#include <inttypes.h>
#include <urcu/list.h>
}
case LTTNG_DOMAIN_LOG4J:
case LTTNG_DOMAIN_JUL:
+ case LTTNG_DOMAIN_PYTHON:
{
struct agent *agt;
struct ltt_ust_session *usess = session->ust_session;
}
case LTTNG_DOMAIN_LOG4J:
case LTTNG_DOMAIN_JUL:
+ case LTTNG_DOMAIN_PYTHON:
{
const char *default_event_name, *default_chan_name;
struct agent *agt;
memcpy(&tmp_dom, domain, sizeof(tmp_dom));
tmp_dom.type = LTTNG_DOMAIN_UST;
- if (domain->type == LTTNG_DOMAIN_LOG4J) {
+ switch (domain->type) {
+ case LTTNG_DOMAIN_LOG4J:
default_chan_name = DEFAULT_LOG4J_CHANNEL_NAME;
- } else {
+ break;
+ case LTTNG_DOMAIN_JUL:
default_chan_name = DEFAULT_JUL_CHANNEL_NAME;
+ break;
+ case LTTNG_DOMAIN_PYTHON:
+ default_chan_name = DEFAULT_PYTHON_CHANNEL_NAME;
+ break;
+ default:
+ /* The switch/case we are in should avoid this else big problem */
+ assert(0);
}
ret = cmd_enable_event(session, &tmp_dom, (char *) default_chan_name,
break;
case LTTNG_DOMAIN_LOG4J:
case LTTNG_DOMAIN_JUL:
+ case LTTNG_DOMAIN_PYTHON:
nb_events = agent_list_events(events, domain);
if (nb_events < 0) {
ret = LTTNG_ERR_UST_LIST_FAIL;
* possible to enable channel thus inform the client.
*/
if (usess && usess->domain_global.channels) {
+ rcu_read_lock();
nb_chan += lttng_ht_get_count(usess->domain_global.channels);
+ rcu_read_unlock();
}
if (ksession) {
nb_chan += ksession->channel_count;
}
}
+ if (!nb_dom) {
+ goto end;
+ }
+
*domains = zmalloc(nb_dom * sizeof(struct lttng_domain));
if (*domains == NULL) {
ret = LTTNG_ERR_FATAL;
}
}
}
-
+end:
return nb_dom;
error:
session->ust_session->domain_global.channels);
}
DBG3("Number of UST global channels %zd", nb_chan);
- if (nb_chan <= 0) {
+ if (nb_chan < 0) {
ret = LTTNG_ERR_UST_CHAN_NOT_FOUND;
+ goto error;
}
break;
default:
- *channels = NULL;
ret = LTTNG_ERR_UND;
goto error;
}
}
list_lttng_channels(domain, session, *channels);
- } else {
- *channels = NULL;
- /* Ret value was set in the domain switch case */
- goto error;
}
return nb_chan;
}
case LTTNG_DOMAIN_LOG4J:
case LTTNG_DOMAIN_JUL:
+ case LTTNG_DOMAIN_PYTHON:
if (session->ust_session) {
struct lttng_ht_iter iter;
struct agent *agt;