txtinfo plugin: query /version URL to have olsrd version printed out
authorSaverio Proto <saverio.proto@garr.it>
Thu, 24 May 2012 14:35:40 +0000 (16:35 +0200)
committerSaverio Proto <zioproto@gmail.com>
Thu, 24 May 2012 17:07:23 +0000 (19:07 +0200)
lib/txtinfo/src/olsrd_txtinfo.c

index eeb44c7..a3344c8 100644 (file)
@@ -126,6 +126,7 @@ static void ipc_print_interface(struct autobuf *);
 #define SIW_INTERFACE 0x0080
 #define SIW_CONFIG 0x0100
 #define SIW_2HOP 0x0200
+#define SIW_VERSION 0x0400
 
 /* ALL = neigh link route hna mid topo */
 #define SIW_ALL 0x003F
@@ -317,6 +318,7 @@ ipc_action(int fd, void *data __attribute__ ((unused)), unsigned int flags __att
         }
         if (0 != strstr(requ, "/gat")) send_what |= SIW_GATEWAY;
         if (0 != strstr(requ, "/con")) send_what |= SIW_CONFIG;
+        if (0 != strstr(requ, "/version")) send_what |= SIW_VERSION;
         if (0 != strstr(requ, "/int")) send_what |= SIW_INTERFACE;
         if (0 != strstr(requ, "/2ho")) send_what |= SIW_2HOP;
       }
@@ -615,6 +617,11 @@ ipc_print_config(struct autobuf *abuf)
 }
 
 static void
+ipc_print_version(struct autobuf *abuf)
+{
+abuf_appendf(abuf, "Version: %s (built on %s on %s)\n", olsrd_version, build_date, build_host);
+}
+static void
 ipc_print_interface(struct autobuf *abuf)
 {
   const struct olsr_if *ifs;
@@ -725,6 +732,8 @@ send_info(unsigned int send_what, int the_socket)
   if ((send_what & SIW_GATEWAY) == SIW_GATEWAY) ipc_print_gateway(&abuf);
   /* config */
   if ((send_what & SIW_CONFIG) == SIW_CONFIG) ipc_print_config(&abuf);
+  /* version */
+  if ((send_what & SIW_VERSION) == SIW_VERSION) ipc_print_version(&abuf);
   /* interface */
   if ((send_what & SIW_INTERFACE) == SIW_INTERFACE) ipc_print_interface(&abuf);
   /* 2hop neighbour list */