* converted TAS plugin interface to version 5. Untested since I have not test cases...
authorBernd Petrovitsch <bernd@firmix.at>
Sun, 2 Sep 2007 22:17:00 +0000 (22:17 +0000)
committerBernd Petrovitsch <bernd@firmix.at>
Sun, 2 Sep 2007 22:17:00 +0000 (22:17 +0000)
lib/tas/src/http.c
lib/tas/src/http.h
lib/tas/src/plugin.c
lib/tas/test.c

index 70bf32e..01d1b4c 100644 (file)
@@ -37,7 +37,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: http.c,v 1.5 2005/11/10 19:50:42 kattemat Exp $
+ * $Id: http.c,v 1.6 2007/09/02 22:17:00 bernd67 Exp $
  */
 
 #include "link.h"
@@ -447,7 +447,7 @@ void httpInit(void)
   getRandomBytes(cookieStruct.key, 16);
 }
 
-int httpSetAddress(const char *addrStr)
+int httpSetAddress(const char *addrStr, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
 {
   if (parseIpAddr(&confAddr, addrStr) < 0)
   {
@@ -458,7 +458,7 @@ int httpSetAddress(const char *addrStr)
   return 0;
 }
 
-int httpSetPort(const char *portStr)
+int httpSetPort(const char *portStr, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
 {
   unsigned int port;
 
@@ -479,7 +479,7 @@ int httpSetPort(const char *portStr)
   return 0;
 }
 
-int httpSetRootDir(const char *rootDir)
+int httpSetRootDir(const char *rootDir, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
 {
   if (checkAbsPath(rootDir) < 0)
   {
@@ -491,7 +491,7 @@ int httpSetRootDir(const char *rootDir)
   return 0;
 }
 
-int httpSetWorkDir(const char *workDir)
+int httpSetWorkDir(const char *workDir, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
 {
   if (checkAbsPath(workDir) < 0)
   {
@@ -503,22 +503,25 @@ int httpSetWorkDir(const char *workDir)
   return 0;
 }
 
-void httpSetIndexFile(const char *indexFile)
+int httpSetIndexFile(const char *indexFile, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
 {
   confIndexFile = myStrdup(indexFile);
+  return 0;
 }
 
-void httpSetUser(const char *user)
+int httpSetUser(const char *user, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
 {
   confUser = myStrdup(user);
+  return 0;
 }
 
-void httpSetPassword(const char *password)
+int httpSetPassword(const char *password, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
 {
   confPassword = myStrdup(password);
+  return 0;
 }
 
-int httpSetSessTime(const char *timeStr)
+int httpSetSessTime(const char *timeStr, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
 {
   unsigned int time;
 
@@ -539,12 +542,13 @@ int httpSetSessTime(const char *timeStr)
   return 0;
 }
 
-void httpSetPubDir(const char *pubDir)
+int httpSetPubDir(const char *pubDir, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
 {
   confPubDir = myStrdup(pubDir);
+  return 0;
 }
 
-int httpSetQuantum(const char *quantumStr)
+int httpSetQuantum(const char *quantumStr, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
 {
   unsigned int quantum;
 
@@ -565,7 +569,7 @@ int httpSetQuantum(const char *quantumStr)
   return 0;
 }
 
-int httpSetMessTime(const char *timeStr)
+int httpSetMessTime(const char *timeStr, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
 {
   unsigned int time;
 
@@ -586,7 +590,7 @@ int httpSetMessTime(const char *timeStr)
   return 0;
 }
 
-int httpSetMessLimit(const char *limitStr)
+int httpSetMessLimit(const char *limitStr, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
 {
   unsigned int limit;
 
index c53967a..2ace6d8 100644 (file)
@@ -37,7 +37,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: http.h,v 1.1 2005/04/12 17:17:26 tlopatic Exp $
+ * $Id: http.h,v 1.2 2007/09/02 22:17:00 bernd67 Exp $
  */
 
 #define CHUNK_SIZE 1024
@@ -117,18 +117,18 @@ struct connInfo
 
 extern void httpInit(void);
 
-extern int httpSetAddress(const char *addrStr);
-extern int httpSetPort(const char *portStr);
-extern int httpSetRootDir(const char *rootDir);
-extern int httpSetWorkDir(const char *workDir);
-extern void httpSetIndexFile(const char *indexFile);
-extern void httpSetUser(const char *user);
-extern void httpSetPassword(const char *password);
-extern int httpSetSessTime(const char *timeStr);
-extern void httpSetPubDir(const char *pref);
-extern int httpSetQuantum(const char *quantumStr);
-extern int httpSetMessTime(const char *timeStr);
-extern int httpSetMessLimit(const char *limitStr);
+extern int httpSetAddress(const char *addrStr, void *data, unsigned int addon);
+extern int httpSetPort(const char *portStr, void *data, unsigned int addon);
+extern int httpSetRootDir(const char *rootDir, void *data, unsigned int addon);
+extern int httpSetWorkDir(const char *workDir, void *data, unsigned int addon);
+extern int httpSetIndexFile(const char *indexFile, void *data, unsigned int addon);
+extern int httpSetUser(const char *user, void *data, unsigned int addon);
+extern int httpSetPassword(const char *password, void *data, unsigned int addon);
+extern int httpSetSessTime(const char *timeStr, void *data, unsigned int addon);
+extern int httpSetPubDir(const char *pref, void *data, unsigned int addon);
+extern int httpSetQuantum(const char *quantumStr, void *data, unsigned int addon);
+extern int httpSetMessTime(const char *timeStr, void *data, unsigned int addon);
+extern int httpSetMessLimit(const char *limitStr, void *data, unsigned int addon);
 
 extern int httpSetup(void);
 extern int httpService(int freq);
index 858a48b..21f98f2 100644 (file)
@@ -37,7 +37,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: plugin.c,v 1.8 2007/04/20 13:46:03 bernd67 Exp $
+ * $Id: plugin.c,v 1.9 2007/09/02 22:17:00 bernd67 Exp $
  */
 
 #include <string.h>
@@ -50,6 +50,7 @@
 #include "http.h"
 #include "glua.h"
 #include "glua_ext.h"
+#include "olsrd_plugin.h"
 
 #include <defs.h>
 #include <olsr.h>
@@ -67,6 +68,8 @@
 #include <mpr_selector_set.h>
 #include <duplicate_set.h>
 
+#define PLUGIN_INTERFACE_VERSION 5
+
 #define MESSAGE_TYPE 129
 
 int olsrd_plugin_interface_version(void);
@@ -462,7 +465,7 @@ static void serviceFunc(void)
 
 int olsrd_plugin_interface_version(void)
 {
-  return 4;
+  return PLUGIN_INTERFACE_VERSION;
 }
 
 int olsrd_plugin_init(void)
@@ -486,95 +489,23 @@ int olsrd_plugin_init(void)
   return 0;
 }
 
-int olsrd_plugin_register_param(char *name, char *value)
+static const struct olsrd_plugin_parameters plugin_parameters[] = {
+    { .name = "address",   .set_plugin_parameter = &httpSetAddress,   .data = NULL },
+    { .name = "port",      .set_plugin_parameter = &httpSetPort,      .data = NULL },
+    { .name = "rootdir",   .set_plugin_parameter = &httpSetRootDir,   .data = NULL },
+    { .name = "workdir",   .set_plugin_parameter = &httpSetWorkDir,   .data = NULL },
+    { .name = "indexfile", .set_plugin_parameter = &httpSetIndexFile, .data = NULL },
+    { .name = "user",      .set_plugin_parameter = &httpSetUser,      .data = NULL },
+    { .name = "password",  .set_plugin_parameter = &httpSetPassword,  .data = NULL },
+    { .name = "sesstime",  .set_plugin_parameter = &httpSetSessTime,  .data = NULL },
+    { .name = "pubdir",    .set_plugin_parameter = &httpSetPubDir,    .data = NULL },
+    { .name = "quantum",   .set_plugin_parameter = &httpSetQuantum,   .data = NULL },
+    { .name = "messtime",  .set_plugin_parameter = &httpSetMessTime,  .data = NULL },
+    { .name = "messlimit", .set_plugin_parameter = &httpSetMessLimit, .data = NULL },
+};
+
+void olsrd_get_plugin_parameters(const struct olsrd_plugin_parameters **params, int *size)
 {
-  if (strcmp(name, "address") == 0)
-  {
-    if (httpSetAddress(value) < 0)
-      return 0;
-
-    return 1;
-  }
-
-  if (strcmp(name, "port") == 0)
-  {
-    if (httpSetPort(value) < 0)
-      return 0;
-
-    return 1;
-  }
-
-  if (strcmp(name, "rootdir") == 0)
-  {
-    if (httpSetRootDir(value) < 0)
-      return 0;
-
-    return 1;
-  }
-
-  if (strcmp(name, "workdir") == 0)
-  {
-    if (httpSetWorkDir(value) < 0)
-      return 0;
-
-    return 1;
-  }
-
-  if (strcmp(name, "indexfile") == 0)
-  {
-    httpSetIndexFile(value);
-    return 1;
-  }
-
-  if (strcmp(name, "user") == 0)
-  {
-    httpSetUser(value);
-    return 1;
-  }
-
-  if (strcmp(name, "password") == 0)
-  {
-    httpSetPassword(value);
-    return 1;
-  }
-
-  if (strcmp(name, "sesstime") == 0)
-  {
-    if (httpSetSessTime(value) < 0)
-      return 0;
-
-    return 1;
-  }
-
-  if (strcmp(name, "pubdir") == 0)
-  {
-    httpSetPubDir(value);
-    return 1;
-  }
-
-  if (strcmp(name, "quantum") == 0)
-  {
-    if (httpSetQuantum(value) < 0)
-      return 0;
-
-    return 1;
-  }
-
-  if (strcmp(name, "messtime") == 0)
-  {
-    if (httpSetMessTime(value) < 0)
-      return 0;
-
-    return 1;
-  }
-
-  if (strcmp(name, "messlimit") == 0)
-  {
-    if (httpSetMessLimit(value) < 0)
-      return 0;
-
-    return 1;
-  }
-
-  return 0;
+    *params = plugin_parameters;
+    *size = sizeof(plugin_parameters)/sizeof(*plugin_parameters);
 }
index e0b45a8..e13721b 100644 (file)
@@ -37,7 +37,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: test.c,v 1.2 2007/07/15 17:48:55 bernd67 Exp $
+ * $Id: test.c,v 1.3 2007/09/02 22:17:00 bernd67 Exp $
  */
 
 #include "src/link.h"
@@ -88,7 +88,7 @@ int main(int ac, char *av[])
         return 1;
       }
 
-      if (httpSetAddress(av[i]) < 0)
+      if (httpSetAddress(av[i], NULL, 0) < 0)
       {
         fprintf(stderr, "cannot set address\n");
         return 1;
@@ -104,7 +104,7 @@ int main(int ac, char *av[])
         return 1;
       }
 
-      if (httpSetPort(av[i]) < 0)
+      if (httpSetPort(av[i], NULL, 0) < 0)
       {
         fprintf(stderr, "cannot set port\n");
         return 1;
@@ -120,7 +120,7 @@ int main(int ac, char *av[])
         return 1;
       }
 
-      if (httpSetWorkDir(av[i]) < 0)
+      if (httpSetWorkDir(av[i], NULL, 0) < 0)
       {
         fprintf(stderr, "cannot set work directory\n");
         return 1;
@@ -136,7 +136,7 @@ int main(int ac, char *av[])
         return 1;
       }
 
-      if (httpSetRootDir(av[i]) < 0)
+      if (httpSetRootDir(av[i], NULL, 0) < 0)
       {
         fprintf(stderr, "cannot set root directory\n");
         return 1;
@@ -152,7 +152,7 @@ int main(int ac, char *av[])
         return 1;
       }
 
-      httpSetIndexFile(av[i]);
+      httpSetIndexFile(av[i], NULL, 0);
     }
 
     else if (strcmp(av[i], "--user") == 0)
@@ -164,7 +164,7 @@ int main(int ac, char *av[])
         return 1;
       }
 
-      httpSetUser(av[i]);
+      httpSetUser(av[i], NULL, 0);
     }
 
     else if (strcmp(av[i], "--password") == 0)
@@ -176,7 +176,7 @@ int main(int ac, char *av[])
         return 1;
       }
 
-      httpSetPassword(av[i]);
+      httpSetPassword(av[i], NULL, 0);
     }
 
     else if (strcmp(av[i], "--sess-time") == 0)
@@ -188,7 +188,7 @@ int main(int ac, char *av[])
         return 1;
       }
 
-      if (httpSetSessTime(av[i]) < 0)
+      if (httpSetSessTime(av[i], NULL, 0) < 0)
       {
         fprintf(stderr, "cannot set session timeout\n");
         return 1;
@@ -204,7 +204,7 @@ int main(int ac, char *av[])
         return 1;
       }
 
-      httpSetPubDir(av[i]);
+      httpSetPubDir(av[i], NULL, 0);
     }
 
     else if (strcmp(av[i], "--quantum") == 0)
@@ -216,7 +216,7 @@ int main(int ac, char *av[])
         return 1;
       }
 
-      if (httpSetQuantum(av[i]) < 0)
+      if (httpSetQuantum(av[i], NULL, 0) < 0)
       {
         fprintf(stderr, "cannot set quantum\n");
         return 1;
@@ -232,7 +232,7 @@ int main(int ac, char *av[])
         return 1;
       }
 
-      if (httpSetMessTime(av[i]) < 0)
+      if (httpSetMessTime(av[i], NULL, 0) < 0)
       {
         fprintf(stderr, "cannot set message timeout\n");
         return 1;
@@ -248,7 +248,7 @@ int main(int ac, char *av[])
         return 1;
       }
 
-      if (httpSetMessLimit(av[i]) < 0)
+      if (httpSetMessLimit(av[i], NULL, 0) < 0)
       {
         fprintf(stderr, "cannot set message queue limit\n");
         return 1;