- applied 115-olsrd-nameserviceparamfix.patch and
authorBernd Petrovitsch <bernd@firmix.at>
Mon, 17 Sep 2007 21:57:06 +0000 (21:57 +0000)
committerBernd Petrovitsch <bernd@firmix.at>
Mon, 17 Sep 2007 21:57:06 +0000 (21:57 +0000)
  116-olsrd-fix-pluginparam-addons.patch by Sven-Ola Tuecke
  <mail2news@commando.de> fixing the compilation warning on 64bit.

16 files changed:
CHANGELOG
lib/bmf/src/Address.c
lib/bmf/src/Address.h
lib/bmf/src/NetworkInterfaces.c
lib/bmf/src/NetworkInterfaces.h
lib/dyn_gw/src/olsrd_dyn_gw.c
lib/httpinfo/src/olsrd_plugin.c
lib/mini/src/olsrd_plugin.c
lib/nameservice/src/nameservice.c
lib/secure/src/olsrd_plugin.c
lib/tas/src/http.c
lib/tas/src/http.h
lib/tas/test.c
src/olsrd_plugin.h
src/plugin_loader.c
src/plugin_util.c

index 5e34783..ed9ccfa 100644 (file)
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,5 @@
 This file states changes as of version 0.2.4:
-$Id: CHANGELOG,v 1.87 2007/09/16 21:45:25 bernd67 Exp $
+$Id: CHANGELOG,v 1.88 2007/09/17 21:57:05 bernd67 Exp $
 
 0.5.4 ---------------------------------------------------------------------
 
@@ -128,6 +128,8 @@ http://download-master.berlin.freifunk.net/sven-ola/nylon/packages/olsrd/files/
   policy routing table to use. Defaults to 254 (== main). 
   This patch was modified/clenaed up by <bernd@firmix.at> to use "#if"
   instead of "#ifdef" as it's more robust against typos.
+- 115-olsrd-nameserviceparamfix.patch and 116-olsrd-fix-pluginparam-addons.patch
+  fixing the compilation warning on 64bit
 
 PATCH by Arnd Hannemann <hannemann@i4.informatik.rwth-aachen.de>
 olsr_makefile_make_use_of_exename.patch
@@ -154,6 +156,8 @@ PATCHES and CLEANUPS by Bernd Petrovitsch <bernd@firmix.at>
   This kills *lots* of (more than) superflous malloc()s and the same
   number of (free()s). And it also kills some code and copying around of
   data.
+- Make it compile without warning with flex-2.5.33 (to be found on Fedora 7
+  and Gentoo in Sep-2007) again.
 
 - converted the dyn_gw plugin to plugin interface version 5 (which leaves
   the quagga plugion as the last with the old one).
index dc63b02..1f0ce0b 100644 (file)
@@ -68,7 +68,7 @@ int EnableLocalBroadcast = 1;
  * Return     : success (0) or fail (1)
  * Data Used  : none
  * ------------------------------------------------------------------------- */
-int DoLocalBroadcast(const char* enable, void* data __attribute__((unused)), unsigned int addon  __attribute__((unused)))
+int DoLocalBroadcast(const char* enable, void* data __attribute__((unused)), set_plugin_parameter_addon addon  __attribute__((unused)))
 {
   if (strcmp(enable, "yes") == 0)
   {
index 1a97075..7d28c30 100644 (file)
  * ------------------------------------------------------------------------- */
 
 #include "olsr_types.h" /* olsr_ip_addr */
+#include "olsrd_plugin.h" /* union set_plugin_parameter_addon */
 #include "interfaces.h" /* struct interface */
 
 struct TBmfInterface;
 
 extern int EnableLocalBroadcast;
 
-int DoLocalBroadcast(const char* enable, void* data, unsigned int addon);
+int DoLocalBroadcast(const char* enable, void* data, set_plugin_parameter_addon addon);
 int IsMulticast(union olsr_ip_addr* ipAddress);
 int IsOlsrOrBmfPacket(unsigned char* ipPacket);
 
index eed7a34..32e1c5a 100644 (file)
@@ -127,7 +127,7 @@ int CapturePacketsOnOlsrInterfaces = 0;
  * Return     : success (0) or fail (1)
  * Data Used  : EtherTunTapIfName
  * ------------------------------------------------------------------------- */
-int SetBmfInterfaceName(const char* ifname, void* data __attribute__((unused)), unsigned int addon  __attribute__((unused)))
+int SetBmfInterfaceName(const char* ifname, void* data __attribute__((unused)), set_plugin_parameter_addon addon  __attribute__((unused)))
 {
   strncpy(EtherTunTapIfName, ifname, IFNAMSIZ - 1);
   EtherTunTapIfName[IFNAMSIZ - 1] = '\0'; /* Ensures null termination */
@@ -146,7 +146,7 @@ int SetBmfInterfaceName(const char* ifname, void* data __attribute__((unused)),
  * Data Used  : EtherTunTapIp, EtherTunTapIpMask, EtherTunTapIpBroadcast,
  *              TunTapIpOverruled
  * ------------------------------------------------------------------------- */
-int SetBmfInterfaceIp(const char* ip, void* data __attribute__((unused)), unsigned int addon  __attribute__((unused)))
+int SetBmfInterfaceIp(const char* ip, void* data __attribute__((unused)), set_plugin_parameter_addon addon  __attribute__((unused)))
 {
 #define IPV4_MAX_ADDRLEN 16
 #define IPV4_MAX_PREFIXLEN 32
@@ -216,7 +216,7 @@ int SetBmfInterfaceIp(const char* ip, void* data __attribute__((unused)), unsign
  * Return     : success (0) or fail (1)
  * Data Used  : none
  * ------------------------------------------------------------------------- */
-int SetCapturePacketsOnOlsrInterfaces(const char* enable, void* data __attribute__((unused)), unsigned int addon  __attribute__((unused)))
+int SetCapturePacketsOnOlsrInterfaces(const char* enable, void* data __attribute__((unused)), set_plugin_parameter_addon addon  __attribute__((unused)))
 {
   if (strcmp(enable, "yes") == 0)
   {
@@ -244,7 +244,7 @@ int SetCapturePacketsOnOlsrInterfaces(const char* enable, void* data __attribute
  * Return     : success (0) or fail (1)
  * Data Used  : none
  * ------------------------------------------------------------------------- */
-int SetBmfMechanism(const char* mechanism, void* data __attribute__((unused)), unsigned int addon  __attribute__((unused)))
+int SetBmfMechanism(const char* mechanism, void* data __attribute__((unused)), set_plugin_parameter_addon addon  __attribute__((unused)))
 {
   if (strcmp(mechanism, "Broadcast") == 0)
   {
@@ -1769,7 +1769,7 @@ static int nNonOlsrIfs = 0;
  * Return     : success (0) or fail (1)
  * Data Used  : NonOlsrIfNames
  * ------------------------------------------------------------------------- */
-int AddNonOlsrBmfIf(const char* ifName, void* data __attribute__((unused)), unsigned int addon  __attribute__((unused)))
+int AddNonOlsrBmfIf(const char* ifName, void* data __attribute__((unused)), set_plugin_parameter_addon addon  __attribute__((unused)))
 {
   assert(ifName != NULL);
 
index 88b2c40..a39e293 100644 (file)
@@ -45,6 +45,7 @@
 
 /* OLSR includes */
 #include "olsr_types.h" /* olsr_ip_addr */
+#include "olsrd_plugin.h" /* union set_plugin_parameter_addon */
 
 /* Plugin includes */
 #include "Packet.h" /* IFHWADDRLEN */
@@ -120,10 +121,10 @@ extern int CapturePacketsOnOlsrInterfaces;
 enum TBmfMechanism { BM_BROADCAST = 0, BM_UNICAST_PROMISCUOUS };
 extern enum TBmfMechanism BmfMechanism;
 
-int SetBmfInterfaceName(const char* ifname, void* data, unsigned int addon);
-int SetBmfInterfaceIp(const char* ip, void* data, unsigned int addon);
-int SetCapturePacketsOnOlsrInterfaces(const char* enable, void* data, unsigned int addon);
-int SetBmfMechanism(const char* mechanism, void* data, unsigned int addon);
+int SetBmfInterfaceName(const char* ifname, void* data, set_plugin_parameter_addon addon);
+int SetBmfInterfaceIp(const char* ip, void* data, set_plugin_parameter_addon addon);
+int SetCapturePacketsOnOlsrInterfaces(const char* enable, void* data, set_plugin_parameter_addon addon);
+int SetBmfMechanism(const char* mechanism, void* data, set_plugin_parameter_addon addon);
 int DeactivateSpoofFilter(void);
 void RestoreSpoofFilter(void);
 
@@ -143,7 +144,7 @@ void GetBestTwoNeighbors(
 int CreateBmfNetworkInterfaces(struct interface* skipThisIntf);
 void AddInterface(struct interface* newIntf);
 void CloseBmfNetworkInterfaces(void);
-int AddNonOlsrBmfIf(const char* ifName, void* data, unsigned int addon);
+int AddNonOlsrBmfIf(const char* ifName, void* data, set_plugin_parameter_addon addon);
 int IsNonOlsrBmfIf(const char* ifName);
 void CheckAndUpdateLocalBroadcast(unsigned char* ipPacket, union olsr_ip_addr* broadAddr);
 void AddMulticastRoute(void);
index 6bddff7..b81a2af 100644 (file)
@@ -37,7 +37,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: olsrd_dyn_gw.c,v 1.22 2007/09/13 15:41:12 bernd67 Exp $
+ * $Id: olsrd_dyn_gw.c,v 1.23 2007/09/17 21:57:05 bernd67 Exp $
  */
 
 /*
@@ -135,7 +135,7 @@ olsr_event_doing_hna(void *);
 /**
  * read config file parameters
  */
-static int set_plugin_double(const char *value, void *data, unsigned int addon __attribute__((unused)))
+static int set_plugin_double(const char *value, void *data, set_plugin_parameter_addon addon __attribute__((unused)))
 {
     char *endptr;
     const double d = strtod(value, &endptr);
@@ -153,7 +153,7 @@ static int set_plugin_double(const char *value, void *data, unsigned int addon _
     return 0;
 }
 
-static int set_plugin_ping(const char *value, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
+static int set_plugin_ping(const char *value, void *data __attribute__((unused)), set_plugin_parameter_addon addon __attribute__((unused)))
 {
     union olsr_ip_addr foo_addr;
 
@@ -176,7 +176,7 @@ static int set_plugin_ping(const char *value, void *data __attribute__((unused))
     return 0;
 }
 
-static int set_plugin_hna(const char *value, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
+static int set_plugin_hna(const char *value, void *data __attribute__((unused)), set_plugin_parameter_addon addon __attribute__((unused)))
 {
     union olsr_ip_addr temp_net;
     union olsr_ip_addr temp_netmask;
index 106b0d4..2f0452d 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: olsrd_plugin.c,v 1.19 2007/09/16 22:14:08 bernd67 Exp $
+ * $Id: olsrd_plugin.c,v 1.20 2007/09/17 21:57:05 bernd67 Exp $
  */
 
 /*
@@ -64,8 +64,8 @@ struct allowed_net *allowed_nets = NULL;
 static void my_init(void) __attribute__ ((constructor));
 static void my_fini(void) __attribute__ ((destructor));
 
-static int add_plugin_ipnet(const char *value, void *data, unsigned int);
-static int add_plugin_ipaddr(const char *value, void *data, unsigned int);
+static int add_plugin_ipnet(const char *value, void *data, set_plugin_parameter_addon);
+static int add_plugin_ipaddr(const char *value, void *data, set_plugin_parameter_addon);
 
 static int insert_plugin_ipnet(const char *sz_net, const char *sz_mask, struct allowed_net **allowed_nets);
 
@@ -140,10 +140,9 @@ static int insert_plugin_ipnet(const char *sz_net, const char *sz_mask, struct a
     return 0;
 }
 
-static int add_plugin_ipnet(const char *value, void *data, unsigned int addon)
+static int add_plugin_ipnet(const char *value, void *data, set_plugin_parameter_addon addon __attribute__((unused)))
 {
     char sz_net[100], sz_mask[100]; /* IPv6 in the future */
-    if (addon) {}
 
     if(sscanf(value, "%99s %99s", sz_net, sz_mask) != 2) {
         olsr_printf(1, "(HTTPINFO) Error parsing net param \"%s\"!\n", value);
@@ -152,9 +151,8 @@ static int add_plugin_ipnet(const char *value, void *data, unsigned int addon)
     return insert_plugin_ipnet(sz_net, sz_mask, data);
 }
 
-static int add_plugin_ipaddr(const char *value, void *data, unsigned int addon)
+static int add_plugin_ipaddr(const char *value, void *data, set_plugin_parameter_addon addon __attribute__((unused)))
 {
-    if (addon) {}
     return insert_plugin_ipnet(value, "255.255.255.255", data);
 }
 
index 90ea6f5..bb7c7de 100644 (file)
@@ -29,7 +29,7 @@
  *
  */
 
-/* $Id: olsrd_plugin.c,v 1.4 2007/09/02 21:37:49 bernd67 Exp $ */
+/* $Id: olsrd_plugin.c,v 1.5 2007/09/17 21:57:05 bernd67 Exp $ */
 
  /*
  * Example plugin for olsrd.org OLSR daemon
@@ -62,7 +62,7 @@ int olsrd_plugin_interface_version(void)
 }
 
 
-static int set_plugin_test(const char *value, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
+static int set_plugin_test(const char *value, void *data __attribute__((unused)), set_plugin_parameter_addon addon __attribute__((unused)))
 {
     printf("\n*** MINI: parameter test: %s\n", value);
     return 0;
index f7fc661..86c6368 100644 (file)
@@ -31,7 +31,7 @@
  *
  */
 
-/* $Id: nameservice.c,v 1.29 2007/09/13 15:31:59 bernd67 Exp $ */
+/* $Id: nameservice.c,v 1.30 2007/09/17 21:57:05 bernd67 Exp $ */
 
 /*
  * Dynamic linked library for UniK OLSRd
@@ -165,19 +165,19 @@ name_constructor(void)
 }
 
 
-static int set_nameservice_server(const char *value, void *data, unsigned int addon)
+static int set_nameservice_server(const char *value, void *data, set_plugin_parameter_addon addon)
 {
        union olsr_ip_addr ip;
        struct name_entry **v = data;
        if (0 == strlen(value))
        {
-               *v = add_name_to_list(*v, "", addon, NULL);
+               *v = add_name_to_list(*v, "", addon.ui, NULL);
                 OLSR_PRINTF(1, "%s got %s (main address)\n", "Got", value);
                return 0;
        }
        else if (0 < inet_pton(olsr_cnf->ip_version, value, &ip))
        {
-               *v = add_name_to_list(*v, "", addon, &ip);
+               *v = add_name_to_list(*v, "", addon.ui, &ip);
                 OLSR_PRINTF(1, "%s got %s\n", "Got", value);
                return 0;
        }
@@ -188,12 +188,12 @@ static int set_nameservice_server(const char *value, void *data, unsigned int ad
        return 1;
 }
 
-static int set_nameservice_name(const char *value, void *data, unsigned int addon)
+static int set_nameservice_name(const char *value, void *data, set_plugin_parameter_addon addon)
 {
        struct name_entry **v = data;
        if (0 < strlen(value))
        {
-               *v = add_name_to_list(*v, (char*)value, addon, NULL);
+               *v = add_name_to_list(*v, (char*)value, addon.ui, NULL);
                 OLSR_PRINTF(1, "%s got %s (main address)\n", "Got", value);
                return 0;
        }
@@ -204,28 +204,27 @@ static int set_nameservice_name(const char *value, void *data, unsigned int addo
        return 1;
 }
 
-static int set_nameservice_host(const char *value, void *data, unsigned int addon)
+static int set_nameservice_host(const char *value, void *data, set_plugin_parameter_addon addon)
 {
        union olsr_ip_addr ip;
        struct name_entry **v = data;
-       if (0 < inet_pton(olsr_cnf->ip_version, (char*)addon, &ip))
+       if (0 < inet_pton(olsr_cnf->ip_version, addon.pc, &ip))
        {
                // the IP is validated later
-               *v = add_name_to_list(*v, (char*)value, addon, &ip);
-                OLSR_PRINTF(1, "%s: %s got %s\n", "Got", (char*) addon, value);
+               *v = add_name_to_list(*v, (char*)value, NAME_HOST, &ip);
+                OLSR_PRINTF(1, "%s: %s got %s\n", "Got", addon.pc, value);
                return 0;
        }
        else
        {
-                OLSR_PRINTF(0, "%s: Illegal IP address \"%s\"", (char*) addon, value);
+                OLSR_PRINTF(0, "%s: Illegal IP address \"%s\"", addon.pc, value);
        }
        return 1;
 }
 
-static int set_nameservice_float(const char *value, void *data, unsigned int addon)
+static int set_nameservice_float(const char *value, void *data, set_plugin_parameter_addon addon __attribute__((unused)))
 {
     const float thefloat = atof(value);
-    if (addon) {}
     if (data != NULL)
     {
         float *v = data;
@@ -242,19 +241,19 @@ static int set_nameservice_float(const char *value, void *data, unsigned int add
 static const struct olsrd_plugin_parameters plugin_parameters[] = {
     { .name = "interval",      .set_plugin_parameter = &set_plugin_int,         .data = &my_interval },
     { .name = "timeout",       .set_plugin_parameter = &set_nameservice_float,  .data = &my_timeout },
-    { .name = "hosts-file",    .set_plugin_parameter = &set_plugin_string,      .data = &my_hosts_file,    .addon = sizeof(my_hosts_file) },
-    { .name = "resolv-file",   .set_plugin_parameter = &set_plugin_string,      .data = &my_resolv_file,   .addon = sizeof(my_resolv_file) },
-    { .name = "suffix",        .set_plugin_parameter = &set_plugin_string,      .data = &my_suffix,        .addon = sizeof(my_suffix) },
-    { .name = "add-hosts",     .set_plugin_parameter = &set_plugin_string,      .data = &my_add_hosts,     .addon = sizeof(my_add_hosts) },
-    { .name = "services-file", .set_plugin_parameter = &set_plugin_string,      .data = &my_services_file, .addon = sizeof(my_services_file) },
+    { .name = "hosts-file",    .set_plugin_parameter = &set_plugin_string,      .data = &my_hosts_file,    .addon = {sizeof(my_hosts_file)} },
+    { .name = "resolv-file",   .set_plugin_parameter = &set_plugin_string,      .data = &my_resolv_file,   .addon = {sizeof(my_resolv_file)} },
+    { .name = "suffix",        .set_plugin_parameter = &set_plugin_string,      .data = &my_suffix,        .addon = {sizeof(my_suffix)} },
+    { .name = "add-hosts",     .set_plugin_parameter = &set_plugin_string,      .data = &my_add_hosts,     .addon = {sizeof(my_add_hosts)} },
+    { .name = "services-file", .set_plugin_parameter = &set_plugin_string,      .data = &my_services_file, .addon = {sizeof(my_services_file)} },
     { .name = "lat",           .set_plugin_parameter = &set_nameservice_float,  .data = &my_lat },
     { .name = "lon",           .set_plugin_parameter = &set_nameservice_float,  .data = &my_lon },
-    { .name = "latlon-file",   .set_plugin_parameter = &set_plugin_string,      .data = &my_latlon_file,   .addon = sizeof(my_latlon_file) },
-    { .name = "latlon-infile", .set_plugin_parameter = &set_plugin_string,      .data = &latlon_in_file,   .addon = sizeof(latlon_in_file) },
-    { .name = "dns-server",    .set_plugin_parameter = &set_nameservice_server, .data = &my_forwarders,    .addon = NAME_FORWARDER },
-    { .name = "name",          .set_plugin_parameter = &set_nameservice_name,   .data = &my_names,         .addon = NAME_HOST },
-    { .name = "service",       .set_plugin_parameter = &set_nameservice_name,   .data = &my_services,      .addon = NAME_SERVICE },
-    { .name = "",              .set_plugin_parameter = &set_nameservice_host,   .data = &my_names,         .addon = NAME_HOST },
+    { .name = "latlon-file",   .set_plugin_parameter = &set_plugin_string,      .data = &my_latlon_file,   .addon = {sizeof(my_latlon_file)} },
+    { .name = "latlon-infile", .set_plugin_parameter = &set_plugin_string,      .data = &latlon_in_file,   .addon = {sizeof(latlon_in_file)} },
+    { .name = "dns-server",    .set_plugin_parameter = &set_nameservice_server, .data = &my_forwarders,    .addon = {NAME_FORWARDER} },
+    { .name = "name",          .set_plugin_parameter = &set_nameservice_name,   .data = &my_names,         .addon = {NAME_HOST} },
+    { .name = "service",       .set_plugin_parameter = &set_nameservice_name,   .data = &my_services,      .addon = {NAME_SERVICE} },
+    { .name = "",              .set_plugin_parameter = &set_nameservice_host,   .data = &my_names },
 };
 
 void olsrd_get_plugin_parameters(const struct olsrd_plugin_parameters **params, int *size)
@@ -1443,7 +1442,9 @@ write_latlon_file(void)
     struct tc_entry *tc;
     struct tc_edge_entry *tc_edge;
 
-       if (!latlon_table_changed) return;
+       if (!my_names || !latlon_table_changed) {
+        return;
+    }
        OLSR_PRINTF(2, "NAME PLUGIN: writing latlon file\n");
 
        js = fopen( my_latlon_file, "w" );
index 4b6eba1..d2094ba 100644 (file)
@@ -33,7 +33,7 @@
  * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
  * POSSIBILITY OF SUCH DAMAGE.
  *
- * $Id: olsrd_plugin.c,v 1.14 2007/08/25 19:48:42 bernd67 Exp $
+ * $Id: olsrd_plugin.c,v 1.15 2007/09/17 21:57:05 bernd67 Exp $
  */
 
 
@@ -90,10 +90,9 @@ static void my_fini(void)
   secure_plugin_exit();
 }
 
-static int store_string(const char *value, void *data, unsigned int addon)
+static int store_string(const char *value, void *data, set_plugin_parameter_addon addon __attribute__((unused)))
 {
   char *str = data;
-  if (addon) {}
   snprintf(str, FILENAME_MAX+1, "%s", value);
   return 0;
 }
index 01d1b4c..305be4c 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.6 2007/09/02 22:17:00 bernd67 Exp $
+ * $Id: http.c,v 1.7 2007/09/17 21:57:06 bernd67 Exp $
  */
 
 #include "link.h"
@@ -447,7 +447,7 @@ void httpInit(void)
   getRandomBytes(cookieStruct.key, 16);
 }
 
-int httpSetAddress(const char *addrStr, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
+int httpSetAddress(const char *addrStr, void *data __attribute__((unused)), set_plugin_parameter_addon addon __attribute__((unused)))
 {
   if (parseIpAddr(&confAddr, addrStr) < 0)
   {
@@ -458,7 +458,7 @@ int httpSetAddress(const char *addrStr, void *data __attribute__((unused)), unsi
   return 0;
 }
 
-int httpSetPort(const char *portStr, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
+int httpSetPort(const char *portStr, void *data __attribute__((unused)), set_plugin_parameter_addon addon __attribute__((unused)))
 {
   unsigned int port;
 
@@ -479,7 +479,7 @@ int httpSetPort(const char *portStr, void *data __attribute__((unused)), unsigne
   return 0;
 }
 
-int httpSetRootDir(const char *rootDir, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
+int httpSetRootDir(const char *rootDir, void *data __attribute__((unused)), set_plugin_parameter_addon addon __attribute__((unused)))
 {
   if (checkAbsPath(rootDir) < 0)
   {
@@ -491,7 +491,7 @@ int httpSetRootDir(const char *rootDir, void *data __attribute__((unused)), unsi
   return 0;
 }
 
-int httpSetWorkDir(const char *workDir, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
+int httpSetWorkDir(const char *workDir, void *data __attribute__((unused)), set_plugin_parameter_addon addon __attribute__((unused)))
 {
   if (checkAbsPath(workDir) < 0)
   {
@@ -503,25 +503,25 @@ int httpSetWorkDir(const char *workDir, void *data __attribute__((unused)), unsi
   return 0;
 }
 
-int httpSetIndexFile(const char *indexFile, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
+int httpSetIndexFile(const char *indexFile, void *data __attribute__((unused)), set_plugin_parameter_addon addon __attribute__((unused)))
 {
   confIndexFile = myStrdup(indexFile);
   return 0;
 }
 
-int httpSetUser(const char *user, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
+int httpSetUser(const char *user, void *data __attribute__((unused)), set_plugin_parameter_addon addon __attribute__((unused)))
 {
   confUser = myStrdup(user);
   return 0;
 }
 
-int httpSetPassword(const char *password, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
+int httpSetPassword(const char *password, void *data __attribute__((unused)), set_plugin_parameter_addon addon __attribute__((unused)))
 {
   confPassword = myStrdup(password);
   return 0;
 }
 
-int httpSetSessTime(const char *timeStr, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
+int httpSetSessTime(const char *timeStr, void *data __attribute__((unused)), set_plugin_parameter_addon addon __attribute__((unused)))
 {
   unsigned int time;
 
@@ -542,13 +542,13 @@ int httpSetSessTime(const char *timeStr, void *data __attribute__((unused)), uns
   return 0;
 }
 
-int httpSetPubDir(const char *pubDir, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
+int httpSetPubDir(const char *pubDir, void *data __attribute__((unused)), set_plugin_parameter_addon addon __attribute__((unused)))
 {
   confPubDir = myStrdup(pubDir);
   return 0;
 }
 
-int httpSetQuantum(const char *quantumStr, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
+int httpSetQuantum(const char *quantumStr, void *data __attribute__((unused)), set_plugin_parameter_addon addon __attribute__((unused)))
 {
   unsigned int quantum;
 
@@ -569,7 +569,7 @@ int httpSetQuantum(const char *quantumStr, void *data __attribute__((unused)), u
   return 0;
 }
 
-int httpSetMessTime(const char *timeStr, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
+int httpSetMessTime(const char *timeStr, void *data __attribute__((unused)), set_plugin_parameter_addon addon __attribute__((unused)))
 {
   unsigned int time;
 
@@ -590,7 +590,7 @@ int httpSetMessTime(const char *timeStr, void *data __attribute__((unused)), uns
   return 0;
 }
 
-int httpSetMessLimit(const char *limitStr, void *data __attribute__((unused)), unsigned int addon __attribute__((unused)))
+int httpSetMessLimit(const char *limitStr, void *data __attribute__((unused)), set_plugin_parameter_addon addon __attribute__((unused)))
 {
   unsigned int limit;
 
index 2ace6d8..e7646fb 100644 (file)
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: http.h,v 1.2 2007/09/02 22:17:00 bernd67 Exp $
+ * $Id: http.h,v 1.3 2007/09/17 21:57:06 bernd67 Exp $
  */
 
+#include "olsrd_plugin.h" /* union set_plugin_parameter_addon */
+
 #define CHUNK_SIZE 1024
 
 struct chunk
@@ -117,18 +119,18 @@ struct connInfo
 
 extern void httpInit(void);
 
-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 httpSetAddress(const char *addrStr, void *data, set_plugin_parameter_addon addon);
+extern int httpSetPort(const char *portStr, void *data, set_plugin_parameter_addon addon);
+extern int httpSetRootDir(const char *rootDir, void *data, set_plugin_parameter_addon addon);
+extern int httpSetWorkDir(const char *workDir, void *data, set_plugin_parameter_addon addon);
+extern int httpSetIndexFile(const char *indexFile, void *data, set_plugin_parameter_addon addon);
+extern int httpSetUser(const char *user, void *data, set_plugin_parameter_addon addon);
+extern int httpSetPassword(const char *password, void *data, set_plugin_parameter_addon addon);
+extern int httpSetSessTime(const char *timeStr, void *data, set_plugin_parameter_addon addon);
+extern int httpSetPubDir(const char *pref, void *data, set_plugin_parameter_addon addon);
+extern int httpSetQuantum(const char *quantumStr, void *data, set_plugin_parameter_addon addon);
+extern int httpSetMessTime(const char *timeStr, void *data, set_plugin_parameter_addon addon);
+extern int httpSetMessLimit(const char *limitStr, void *data, set_plugin_parameter_addon addon);
 
 extern int httpSetup(void);
 extern int httpService(int freq);
index e13721b..4bc3d70 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.3 2007/09/02 22:17:00 bernd67 Exp $
+ * $Id: test.c,v 1.4 2007/09/17 21:57:05 bernd67 Exp $
  */
 
 #include "src/link.h"
@@ -88,7 +88,7 @@ int main(int ac, char *av[])
         return 1;
       }
 
-      if (httpSetAddress(av[i], NULL, 0) < 0)
+      if (httpSetAddress(av[i], NULL, (set_plugin_parameter_addon){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], NULL, 0) < 0)
+      if (httpSetPort(av[i], NULL, (set_plugin_parameter_addon){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], NULL, 0) < 0)
+      if (httpSetWorkDir(av[i], NULL, (set_plugin_parameter_addon){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], NULL, 0) < 0)
+      if (httpSetRootDir(av[i], NULL, (set_plugin_parameter_addon){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], NULL, 0);
+      httpSetIndexFile(av[i], NULL, (set_plugin_parameter_addon){0});
     }
 
     else if (strcmp(av[i], "--user") == 0)
@@ -164,7 +164,7 @@ int main(int ac, char *av[])
         return 1;
       }
 
-      httpSetUser(av[i], NULL, 0);
+      httpSetUser(av[i], NULL, (set_plugin_parameter_addon){0});
     }
 
     else if (strcmp(av[i], "--password") == 0)
@@ -176,7 +176,7 @@ int main(int ac, char *av[])
         return 1;
       }
 
-      httpSetPassword(av[i], NULL, 0);
+      httpSetPassword(av[i], NULL, (set_plugin_parameter_addon){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], NULL, 0) < 0)
+      if (httpSetSessTime(av[i], NULL, (set_plugin_parameter_addon){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], NULL, 0);
+      httpSetPubDir(av[i], NULL, (set_plugin_parameter_addon){0});
     }
 
     else if (strcmp(av[i], "--quantum") == 0)
@@ -216,7 +216,7 @@ int main(int ac, char *av[])
         return 1;
       }
 
-      if (httpSetQuantum(av[i], NULL, 0) < 0)
+      if (httpSetQuantum(av[i], NULL, (set_plugin_parameter_addon){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], NULL, 0) < 0)
+      if (httpSetMessTime(av[i], NULL, (set_plugin_parameter_addon){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], NULL, 0) < 0)
+      if (httpSetMessLimit(av[i], NULL, (set_plugin_parameter_addon){0}) < 0)
       {
         fprintf(stderr, "cannot set message queue limit\n");
         return 1;
index c839444..1373cae 100644 (file)
@@ -29,7 +29,7 @@
  *
  */
 
-/* $Id: olsrd_plugin.h,v 1.5 2007/09/16 22:11:30 bernd67 Exp $ */
+/* $Id: olsrd_plugin.h,v 1.6 2007/09/17 21:57:06 bernd67 Exp $ */
 
 /*
  * Example plugin for olsrd.org OLSR daemon
@@ -78,13 +78,18 @@ int olsrd_plugin_register_param(char *key, char *value);
 
 /* Interface version 5 */
 
-typedef int set_plugin_parameter(const char *value, void *data, unsigned int addon);
+typedef union {
+    unsigned int ui;
+    char *pc;
+} set_plugin_parameter_addon;
+
+typedef int set_plugin_parameter(const char *value, void *data, set_plugin_parameter_addon addon);
 
 struct olsrd_plugin_parameters {
     const char *name;
     set_plugin_parameter *set_plugin_parameter;
     void *data;
-    unsigned int addon;
+    set_plugin_parameter_addon addon;
 };
 
 /**
index a807fff..7b060f5 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: plugin_loader.c,v 1.31 2007/08/30 22:25:13 bernd67 Exp $
+ * $Id: plugin_loader.c,v 1.32 2007/09/17 21:57:06 bernd67 Exp $
  */
 
 #include "plugin_loader.h"
@@ -254,7 +254,7 @@ static int init_olsr_plugin(struct olsr_plugin *entry)
                 {
                     /* we have found it! */
                     rc = entry->plugin_parameters[i].set_plugin_parameter(params->value, entry->plugin_parameters[i].data,
-                        0 == entry->plugin_parameters[i].name[0] ? (unsigned int)params->key : entry->plugin_parameters[i].addon);
+                        0 == entry->plugin_parameters[i].name[0] ? (set_plugin_parameter_addon)params->key : entry->plugin_parameters[i].addon);
                     if (rc != 0) {
                         fprintf(stderr, "\nFatal error in plugin parameter \"%s\"/\"%s\"\n", params->key, params->value);
                         rv = -1;
index 77f5a95..8860277 100644 (file)
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: plugin_util.c,v 1.5 2007/09/16 22:14:08 bernd67 Exp $
+ * $Id: plugin_util.c,v 1.6 2007/09/17 21:57:06 bernd67 Exp $
  */
 
 #include "plugin_util.h"
 #include "olsr.h"
 #include "defs.h"
 
-int set_plugin_port(const char *value, void *data, unsigned int addon __attribute__((unused)))
+int set_plugin_port(const char *value, void *data, set_plugin_parameter_addon addon __attribute__((unused)))
 {
     char *endptr;
     const unsigned int port = strtoul(value, &endptr, 0);
@@ -66,7 +66,7 @@ int set_plugin_port(const char *value, void *data, unsigned int addon __attribut
     return 0;
 }
 
-int set_plugin_ipaddress(const char *value, void *data, unsigned int addon __attribute__((unused)))
+int set_plugin_ipaddress(const char *value, void *data, set_plugin_parameter_addon addon __attribute__((unused)))
 {
     char buf[INET6_ADDRSTRLEN];
     union olsr_ip_addr ip_addr;
@@ -86,7 +86,7 @@ int set_plugin_ipaddress(const char *value, void *data, unsigned int addon __att
 }
 
 
-int set_plugin_boolean(const char *value, void *data, unsigned int addon __attribute__((unused)))
+int set_plugin_boolean(const char *value, void *data, set_plugin_parameter_addon addon __attribute__((unused)))
 {
     int *v = data;
     if (strcasecmp (value, "yes") == 0 || strcasecmp (value, "true") == 0) {
@@ -99,7 +99,7 @@ int set_plugin_boolean(const char *value, void *data, unsigned int addon __attri
     return 0;
 }
 
-int set_plugin_int(const char *value, void *data, unsigned int addon __attribute__((unused)))
+int set_plugin_int(const char *value, void *data, set_plugin_parameter_addon addon __attribute__((unused)))
 {
     char *endptr;
     const int theint = strtol(value, &endptr, 0);
@@ -117,11 +117,11 @@ int set_plugin_int(const char *value, void *data, unsigned int addon __attribute
     return 0;
 }
 
-int set_plugin_string(const char *value, void *data, unsigned int addon)
+int set_plugin_string(const char *value, void *data, set_plugin_parameter_addon addon)
 {
     if (data != NULL) {
         char *v = data;
-        if (strlen(value) >= addon) {
+        if (strlen(value) >= addon.ui) {
             OLSR_PRINTF(0, "String too long \"%s\"", value);
             return 1;
         }