X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=src%2Fbin%2Flttng-sessiond%2Fsnapshot.c;h=4c23ee424292176032da37d2a57fa9cd21e3ec5e;hp=d2fc8ca691a15de1455dbb5cb3019f41cd756b09;hb=eb240553d4d24fd770d47a8e66ac3ac3bd5fe602;hpb=b872baea3c26766331255b40ca7f9a9ad31e4ea6 diff --git a/src/bin/lttng-sessiond/snapshot.c b/src/bin/lttng-sessiond/snapshot.c index d2fc8ca69..4c23ee424 100644 --- a/src/bin/lttng-sessiond/snapshot.c +++ b/src/bin/lttng-sessiond/snapshot.c @@ -222,6 +222,32 @@ void snapshot_output_destroy(struct snapshot_output *obj) free(obj); } +/* + * RCU read side lock MUST be acquired before calling this since the returned + * pointer is in a RCU hash table. + * + * Return the reference on success or else NULL. + */ +struct snapshot_output *snapshot_find_output_by_name(const char *name, + struct snapshot *snapshot) +{ + struct lttng_ht_iter iter; + struct snapshot_output *output = NULL; + + assert(snapshot); + assert(name); + + cds_lfht_for_each_entry(snapshot->output_ht->ht, &iter.iter, output, + node.node) { + if (!strncmp(output->name, name, strlen(name))) { + return output; + } + } + + /* Not found */ + return NULL; +} + /* * RCU read side lock MUST be acquired before calling this since the returned * pointer is in a RCU hash table.