]> git.proxmox.com Git - mirror_frr.git/blame - lib/json.c
vtysh: handle case if there is no match in "write terminal $daemon"
[mirror_frr.git] / lib / json.c
CommitLineData
f1aa5d8a
DS
1/* json-c wrapper
2 * Copyright (C) 2015 Cumulus Networks, Inc.
3 *
4 * This file is part of GNU Zebra.
5 *
6 * GNU Zebra is free software; you can redistribute it and/or modify it
7 * under the terms of the GNU General Public License as published by the
8 * Free Software Foundation; either version 2, or (at your option) any
9 * later version.
10 *
11 * GNU Zebra is distributed in the hope that it will be useful, but
12 * WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with GNU Zebra; see the file COPYING. If not, write to the Free
18 * Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
19 * 02111-1307, USA.
20 */
21
4b25d72d
DS
22#include <zebra.h>
23
f1aa5d8a
DS
24#include "lib/json.h"
25
db7c8528
DS
26/*
27 * This function assumes that the json keyword
28 * is the *last* keyword on the line no matter
29 * what.
30 */
31int
32use_json (const int argc, const char *argv[])
33{
34 if (argc == 0)
35 return 0;
36
37 if (argv[argc-1] && strcmp(argv[argc-1], "json") == 0)
38 return 1;
39
40 return 0;
41}
42
f1aa5d8a
DS
43void
44json_object_string_add(struct json_object* obj, const char *key,
45 const char *s)
46{
47 json_object_object_add(obj, key, json_object_new_string(s));
48}
49
50void
51json_object_int_add(struct json_object* obj, const char *key, int32_t i)
52{
53 json_object_object_add(obj, key, json_object_new_int(i));
54}
55
c6a7d59c
DW
56void
57json_object_long_add(struct json_object* obj, const char *key, int64_t i)
58{
59 json_object_object_add(obj, key, json_object_new_int64(i));
60}
61
f1aa5d8a
DS
62void
63json_object_boolean_false_add(struct json_object* obj, const char *key)
64{
65 json_object_object_add(obj, key, json_object_new_boolean(0));
66}
67
68void
69json_object_boolean_true_add(struct json_object* obj, const char *key)
70{
71 json_object_object_add(obj, key, json_object_new_boolean(1));
72}
73
74struct json_object*
75json_object_lock(struct json_object *obj)
76{
77 return json_object_get(obj);
78}
79
80void
81json_object_free(struct json_object *obj)
82{
83 json_object_put(obj);
84}