From: Arran Cudbard-Bell Date: Sun, 5 Jun 2022 20:06:00 +0000 (-0400) Subject: Use accessors for parsed status X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=586f26602bca08d7bccda98dcb32088ff20906b0;p=thirdparty%2Ffreeradius-server.git Use accessors for parsed status --- diff --git a/src/lib/server/cf_parse.c b/src/lib/server/cf_parse.c index 9be87611f32..59aed5b2be9 100644 --- a/src/lib/server/cf_parse.c +++ b/src/lib/server/cf_parse.c @@ -515,13 +515,13 @@ static int CC_HINT(nonnull(4,5)) cf_pair_parse_internal(TALLOC_CTX *ctx, void *o */ 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; /* @@ -554,10 +554,10 @@ static int CC_HINT(nonnull(4,5)) cf_pair_parse_internal(TALLOC_CTX *ctx, void *o 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; diff --git a/src/lib/server/cf_util.c b/src/lib/server/cf_util.c index babfbc5db6c..2d487280dea 100644 --- a/src/lib/server/cf_util.c +++ b/src/lib/server/cf_util.c @@ -1252,6 +1252,18 @@ void cf_pair_mark_parsed(CONF_PAIR *cp) 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. diff --git a/src/lib/server/cf_util.h b/src/lib/server/cf_util.h index a507bd77fce..76b71d72601 100644 --- a/src/lib/server/cf_util.h +++ b/src/lib/server/cf_util.h @@ -175,6 +175,9 @@ CONF_PAIR *cf_pair_alloc(CONF_SECTION *parent, char const *attr, char const *val 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);