summaryrefslogtreecommitdiff
path: root/lib/json.h
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2018-08-14 08:57:44 -0400
committerGitHub <noreply@github.com>2018-08-14 08:57:44 -0400
commit6c705218232ce1513b2a43fa4e2307cc378a52f1 (patch)
treebcaf438322b7934b1a1a77f0800271a1b77f4b0b /lib/json.h
parent4354a8052c1c91597151c67263afdfcfc0ca98ba (diff)
parentd6853655b597e041b24a2b8d9367eea04d666c69 (diff)
Merge pull request #2294 from opensourcerouting/bfd-final
bfdd: add BFD support
Diffstat (limited to 'lib/json.h')
-rw-r--r--lib/json.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/lib/json.h b/lib/json.h
index 675d852af7..788d1d6efa 100644
--- a/lib/json.h
+++ b/lib/json.h
@@ -23,6 +23,20 @@
#if defined(HAVE_JSON_C_JSON_H)
#include <json-c/json.h>
+
+/*
+ * FRR style JSON iteration.
+ * Usage: JSON_FOREACH(...) { ... }
+ */
+#define JSON_FOREACH(jo, joi, join) \
+ /* struct json_object *jo; */ \
+ /* struct json_object_iterator joi; */ \
+ /* struct json_object_iterator join; */ \
+ for ((joi) = json_object_iter_begin((jo)), \
+ (join) = json_object_iter_end((jo)); \
+ json_object_iter_equal(&(joi), &(join)) == 0; \
+ json_object_iter_next(&(joi)))
+
#else
#include <json/json.h>