char const *fr_dict_global_ctx_dir(void);
+typedef struct fr_hash_iter_s fr_dict_global_ctx_iter_t;
+
+fr_dict_t *fr_dict_global_ctx_iter_init(fr_dict_global_ctx_iter_t *iter) CC_HINT(nonnull);
+
+fr_dict_t *fr_dict_global_ctx_iter_next(fr_dict_global_ctx_iter_t *iter) CC_HINT(nonnull);
+
fr_dict_t *fr_dict_unconst(fr_dict_t const *dict);
fr_dict_attr_t *fr_dict_attr_unconst(fr_dict_attr_t const *da);
}
}
+/** Iterate protocols by name
+ *
+ */
+fr_dict_t *fr_dict_global_ctx_iter_init(fr_dict_global_ctx_iter_t *iter)
+{
+ if (!dict_gctx) return NULL;
+
+ return fr_hash_table_iter_init(dict_gctx->protocol_by_name, iter);
+}
+
+fr_dict_t *fr_dict_global_ctx_iter_next(fr_dict_global_ctx_iter_t *iter)
+{
+ if (!dict_gctx) return NULL;
+
+ return fr_hash_table_iter_next(dict_gctx->protocol_by_name, iter);
+}
+
+
/** Coerce to non-const
*
*/
/** Stores the state of the current iteration operation
*
*/
-typedef struct {
+typedef struct fr_hash_iter_s {
uint32_t bucket;
fr_hash_entry_t *node;
} fr_hash_iter_t;