]> git.ipfire.org Git - thirdparty/freeradius-server.git/commitdiff
move / rename "pair raw from network"
authorAlan T. DeKok <aland@freeradius.org>
Sun, 17 Apr 2022 19:19:58 +0000 (15:19 -0400)
committerAlan T. DeKok <aland@freeradius.org>
Wed, 20 Apr 2022 13:15:23 +0000 (09:15 -0400)
so that it's in a better place, with a better name

src/lib/util/decode.c
src/lib/util/decode.h
src/lib/util/struct.c
src/lib/util/struct.h
src/protocols/dhcpv4/decode.c
src/protocols/radius/decode.c

index e2874cb8a25c72cd140f7c7deb5f43b8e426ffd0..02128f734c13d9f2fc21d90acc69e120ee981a73 100644 (file)
@@ -29,7 +29,7 @@
 /** Decode an array of values from the network
  *
  * @param[in] ctx context      to alloc new attributes in.
- * @param[out] out             Where to write the decoded options.
+ * @param[out] out             Where to write the decoded #fr_pair_t
  * @param[in] parent           dictionary entry, must have parent->flags.array set
  * @param[in] data             to parse.
  * @param[in] data_len         of data to parse.
@@ -57,3 +57,41 @@ ssize_t fr_pair_array_from_network(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict
 
        return data_len;
 }
+
+/** Create a "raw" pair from the network data
+ *
+ * @param[in] ctx context      to alloc new attributes in.
+ * @param[in] parent           dictionary entry
+ * @param[in] data             to parse.
+ * @param[in] data_len         of data to parse.
+ */
+fr_pair_t *fr_pair_raw_from_network(TALLOC_CTX *ctx, fr_dict_attr_t const *parent, uint8_t const *data, size_t data_len)
+{
+       fr_pair_t *vp;
+       fr_dict_attr_t *unknown;
+       fr_dict_attr_t const *child;
+
+#if defined(__clang_analyzer__) || !defined(NDEBUG)
+       if (!parent->parent) return NULL; /* stupid static analyzers */
+#endif
+
+       /*
+        *      Build an unknown attr of the entire data.
+        */
+       unknown = fr_dict_unknown_attr_afrom_da(ctx, parent);
+       if (!unknown) return NULL;
+       unknown->flags.is_raw = 1;
+
+       vp = fr_pair_afrom_da(ctx, unknown); /* makes a copy of 'child' */
+       child = unknown;
+       fr_dict_unknown_free(&child);
+       if (!vp) return NULL;
+
+       if (fr_value_box_from_network(vp, &vp->data, vp->da->type, vp->da,
+                                     &FR_DBUFF_TMP(data, data_len), data_len, true) < 0) {
+               talloc_free(vp);
+               return NULL;
+       }
+
+       return vp;
+}
index 6f4b50357c5b967b0817e88a496e3303488fba74..5943574505eb7982d8ea710b024a53d7c773bd87 100644 (file)
@@ -41,7 +41,11 @@ typedef ssize_t (*fr_pair_decode_value_t)(TALLOC_CTX *ctx, fr_pair_list_t *out,
                                           uint8_t const *data, size_t const data_len, fr_proto_decode_ctx_t *decode_ctx); \
 
 ssize_t fr_pair_array_from_network(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t const *parent,
-                                  uint8_t const *data, size_t data_len, void *decode_ctx, fr_pair_decode_value_t decode_value);
+                                  uint8_t const *data, size_t data_len, void *decode_ctx, fr_pair_decode_value_t decode_value) CC_HINT(nonnull(1,2,3,4,6));
+
+fr_pair_t *fr_pair_raw_from_network(TALLOC_CTX *ctx, fr_dict_attr_t const *parent,
+                                   uint8_t const *data, size_t data_len) CC_HINT(nonnull);
+
 
 #ifdef __cplusplus
 }
index 5c7f326f2716429993b21c2856961496f5bd5318..db0bab05ed7db2a1a02d581c9647f42967006e21 100644 (file)
@@ -25,39 +25,6 @@ RCSID("$Id$")
 
 #include <freeradius-devel/util/struct.h>
 
-fr_pair_t *fr_raw_from_network(TALLOC_CTX *ctx, fr_dict_attr_t const *parent, uint8_t const *data, size_t data_len)
-{
-       fr_pair_t *vp;
-       fr_dict_attr_t *unknown;
-       fr_dict_attr_t const *child;
-
-#if defined(__clang_analyzer__) || !defined(NDEBUG)
-       if (!parent->parent) return NULL; /* stupid static analyzers */
-#endif
-
-       /*
-        *      Build an unknown attr of the entire data.
-        */
-       unknown = fr_dict_unknown_attr_afrom_da(ctx, parent);
-       if (!unknown) return NULL;
-       unknown->flags.is_raw = 1;
-
-       vp = fr_pair_afrom_da(ctx, unknown); /* makes a copy of 'child' */
-       child = unknown;
-       fr_dict_unknown_free(&child);
-       if (!vp) return NULL;
-
-       if (fr_value_box_from_network(vp, &vp->data, vp->da->type, vp->da,
-                                     &FR_DBUFF_TMP(data, data_len), data_len, true) < 0) {
-               talloc_free(vp);
-               return NULL;
-       }
-
-       return vp;
-}
-
-
-
 /** Convert a STRUCT to one or more VPs
  *
  */
@@ -330,7 +297,7 @@ ssize_t fr_struct_from_network(TALLOC_CTX *ctx, fr_pair_list_t *out,
                                fr_pair_list_free(child_list);
                        }
 
-                       vp = fr_raw_from_network(ctx, parent, data, data_len);
+                       vp = fr_pair_raw_from_network(ctx, parent, data, data_len);
                        if (!vp) goto oom;
 
                        /*
@@ -391,7 +358,7 @@ ssize_t fr_struct_from_network(TALLOC_CTX *ctx, fr_pair_list_t *out,
                                goto unknown;
                        }
 
-                       vp = fr_raw_from_network(child_ctx, child, p, end - p);
+                       vp = fr_pair_raw_from_network(child_ctx, child, p, end - p);
                        if (!vp) {
                                FR_PROTO_TRACE("Failed creating raw VP from malformed or unknown substruct");
                                fr_dict_unknown_free(&child);
index 367438a88e60d1e4229b1be9387b51e597c77112..3de6769741c74d182e99fb512e539ab0c50e36a5 100644 (file)
@@ -45,9 +45,6 @@ ssize_t fr_struct_to_network(fr_dbuff_t *dbuff, fr_da_stack_t *da_stack, unsigne
                             fr_dcursor_t *cursor, void *encode_ctx,
                             fr_encode_dbuff_t encode_value, fr_encode_dbuff_t encode_tlv) CC_HINT(nonnull(1,2,4));
 
-fr_pair_t *fr_raw_from_network(TALLOC_CTX *ctx, fr_dict_attr_t const *parent,
-                                   uint8_t const *data, size_t data_len) CC_HINT(nonnull);
-
 #ifdef __cplusplus
 }
 #endif
index 7bb00bbc2cf5b8011a7b418e0243e9ccda9860b0..131d7eefce3bfccc9ef42a4cfed6a88553a9fc22 100644 (file)
@@ -380,7 +380,7 @@ static ssize_t decode_tlv(TALLOC_CTX *ctx, fr_pair_list_t *out, fr_dict_attr_t c
        if (data_len < 3) {
                fr_pair_t *vp;
 
-               vp = fr_raw_from_network(ctx, parent, data, data_len);
+               vp = fr_pair_raw_from_network(ctx, parent, data, data_len);
                if (!vp) return -1;
                fr_pair_append(out, vp);
                return data_len;
index 24978001dd7e01dc97bde5aba72abc9ba756887a..3246cf3383c388655eaba21633d85e8b19995786 100644 (file)
@@ -1652,7 +1652,7 @@ ssize_t fr_radius_decode_pair_value(TALLOC_CTX *ctx, fr_pair_list_t *out,
        raw:
                if (vp) talloc_free(vp);
 
-               vp = fr_raw_from_network(ctx, parent, data, attr_len);
+               vp = fr_pair_raw_from_network(ctx, parent, data, attr_len);
                if (!vp) return -1;
 
                tag = 0;