Fixed various bugs related to NETDIRECT stuff in httpinfo plugin
authorAndreas Tonnesen <andreto@olsr.org>
Mon, 18 Sep 2006 18:55:30 +0000 (18:55 +0000)
committerAndreas Tonnesen <andreto@olsr.org>
Mon, 18 Sep 2006 18:55:30 +0000 (18:55 +0000)
lib/httpinfo/src/admin_interface.c
lib/httpinfo/src/olsrd_httpinfo.c

index a86f176..4cea745 100644 (file)
@@ -37,7 +37,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: admin_interface.c,v 1.6 2005/05/29 12:47:41 br1 Exp $
+ * $Id: admin_interface.c,v 1.7 2006/09/18 18:55:30 kattemat Exp $
  */
 
 /*
 #include <string.h>
 #include <stdlib.h>
 
+extern int netsprintf(char *str, const char* format, ...);
+#define sprintf netsprintf
+#define NETDIRECT
+
 int
 build_admin_body(char *buf, olsr_u32_t bufsize)
 {
index e549726..6be362e 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: olsrd_httpinfo.c,v 1.58 2006/01/07 08:17:43 kattemat Exp $
+ * $Id: olsrd_httpinfo.c,v 1.59 2006/09/18 18:55:30 kattemat Exp $
  */
 
 /*
@@ -1191,7 +1191,18 @@ build_cfgfile_body(char *buf, olsr_u32_t bufsize)
       i++;
     }
 
-  size += olsrd_write_cnf_buf(olsr_cnf, &buf[size], bufsize-size);
+#ifdef NETDIRECT
+    {
+        /* Hack to make netdirect stuff work with
+           olsrd_write_cnf_buf
+        */
+        char tmpBuf[10000];
+        size = olsrd_write_cnf_buf(olsr_cnf, tmpBuf, 10000);
+        sprintf(&buf[size], tmpBuf);
+    }
+#else
+  size += olsrd_write_cnf_buf(olsr_cnf, &buf[size], bufsize - size);
+#endif
   
   if(size < 0)
     {
@@ -1204,7 +1215,7 @@ build_cfgfile_body(char *buf, olsr_u32_t bufsize)
       size += sprintf(&buf[size], cfgfile_body[i]);
       i++;
     }
+  printf("RETURNING %d\n", size);
   return size;
 }