X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=src%2Fcommon%2Ftrigger.cpp;h=bceeab534ae14a8113233537060fcc59b3fd92be;hb=fbc3f258425648821da7264860ca32cc24db0915;hp=3782f49cad19c901d709d4531d7ca5e4db679d8a;hpb=a6bc4ca9d659caf016ef932fcd944029737ac57c;p=lttng-tools.git diff --git a/src/common/trigger.cpp b/src/common/trigger.cpp index 3782f49ca..bceeab534 100644 --- a/src/common/trigger.cpp +++ b/src/common/trigger.cpp @@ -5,24 +5,24 @@ * */ -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include #include -#include +#include #include -#include -#include +#include +#include #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include bool lttng_trigger_validate(const struct lttng_trigger *trigger) @@ -55,7 +55,7 @@ struct lttng_trigger *lttng_trigger_create( goto end; } - trigger = (lttng_trigger *) zmalloc(sizeof(struct lttng_trigger)); + trigger = zmalloc(); if (!trigger) { goto end; } @@ -112,7 +112,7 @@ const struct lttng_action *lttng_trigger_get_const_action( static void trigger_destroy_ref(struct urcu_ref *ref) { struct lttng_trigger *trigger = - container_of(ref, struct lttng_trigger, ref); + lttng::utils::container_of(ref, <tng_trigger::ref); struct lttng_action *action = lttng_trigger_get_action(trigger); struct lttng_condition *condition = lttng_trigger_get_condition(trigger); @@ -266,6 +266,10 @@ ssize_t lttng_trigger_create_from_payload( } } + if (trigger_comm->is_hidden) { + lttng_trigger_set_hidden(trigger); + } + ret = offset; error: @@ -307,6 +311,8 @@ int lttng_trigger_serialize(const struct lttng_trigger *trigger, trigger_comm.name_length = size_name; + trigger_comm.is_hidden = lttng_trigger_is_hidden(trigger); + header_offset = payload->buffer.size; ret = lttng_dynamic_buffer_append(&payload->buffer, &trigger_comm, sizeof(trigger_comm)); @@ -374,6 +380,7 @@ bool lttng_trigger_is_equal( bool lttng_trigger_is_hidden(const struct lttng_trigger *trigger) { + LTTNG_ASSERT(trigger); return trigger->is_hidden; } @@ -504,7 +511,7 @@ struct lttng_triggers *lttng_triggers_create(void) { struct lttng_triggers *triggers = NULL; - triggers = (lttng_triggers *) zmalloc(sizeof(*triggers)); + triggers = zmalloc(); if (!triggers) { goto end; } @@ -735,8 +742,10 @@ const struct lttng_credentials *lttng_trigger_get_credentials( void lttng_trigger_set_credentials(struct lttng_trigger *trigger, const struct lttng_credentials *creds) { + /* Triggers do not use the group id to authenticate the user. */ LTTNG_ASSERT(creds); - trigger->creds = *creds; + LTTNG_OPTIONAL_SET(&trigger->creds.uid, LTTNG_OPTIONAL_GET(creds->uid)); + LTTNG_OPTIONAL_UNSET(&trigger->creds.gid); } enum lttng_trigger_status lttng_trigger_set_owner_uid(