info: add abuf_json_prefix json helper
authorFerry Huberts <ferry.huberts@pelagic.nl>
Mon, 28 Mar 2016 11:07:13 +0000 (13:07 +0200)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Tue, 29 Mar 2016 07:00:25 +0000 (09:00 +0200)
Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
lib/info/info_json_helpers.c
lib/info/info_json_helpers.h

index 654cb2a..a105a70 100644 (file)
@@ -255,3 +255,26 @@ void abuf_json_ip_address46(struct autobuf *abuf, const char* key, void *ip, int
   }
   entrynumber[currentjsondepth]++;
 }
+
+void abuf_json_prefix(struct autobuf *abuf, const char* key, struct olsr_ip_prefix *prefix) {
+  struct ipaddr_str ipStr;
+  const char * value;
+
+  assert(abuf);
+  assert(key || prefix);
+
+  if (!prefix) {
+    value = empty;
+  } else {
+    value = olsr_ip_to_string(&ipStr, &prefix->prefix);
+  }
+
+  abuf_json_insert_comma(abuf);
+  abuf_json_new_indent(abuf);
+  if (!key) {
+    abuf_appendf(abuf, "\"%s/%d\"", value, prefix->prefix_len);
+  } else {
+    abuf_appendf(abuf, "\"%s\": \"%s/%d\"", key, value, prefix->prefix_len);
+  }
+  entrynumber[currentjsondepth]++;
+}
index c93f04a..1217a95 100644 (file)
@@ -69,4 +69,6 @@ void abuf_json_ip_address(struct autobuf *abuf, const char* key, union olsr_ip_a
 
 void abuf_json_ip_address46(struct autobuf *abuf, const char* key, void *ip, int af);
 
+void abuf_json_prefix(struct autobuf *abuf, const char* key, struct olsr_ip_prefix *prefix);
+
 #endif /* _OLSRD_LIB_INFO_JSON_HELPERS_H_ */