]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Add macro for populating CONF_PARSER with functions
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Mon, 6 Jun 2022 00:25:22 +0000 (20:25 -0400)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Mon, 6 Jun 2022 00:25:22 +0000 (20:25 -0400)
src/lib/server/cf_parse.h

index fcc20e085be80ea486ddd638f04267290d83c8ee..2435d1b52acf1e3fe5248f4e041681256b71c91b 100644 (file)
@@ -194,7 +194,6 @@ _Generic((_ct), \
        .name = _n, \
        .type = _t, \
        .data = FR_CONF_TYPE_CHECK((_t), (_p), _p)
-
 #  define FR_CONF_POINTER_IS_SET(_n, _t, _p) \
        .name = _n, \
        .type = (_t) | FR_TYPE_IS_SET, \
@@ -257,6 +256,18 @@ _Generic((_ct), \
        .subcs_size = sizeof(**(((_s *)0)->_f))
 #endif
 
+/** CONF_PARSER entry which doesn't fill in a pointer or offset, but relies on functions to record values
+ *
+ * @param[in] _n               name of pair to search for.
+ * @param[in] _t               base type to parse pair as.
+ * @param[in] _func            to use to record value.
+ * @param[in] _dflt_func       to use to get defaults from a 3rd party library.
+ */
+#  define FR_CONF_FUNC(_n, _t, _func, _dflt_func) \
+       .name = _n, \
+       .type = _t, \
+       .func = _func, \
+       .dflt_func = _dflt_func
 
 #define FR_CONF_DEPRECATED(_n, _t, _p, _f) \
        .name = _n, \