info: split out neighbors and 2hop printer functions
authorFerry Huberts <ferry.huberts@pelagic.nl>
Wed, 2 Dec 2015 11:28:50 +0000 (12:28 +0100)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Wed, 2 Dec 2015 19:54:17 +0000 (20:54 +0100)
Making it all more generic

Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
lib/info/info_types.h
lib/info/olsrd_info.c
lib/jsoninfo/src/olsrd_jsoninfo.c
lib/jsoninfo/src/olsrd_jsoninfo.h
lib/txtinfo/src/olsrd_txtinfo.c
lib/txtinfo/src/olsrd_txtinfo.h

index 38dcb0c..cb8ba03 100644 (file)
@@ -76,7 +76,6 @@ typedef void (*init_plugin)(const char *plugin_name);
 typedef bool (*determine_command)(const char *str, unsigned int siw);
 typedef const char * (*mime_type)(unsigned int send_what);
 typedef void (*output_start_end)(struct autobuf *abuf);
-typedef void (*printer_neighbors)(struct autobuf *abuf, bool list_2hop);
 typedef void (*printer_generic)(struct autobuf *abuf);
 
 typedef struct {
@@ -85,7 +84,7 @@ typedef struct {
     mime_type determine_mime_type;
     output_start_end output_start;
     output_start_end output_end;
-    printer_neighbors neighbors;
+    printer_generic neighbors;
     printer_generic links;
     printer_generic routes;
     printer_generic topology;
@@ -96,6 +95,7 @@ typedef struct {
     printer_generic version;
     printer_generic olsrd_conf;
     printer_generic interfaces;
+    printer_generic twohop;
     printer_generic config;
     printer_generic plugins;
 } info_plugin_functions_t;
index e807f8a..13631dd 100644 (file)
@@ -202,7 +202,7 @@ static void send_info(unsigned int send_what, int the_socket) {
     if ((send_what & SIW_LINKS) && (*functions).links)
       (*(*functions).links)(&abuf);
     if ((send_what & SIW_NEIGHBORS) && (*functions).neighbors)
-      (*(*functions).neighbors)(&abuf, false);
+      (*(*functions).neighbors)(&abuf);
     if ((send_what & SIW_TOPOLOGY) && (*functions).topology)
       (*(*functions).topology)(&abuf);
     if ((send_what & SIW_HNA) && (*functions).hna)
@@ -219,8 +219,8 @@ static void send_info(unsigned int send_what, int the_socket) {
       (*(*functions).config)(&abuf);
     if ((send_what & SIW_INTERFACES) && (*functions).interfaces)
       (*(*functions).interfaces)(&abuf);
-    if ((send_what & SIW_2HOP) && (*functions).neighbors)
-      (*(*functions).neighbors)(&abuf, true);
+    if ((send_what & SIW_2HOP) && (*functions).twohop)
+      (*(*functions).twohop)(&abuf);
     if ((send_what & SIW_VERSION) && (*functions).version)
       (*(*functions).version)(&abuf);
     if ((send_what & SIW_PLUGINS) && (*functions).plugins)
index 16ecace..2be95c6 100644 (file)
@@ -151,7 +151,7 @@ void output_end(struct autobuf *abuf) {
   abuf_puts(abuf, "\n");
 }
 
-void ipc_print_neighbors(struct autobuf *abuf, bool list_2hop) {
+static void ipc_print_neighbors_internal(struct autobuf *abuf, bool list_2hop) {
   struct ipaddr_str buf1;
   struct neighbor_entry *neigh;
   struct neighbor_2_list_entry *list_2;
@@ -194,6 +194,10 @@ void ipc_print_neighbors(struct autobuf *abuf, bool list_2hop) {
   abuf_json_mark_object(false, true, abuf, NULL);
 }
 
+void ipc_print_neighbors(struct autobuf *abuf) {
+  ipc_print_neighbors_internal(abuf, false);
+}
+
 void ipc_print_links(struct autobuf *abuf) {
   struct ipaddr_str buf1, buf2;
   struct lqtextbuffer lqbuffer1;
@@ -618,6 +622,10 @@ void ipc_print_interfaces(struct autobuf *abuf) {
   abuf_json_mark_object(false, true, abuf, NULL);
 }
 
+void ipc_print_twohop(struct autobuf *abuf) {
+  ipc_print_neighbors_internal(abuf, true);
+}
+
 void ipc_print_config(struct autobuf *abuf) {
   struct ip_prefix_list *hna;
   struct ipaddr_str buf, mainaddrbuf;
index 71b3471..ced8389 100644 (file)
@@ -58,7 +58,7 @@ const char * determine_mime_type(unsigned int send_what);
 void output_start(struct autobuf *abuf);
 void output_end(struct autobuf *abuf);
 
-void ipc_print_neighbors(struct autobuf *abuf, bool list_2hop);
+void ipc_print_neighbors(struct autobuf *abuf);
 void ipc_print_links(struct autobuf *abuf);
 void ipc_print_routes(struct autobuf *abuf);
 void ipc_print_topology(struct autobuf *abuf);
@@ -69,6 +69,7 @@ void ipc_print_sgw(struct autobuf *abuf);
 void ipc_print_version(struct autobuf *abuf);
 void ipc_print_olsrd_conf(struct autobuf *abuf);
 void ipc_print_interfaces(struct autobuf *abuf);
+void ipc_print_twohop(struct autobuf *abuf);
 void ipc_print_config(struct autobuf *abuf);
 void ipc_print_plugins(struct autobuf *abuf);
 
index e442550..ae80ad5 100644 (file)
@@ -116,7 +116,7 @@ bool isCommand(const char *str, unsigned int siw) {
   }
 }
 
-void ipc_print_neighbors(struct autobuf *abuf, bool list_2hop) {
+static void ipc_print_neighbors_internal(struct autobuf *abuf, bool list_2hop) {
   struct ipaddr_str buf1;
   struct neighbor_entry *neigh;
   struct neighbor_2_list_entry *list_2;
@@ -148,6 +148,10 @@ void ipc_print_neighbors(struct autobuf *abuf, bool list_2hop) {
   abuf_puts(abuf, "\n");
 }
 
+void ipc_print_neighbors(struct autobuf *abuf) {
+  ipc_print_neighbors_internal(abuf, false);
+}
+
 void ipc_print_links(struct autobuf *abuf) {
   struct ipaddr_str buf1, buf2;
   struct lqtextbuffer lqbuffer1, lqbuffer2;
@@ -495,3 +499,6 @@ void ipc_print_interfaces(struct autobuf *abuf) {
   abuf_puts(abuf, "\n");
 }
 
+void ipc_print_twohop(struct autobuf *abuf) {
+  ipc_print_neighbors_internal(abuf, true);
+}
index d0a0de9..80302aa 100644 (file)
@@ -48,7 +48,7 @@
 
 bool isCommand(const char *str, unsigned int siw);
 
-void ipc_print_neighbors(struct autobuf *abuf, bool list_2hop);
+void ipc_print_neighbors(struct autobuf *abuf);
 void ipc_print_links(struct autobuf *abuf);
 void ipc_print_routes(struct autobuf *abuf);
 void ipc_print_topology(struct autobuf *abuf);
@@ -59,5 +59,6 @@ void ipc_print_sgw(struct autobuf *abuf);
 void ipc_print_version(struct autobuf *abuf);
 void ipc_print_olsrd_conf(struct autobuf *abuf);
 void ipc_print_interfaces(struct autobuf *abuf);
+void ipc_print_twohop(struct autobuf *abuf);
 
 #endif /* _OLSRD_TXTINFO_PRINTERS_H */