*/
cf_pair_debug(cs, cp, rule);
- if (cp->parsed) return 0;
+ if (cf_pair_is_parsed(cp)) continue;
ret = func(value_ctx, entry, base, cf_pair_to_item(cp), rule);
if (ret < 0) {
talloc_free(array);
return -1;
}
- cp->parsed = true;
+ cf_pair_mark_parsed(cp);
}
if (array) *(void **)out = array;
/*
cf_pair_debug(cs, cp, rule);
- if (cp->parsed) return 0;
+ if (cf_pair_is_parsed(cp)) return 0;
ret = func(ctx, out, base, cf_pair_to_item(cp), rule);
if (ret < 0) return -1;
- cp->parsed = true;
+ cf_pair_mark_parsed(cp);
}
return 0;
cp->parsed = true;
}
+/** Return whether a pair has already been parsed
+ *
+ * @param[in] cp to check.
+ * @return
+ * - true if pair has been parsed.
+ * - false if the pair hasn't been parsed.
+ */
+bool cf_pair_is_parsed(CONF_PAIR *cp)
+{
+ return cp->parsed;
+}
+
/** Return the next child that's a #CONF_PAIR
*
* @param[in] cs to return children from.
CONF_PAIR *cf_pair_dup(CONF_SECTION *parent, CONF_PAIR *cp);
int cf_pair_replace(CONF_SECTION *cs, CONF_PAIR *cp, char const *value);
void cf_pair_mark_parsed(CONF_PAIR *cp);
+
+bool cf_pair_is_parsed(CONF_PAIR *cp);
+
CONF_PAIR *cf_pair_next(CONF_SECTION const *cs, CONF_PAIR const *prev);
CONF_PAIR *cf_pair_find(CONF_SECTION const *cs, char const *name);
CONF_PAIR *cf_pair_find_next(CONF_SECTION const *cs, CONF_PAIR const *prev, char const *name);