uevent = trace_ust_find_event(uchan->events, event->name, filter,
event->loglevel, exclusion);
- if (uevent == NULL) {
+ if (!uevent) {
uevent = trace_ust_create_event(event, filter_expression,
- filter, exclusion);
+ filter, exclusion, internal_event);
/* We have passed ownership */
filter_expression = NULL;
filter = NULL;
*/
int event_agent_enable_all(struct ltt_ust_session *usess,
struct agent *agt, struct lttng_event *event,
- struct lttng_filter_bytecode *filter)
+ struct lttng_filter_bytecode *filter ,char *filter_expression)
{
int ret;
struct agent_event *aevent;
DBG("Event agent enabling ALL events for session %" PRIu64, usess->id);
/* Enable event on agent application through TCP socket. */
- ret = event_agent_enable(usess, agt, event, filter);
+ ret = event_agent_enable(usess, agt, event, filter, filter_expression);
if (ret != LTTNG_OK) {
goto error;
}
*/
int event_agent_enable(struct ltt_ust_session *usess,
struct agent *agt, struct lttng_event *event,
- struct lttng_filter_bytecode *filter)
+ struct lttng_filter_bytecode *filter,
+ char *filter_expression)
{
int ret, created = 0;
struct agent_event *aevent;
assert(agt);
DBG("Event agent enabling %s for session %" PRIu64 " with loglevel type %d "
- "and loglevel %d", event->name, usess->id, event->loglevel_type,
- event->loglevel);
+ ", loglevel %d and filter \"%s\"", event->name,
+ usess->id, event->loglevel_type, event->loglevel,
+ filter_expression ? filter_expression : "NULL");
aevent = agent_find_event(event->name, event->loglevel, agt);
if (!aevent) {
- aevent = agent_create_event(event->name, filter);
+ aevent = agent_create_event(event->name, event->loglevel,
+ event->loglevel_type, filter,
+ filter_expression);
if (!aevent) {
ret = LTTNG_ERR_NOMEM;
goto error;
}
- aevent->loglevel = event->loglevel;
- aevent->loglevel_type = event->loglevel_type;
created = 1;
}