From: Donald Sharp Date: Sat, 3 Dec 2016 01:39:24 +0000 (-0500) Subject: lib: Allow json to work across different versions. X-Git-Tag: frr-3.0-branchpoint~83^2~2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=2047fdb5e741c5e645c0bad2ec43c5eafa8b947f;p=mirror%2Ffrr.git lib: Allow json to work across different versions. The json_object_object_get_ex function is not fully available across all versions of json. Write a wrapper to allow it to work. Ticket: CM-13872 Signed-off-by: Donald Sharp --- diff --git a/lib/json.c b/lib/json.c index 3edd146a8f..ccbecb726a 100644 --- a/lib/json.c +++ b/lib/json.c @@ -87,3 +87,18 @@ json_object_free(struct json_object *obj) { json_object_put(obj); } + +#if !defined(HAVE_JSON_C_JSON_H) +int +json_object_object_get_ex(struct json_object *obj, + const char *key, + struct json_object **value) +{ + *value = json_object_object_get(obj, key); + + if (*value) + return 1; + + return 0; +} +#endif diff --git a/lib/json.h b/lib/json.h index bacc799519..7e98614280 100644 --- a/lib/json.h +++ b/lib/json.h @@ -32,6 +32,10 @@ * so let's just turn it back to the original usage. */ #define json_object_to_json_string_ext(A, B) json_object_to_json_string (A) + +extern int json_object_object_get_ex(struct json_object *obj, + const char *key, + struct json_object **value); #endif #include "command.h"