]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
json: add json_variant_unbase64() helper
authorLennart Poettering <lennart@poettering.net>
Fri, 28 Jun 2019 18:05:21 +0000 (20:05 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 2 Dec 2019 08:47:00 +0000 (09:47 +0100)
src/shared/json.c
src/shared/json.h

index 7abbd1917d8a5c3ddfc1a6336631372bbde4ce4d..d1a477c36d608826b2b6a5b1f7498d988911617c 100644 (file)
@@ -4120,6 +4120,14 @@ bool json_variant_is_sorted(JsonVariant *v) {
         return v->sorted;
 }
 
+int json_variant_unbase64(JsonVariant *v, void **ret, size_t *ret_size) {
+
+        if (!json_variant_is_string(v))
+                return -EINVAL;
+
+        return unbase64mem(json_variant_string(v), (size_t) -1, ret, ret_size);
+}
+
 static const char* const json_variant_type_table[_JSON_VARIANT_TYPE_MAX] = {
         [JSON_VARIANT_STRING] = "string",
         [JSON_VARIANT_INTEGER] = "integer",
index 749c25253f8d394086405d4c4b286586f8cea0af..393e35a647987b23d9d4437da6e0b026cdffd9dd 100644 (file)
@@ -324,5 +324,7 @@ int json_log_internal(JsonVariant *variant, int level, int error, const char *fi
                 (JsonVariant*) ((uintptr_t) UNIQ_T(json_string_const, xq) + 1); \
         })
 
+int json_variant_unbase64(JsonVariant *v, void **ret, size_t *ret_size);
+
 const char *json_variant_type_to_string(JsonVariantType t);
 JsonVariantType json_variant_type_from_string(const char *s);