From: Lennart Poettering Date: Tue, 2 Apr 2019 12:52:56 +0000 (+0200) Subject: json: use SYNTHETIC_ERRNO() where appropriate X-Git-Tag: v242-rc1~4^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=02dab76e9371ceff3b3759fbe7b48eaa24c9a49e;p=thirdparty%2Fsystemd.git json: use SYNTHETIC_ERRNO() where appropriate --- 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)