txtinfo: add httpheaders configuration parameter
authorFerry Huberts <ferry.huberts@pelagic.nl>
Thu, 26 Nov 2015 14:20:51 +0000 (15:20 +0100)
committerFerry Huberts <ferry.huberts@pelagic.nl>
Fri, 27 Nov 2015 09:17:21 +0000 (10:17 +0100)
Signed-off-by: Ferry Huberts <ferry.huberts@pelagic.nl>
lib/txtinfo/README_TXTINFO
lib/txtinfo/src/olsrd_plugin.c
lib/txtinfo/src/olsrd_txtinfo.c
lib/txtinfo/src/olsrd_txtinfo.h

index 219ed5a..ab5f828 100644 (file)
@@ -71,6 +71,9 @@ LoadPlugin "olsrd_txtinfo.so.0.1"
     # will be used, others will be ignored.
     # PlParam     "listen"             "0.0.0.0"
 
+    # Set to true to prepend HTTP headers before the reply
+    # PlParam     "httpheaders"        "true"
+
     # Set to true to only listen on IPv6 addresses when running in IPv6 mode.
     # PlParam     "ipv6only"           "false"
 }
\ No newline at end of file
index cdc9a87..adb56d8 100644 (file)
@@ -63,6 +63,7 @@ union olsr_ip_addr txtinfo_accept_ip;
 union olsr_ip_addr txtinfo_listen_ip;
 int ipc_port;
 int nompr;
+bool http_headers;
 int txtinfo_ipv6_only;
 
 static void my_init(void) __attribute__ ((constructor));
@@ -77,6 +78,7 @@ static void my_init(void) {
 
   /* defaults for parameters */
   ipc_port = 2006;
+  http_headers = true;
   txtinfo_ipv6_only = false;
 
   if (olsr_cnf->ip_version == AF_INET) {
@@ -113,6 +115,7 @@ static const struct olsrd_plugin_parameters plugin_parameters[] = { //
         { .name = "port", .set_plugin_parameter = &set_plugin_port, .data = &ipc_port }, //
         { .name = "accept", .set_plugin_parameter = &set_plugin_ipaddress, .data = &txtinfo_accept_ip }, //
         { .name = "listen", .set_plugin_parameter = &set_plugin_ipaddress, .data = &txtinfo_listen_ip }, //
+        { .name = "httpheaders", .set_plugin_parameter = &set_plugin_boolean, .data = &http_headers }, //
         { .name = "ipv6only", .set_plugin_parameter = &set_plugin_boolean, .data = &txtinfo_ipv6_only } //
     };
 
index df9be77..8ea9bd9 100644 (file)
@@ -814,8 +814,10 @@ static void send_info(unsigned int send_what, int the_socket) {
   abuf_init(&abuf, 4096);
 
   /* Print minimal http header */
-  abuf_puts(&abuf, "HTTP/1.0 200 OK\n");
-  abuf_puts(&abuf, "Content-type: text/plain\n\n");
+  if (http_headers) {
+    abuf_puts(&abuf, "HTTP/1.0 200 OK\n");
+    abuf_puts(&abuf, "Content-type: text/plain\n\n");
+  }
 
   /* Print tables to IPC socket */
 
index 4f61c44..c0659ba 100644 (file)
@@ -60,6 +60,7 @@ extern union olsr_ip_addr txtinfo_accept_ip;
 extern union olsr_ip_addr txtinfo_listen_ip;
 extern int ipc_port;
 extern int nompr;
+extern bool http_headers;
 extern int txtinfo_ipv6_only;
 
 int olsrd_plugin_interface_version(void);