X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=lib%2Fjson.h;h=675d852af718829acb735c282b67ce19a7afb165;hb=9237091adb012636ada8d7c161ba4966eec24ed7;hp=c8d7fae1cd88ee75d25e9cfedb8a74942f78e427;hpb=69b5e938fe50a59ea8bb77e6d29a5e16ec55776c;p=mirror_frr.git diff --git a/lib/json.h b/lib/json.h index c8d7fae1c..675d852af 100644 --- a/lib/json.h +++ b/lib/json.h @@ -13,10 +13,9 @@ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * General Public License for more details. * - * You should have received a copy of the GNU General Public License - * along with GNU Zebra; see the file COPYING. If not, write to the Free - * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - * 02111-1307, USA. + * You should have received a copy of the GNU General Public License along + * with this program; see the file COPYING; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ #ifndef _QUAGGA_JSON_H @@ -32,20 +31,40 @@ * 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 -extern int use_json(const int argc, const char *argv[]); -extern void json_object_string_add(struct json_object* obj, const char *key, - const char *s); -extern void json_object_int_add(struct json_object* obj, const char *key, - int32_t i); -extern void json_object_boolean_false_add(struct json_object* obj, - const char *key); -extern void json_object_boolean_true_add(struct json_object* obj, - const char *key); -extern struct json_object* json_object_lock(struct json_object *obj); +#include "command.h" + +extern int use_json(const int argc, struct cmd_token *argv[]); +extern void json_object_string_add(struct json_object *obj, const char *key, + const char *s); +extern void json_object_int_add(struct json_object *obj, const char *key, + int64_t i); +extern void json_object_boolean_false_add(struct json_object *obj, + const char *key); +extern void json_object_boolean_true_add(struct json_object *obj, + const char *key); +extern struct json_object *json_object_lock(struct json_object *obj); extern void json_object_free(struct json_object *obj); #define JSON_STR "JavaScript Object Notation\n" +/* NOTE: json-c lib has following commit 316da85 which + * handles escape of forward slash. + * This allows prefix "20.0.14.0\/24":{ + * to "20.0.14.0/24":{ some platforms do not have + * latest copy of json-c where defining below macro. + */ + +#ifndef JSON_C_TO_STRING_NOSLASHESCAPE + +/** + * Don't escape forward slashes. + */ +#define JSON_C_TO_STRING_NOSLASHESCAPE (1<<4) +#endif + #endif /* _QUAGGA_JSON_H */