]> git.ipfire.org Git - collecty.git/commitdiff
modules: Add function to fetch a specific module by its name
authorMichael Tremer <michael.tremer@ipfire.org>
Thu, 2 Oct 2025 08:56:37 +0000 (08:56 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Thu, 2 Oct 2025 08:56:37 +0000 (08:56 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/daemon/modules.c
src/daemon/modules.h

index dfd4c911866868338316fcbf56a023744ddcc99f..24c5eeee21480990b3a0d33dcdd61b8ee753a147 100644 (file)
@@ -151,3 +151,21 @@ collecty_modules* collecty_modules_unref(collecty_modules* self) {
        collecty_modules_free(self);
        return NULL;
 }
+
+collecty_module* collecty_modules_get_by_name(collecty_modules* self, const char* name) {
+       const char* n = NULL;
+
+       // Iterate over all modules to find a match
+       for (unsigned int i = 0; i < self->num_modules; i++) {
+               // Fetch the name
+               n = collecty_module_name(self->modules[i]);
+               if (!n)
+                       continue;
+
+               // Return the object if the name matches
+               if (strcmp(name, n) == 0)
+                       return collecty_module_ref(self->modules[i]);
+       }
+
+       return NULL;
+}
index f244750573cdb116807c45b554d758ccca4ac2b0..d4aa8c413a7630289cfedd84752cee3749ad2a1e 100644 (file)
@@ -32,4 +32,6 @@ int collecty_modules_create(collecty_modules** modules,
 collecty_modules* collecty_modules_ref(collecty_modules* self);
 collecty_modules* collecty_modules_unref(collecty_modules* self);
 
+collecty_module* collecty_modules_get_by_name(collecty_modules* self, const char* name);
+
 #endif /* COLLECTY_MODULES_H */