]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
Use accessors for parsed status
authorArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sun, 5 Jun 2022 20:06:00 +0000 (16:06 -0400)
committerArran Cudbard-Bell <a.cudbardb@freeradius.org>
Sun, 5 Jun 2022 20:07:03 +0000 (16:07 -0400)
src/lib/server/cf_parse.c
src/lib/server/cf_util.c
src/lib/server/cf_util.h

index 9be87611f32f5a6b8c18c2d3f77c5df2c8d50c19..59aed5b2be967ea4c383a4be1a2ff3d5b55020c2 100644 (file)
@@ -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;
index babfbc5db6c45b334ab5dd4cba019637779c0431..2d487280dea5b71cb7d2934881e15d0aa7d7a384 100644 (file)
@@ -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.
index a507bd77fcee73aa46acdd0daf8fd530c32f9c5b..76b71d72601b90dcbee6b6a06be99e5ff7334a32 100644 (file)
@@ -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);