]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
export API to iterate over virtual modules
authorAlan T. DeKok <aland@freeradius.org>
Mon, 13 Jul 2026 18:47:18 +0000 (14:47 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Mon, 13 Jul 2026 18:47:18 +0000 (14:47 -0400)
src/lib/server/module_rlm.c
src/lib/server/module_rlm.h

index 33b8b3fa329b21ceb184715c7a3afd7a42ab8b87..6ef71da90f172b698c8423f986b9548177e31d90 100644 (file)
@@ -1419,6 +1419,30 @@ int modules_rlm_bootstrap(CONF_SECTION *root)
        return 0;
 }
 
+/** Iterate over the virtual modules.
+ *
+ */
+CONF_SECTION *module_rlm_virtual_iter_init(fr_rb_iter_inorder_t *iter)
+{
+       module_rlm_virtual_t *vm;
+
+       vm = fr_rb_iter_init_inorder(module_rlm_virtual_name_tree, iter);
+       if (!vm) return NULL;
+
+       return vm->cs;
+}
+
+CONF_SECTION *module_rlm_virtual_iter_next(fr_rb_iter_inorder_t *iter)
+{
+       module_rlm_virtual_t *vm;
+
+       vm = fr_rb_iter_next_inorder(module_rlm_virtual_name_tree, iter);
+       if (!vm) return NULL;
+
+       return vm->cs;
+}
+
+
 /** Cleanup all global structures
  *
  * Automatically called on exit.
index 0af9a033699276b8fc4f1121535e41fd7e1e6cbf..7a49a8b283c6768de273a811f00eff9cb0f2227f 100644 (file)
@@ -129,6 +129,9 @@ module_instance_t   *module_rlm_dynamic_by_name(module_instance_t const *parent, c
 module_instance_t      *module_rlm_static_by_name(module_instance_t const *parent, char const *name);
 
 CONF_SECTION           *module_rlm_virtual_by_name(char const *name);
+
+CONF_SECTION           *module_rlm_virtual_iter_init(fr_rb_iter_inorder_t *iter) CC_HINT(nonnull);
+CONF_SECTION           *module_rlm_virtual_iter_next(fr_rb_iter_inorder_t *iter) CC_HINT(nonnull);
 /** @} */
 
 /** @name Support functions