From 02dab76e9371ceff3b3759fbe7b48eaa24c9a49e Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 2 Apr 2019 14:52:56 +0200 Subject: [PATCH] json: use SYNTHETIC_ERRNO() where appropriate --- src/shared/json.c | 66 ++++++++++++++++------------------------------- 1 file changed, 22 insertions(+), 44 deletions(-) diff --git a/src/shared/json.c b/src/shared/json.c index 10431423e9d..db003a41a45 100644 --- a/src/shared/json.c +++ b/src/shared/json.c @@ -3297,10 +3297,8 @@ int json_dispatch_boolean(const char *name, JsonVariant *variant, JsonDispatchFl assert(variant); assert(b); - if (!json_variant_is_boolean(variant)) { - json_log(variant, flags, 0, "JSON field '%s' is not a boolean.", strna(name)); - return -EINVAL; - } + if (!json_variant_is_boolean(variant)) + return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is not a boolean.", strna(name)); *b = json_variant_boolean(variant); return 0; @@ -3312,10 +3310,8 @@ int json_dispatch_tristate(const char *name, JsonVariant *variant, JsonDispatchF assert(variant); assert(b); - if (!json_variant_is_boolean(variant)) { - json_log(variant, flags, 0, "JSON field '%s' is not a boolean.", strna(name)); - return -EINVAL; - } + if (!json_variant_is_boolean(variant)) + return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is not a boolean.", strna(name)); *b = json_variant_boolean(variant); return 0; @@ -3327,10 +3323,8 @@ int json_dispatch_integer(const char *name, JsonVariant *variant, JsonDispatchFl assert(variant); assert(i); - if (!json_variant_is_integer(variant)) { - json_log(variant, flags, 0, "JSON field '%s' is not an integer.", strna(name)); - return -EINVAL; - } + if (!json_variant_is_integer(variant)) + return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is not an integer.", strna(name)); *i = json_variant_integer(variant); return 0; @@ -3342,10 +3336,8 @@ int json_dispatch_unsigned(const char *name, JsonVariant *variant, JsonDispatchF assert(variant); assert(u); - if (!json_variant_is_unsigned(variant)) { - json_log(variant, flags, 0, "JSON field '%s' is not an unsigned integer.", strna(name)); - return -EINVAL; - } + if (!json_variant_is_unsigned(variant)) + return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is not an unsigned integer.", strna(name)); *u = json_variant_unsigned(variant); return 0; @@ -3357,15 +3349,11 @@ int json_dispatch_uint32(const char *name, JsonVariant *variant, JsonDispatchFla assert(variant); assert(u); - if (!json_variant_is_unsigned(variant)) { - json_log(variant, flags, 0, "JSON field '%s' is not an unsigned integer.", strna(name)); - return -EINVAL; - } + if (!json_variant_is_unsigned(variant)) + return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is not an unsigned integer.", strna(name)); - if (json_variant_unsigned(variant) > UINT32_MAX) { - json_log(variant, flags, 0, "JSON field '%s' out of bounds.", strna(name)); - return -ERANGE; - } + if (json_variant_unsigned(variant) > UINT32_MAX) + return json_log(variant, flags, SYNTHETIC_ERRNO(ERANGE), "JSON field '%s' out of bounds.", strna(name)); *u = (uint32_t) json_variant_unsigned(variant); return 0; @@ -3377,15 +3365,11 @@ int json_dispatch_int32(const char *name, JsonVariant *variant, JsonDispatchFlag assert(variant); assert(i); - if (!json_variant_is_integer(variant)) { - json_log(variant, flags, 0, "JSON field '%s' is not an integer.", strna(name)); - return -EINVAL; - } + if (!json_variant_is_integer(variant)) + return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is not an integer.", strna(name)); - if (json_variant_integer(variant) < INT32_MIN || json_variant_integer(variant) > INT32_MAX) { - json_log(variant, flags, 0, "JSON field '%s' out of bounds.", strna(name)); - return -ERANGE; - } + if (json_variant_integer(variant) < INT32_MIN || json_variant_integer(variant) > INT32_MAX) + return json_log(variant, flags, SYNTHETIC_ERRNO(ERANGE), "JSON field '%s' out of bounds.", strna(name)); *i = (int32_t) json_variant_integer(variant); return 0; @@ -3403,10 +3387,8 @@ int json_dispatch_string(const char *name, JsonVariant *variant, JsonDispatchFla return 0; } - if (!json_variant_is_string(variant)) { - json_log(variant, flags, 0, "JSON field '%s' is not a string.", strna(name)); - return -EINVAL; - } + if (!json_variant_is_string(variant)) + return json_log(variant, flags, SYNTHETIC_ERRNO(EINVAL), "JSON field '%s' is not a string.", strna(name)); r = free_and_strdup(s, json_variant_string(variant)); if (r < 0) @@ -3429,20 +3411,16 @@ int json_dispatch_strv(const char *name, JsonVariant *variant, JsonDispatchFlags return 0; } - if (!json_variant_is_array(variant)) { - json_log(variant, 0, flags, "JSON field '%s' is not an array.", strna(name)); - return -EINVAL; - } + if (!json_variant_is_array(variant)) + return json_log(variant, SYNTHETIC_ERRNO(EINVAL), flags, "JSON field '%s' is not an array.", strna(name)); for (i = 0; i < json_variant_elements(variant); i++) { JsonVariant *e; assert_se(e = json_variant_by_index(variant, i)); - if (!json_variant_is_string(e)) { - json_log(e, 0, flags, "JSON array element is not a string."); - return -EINVAL; - } + if (!json_variant_is_string(e)) + return json_log(e, flags, SYNTHETIC_ERRNO(EINVAL), "JSON array element is not a string."); r = strv_extend(&l, json_variant_string(e)); if (r < 0) -- 2.47.3