Admin interface updated. All settings but scheduler pollrate and HNA delete should...
authorAndreas Tonnesen <andreto@olsr.org>
Mon, 21 Feb 2005 19:34:22 +0000 (19:34 +0000)
committerAndreas Tonnesen <andreto@olsr.org>
Mon, 21 Feb 2005 19:34:22 +0000 (19:34 +0000)
lib/httpinfo/Makefile
lib/httpinfo/README_HTTPINFO
lib/httpinfo/src/admin_html.h
lib/httpinfo/src/admin_interface.c
lib/httpinfo/src/admin_interface.h
lib/httpinfo/src/html.h
lib/httpinfo/src/olsr_plugin_io.h [deleted file]
lib/httpinfo/src/olsrd_httpinfo.c
lib/httpinfo/src/olsrd_plugin.c
lib/httpinfo/src/olsrd_plugin.h

index 1155737..ca5c2d2 100644 (file)
@@ -47,9 +47,9 @@ endif
 endif
 endif
 
-ifneq ($(INCLUDE_SETTINGS), )
+ifneq ($(ADMIN_INTERFACE), )
        @echo 'WARNING - BUILDING WITH ADMIN INTERFACE!'
-CFLAGS += -DINCLUDE_SETTINGS
+CFLAGS += -DADMIN_INTERFACE
 endif
 
 CFLAGS += $(PLUGINFLAGS)
@@ -61,7 +61,7 @@ SRCS= src/olsrd_plugin.c src/olsrd_httpinfo.c src/admin_interface.c
 OBJS=  src/olsrd_plugin.o src/olsrd_httpinfo.o src/admin_interface.o
 
 #Headerfiles
-HDRS=  src/olsrd_plugin.h src/olsrd_httpinfo.h src/olsr_plugin_io.h\
+HDRS=  src/olsrd_plugin.h src/olsrd_httpinfo.h \
        src/gfx.h src/html.h src/admin_interface.h src/admin_html.h
 
 
index 8fe38e5..2da661f 100644 (file)
@@ -43,13 +43,12 @@ access is always allowed from 127.0.0.1(localhost).
 The plugin can be compiled with a experimental 
 adminitrator interface. This is a web page that will
 let the user change olsrd settings in realtime.
-To compile with this feature pass INCLUDE_SETTINGS=1
-as an argument to make(eg. make INCLUDE_SETTINGS=1)
+To compile with this feature pass ADMIN_INTERFACE=1
+as an argument to make(eg. make ADMIN_INTERFACE=1)
 
-As of now the admin page is not making any changes to
-olsrd - it is only a HTML form with no effect.
-But it will be usable eventually :) However there
-are _tons_ of security related issues here.
+As of now the admin page is only responding to some
+of the fields in the admin form. This will change :)
+However there are _tons_ of security related issues here.
 
 NOTE!
 If running olsrd 0.4.8, the plugin will not be able
index 200c303..878c2dc 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: admin_html.h,v 1.1 2005/02/08 23:29:38 kattemat Exp $
+ * $Id: admin_html.h,v 1.2 2005/02/21 19:33:27 kattemat Exp $
  */
 
 /*
@@ -48,7 +48,7 @@
 #ifndef ADMIN_HTML_H
 #define ADMIN_HTML_H
 
-#ifdef INCLUDE_SETTINGS
+#ifdef ADMIN_INTERFACE
 static const char *admin_frame[] =
   {
     "<b>Administrator interface</b><hr>\n"
@@ -63,16 +63,16 @@ static const char *admin_frame[] =
     "<h2>Add/remove local HNA entries</h2>\n",
     "<form action=\"set_values\" method=\"post\">\n",
     "<table width=\"100%%\"><tr><td><b>Network:</b></td>\n",
-    "<td><input type=\"text\" name=\"foo\" maxlength=\"100\" class=\"input_text\"></td>\n",
+    "<td><input type=\"text\" name=\"hna_new_net\" maxlength=\"16\" class=\"input_text\" value=\"0.0.0.0\"></td>\n",
     "<td><b>Netmask/Prefix:</b></td>\n",
-    "<td><input type=\"text\" name=\"foo\" maxlength=\"16\" class=\"input_text\"></td>\n",
-    "<td><input type=\"submit\" value=\"Add entry\" class=\"input_button\"></td>\n",
+    "<td><input type=\"text\" name=\"hna_new_netmask\" maxlength=\"16\" class=\"input_text\" value=\"0.0.0.0\"></td>\n",
+    "<td><input type=\"submit\" value=\"Add entry\" class=\"input_button\"></td></form>\n",
     "</table><hr>\n",
     "<form action=\"set_values\" method=\"post\">\n",
     "<table width=\"100%%\">\n",
     "<tr><th width=50 halign=\"middle\">Delete</th><th>Network</th><th>Netmask</th></tr>\n",
     "<!-- HNAENTRIES -->\n",
-    "<tr><td halign=\"middle\"><input type=\"checkbox\" name=\"foo\" class=\"input_checkbox\"></td><td>%s</td><td>%s</td></tr>\n",
+    "<tr><td halign=\"middle\"><input type=\"checkbox\" name=\"%s/%s\" class=\"input_checkbox\"></td><td>%s</td><td>%s</td></tr>\n",
     "</table>\n<br>\n",
     "<center><input type=\"submit\" value=\"Delete selected\" class=\"input_button\"></center>\n",
     "</form>\n",
index e2ecc27..a90d47c 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.2 2005/02/08 23:37:23 kattemat Exp $
+ * $Id: admin_interface.c,v 1.3 2005/02/21 19:33:30 kattemat Exp $
  */
 
 /*
 #include <string.h>
 #include <stdlib.h>
 
-
-
-#ifdef INCLUDE_SETTINGS
-
 int
 build_admin_body(char *buf, olsr_u32_t bufsize)
 {
@@ -150,6 +146,8 @@ build_admin_body(char *buf, olsr_u32_t bufsize)
       for(hna4 = cfg->hna4_entries; hna4; hna4 = hna4->next)
        {
          size += sprintf(&buf[size], admin_frame[i], 
+                         olsr_ip_to_string((union olsr_ip_addr *)&hna4->net),
+                         olsr_ip_to_string((union olsr_ip_addr *)&hna4->netmask),
                          olsr_ip_to_string((union olsr_ip_addr *)&hna4->net),
                          olsr_ip_to_string((union olsr_ip_addr *)&hna4->netmask));
        }
@@ -178,9 +176,13 @@ build_admin_body(char *buf, olsr_u32_t bufsize)
 }
 
 
+#ifdef ADMIN_INTERFACE
+
 int
 process_param(char *key, char *value)
 {
+  static olsr_u32_t curr_hna_net;
+  static olsr_bool curr_hna_ok = OLSR_FALSE;
 
   if(!strcmp(key, "debug_level"))
     {
@@ -189,6 +191,7 @@ process_param(char *key, char *value)
        return -1;
 
       cfg->debug_level = ival;
+      return 1;
     }
 
   if(!strcmp(key, "tc_redundancy"))
@@ -198,6 +201,7 @@ process_param(char *key, char *value)
        return -1;
 
       cfg->tc_redundancy = ival;
+      return 1;
     }
 
   if(!strcmp(key, "mpr_coverage"))
@@ -207,6 +211,7 @@ process_param(char *key, char *value)
        return -1;
 
       cfg->mpr_coverage = ival;
+      return 1;
     }
 
   if(!strcmp(key, "willingness"))
@@ -216,21 +221,123 @@ process_param(char *key, char *value)
        return -1;
 
       cfg->willingness = ival;
+      return 1;
     }
 
+  if(!strcmp(key, "lq_level"))
+    {
+      int ival = atoi(value);
+      if((ival < 0) || (ival > 2))
+       return -1;
+
+      cfg->lq_level = ival;
+      return 1;
+    }
 
-  return 0;
-#if 0
-  { 1, admin_basic_setting_float, "Pollrate:", "pollrate", 4, &cfg->pollrate },
-  { 1, admin_basic_setting_string, "TOS:", "tos", 6, "TBD" },
+  if(!strcmp(key, "lq_wsize"))
+    {
+      int ival = atoi(value);
+      if((ival < 0) || (ival > 10))
+       return -1;
+
+      cfg->lq_wsize = ival;
+      return 1;
+    }
+
+  if(!strcmp(key, "hyst_scaling"))
+    {
+      float fval = 1.1;
+      sscanf(value, "%f", &fval);
+      if((fval < 0.0) || (fval > 1.0))
+       return -1;
+
+      printf("HYST SCALING: %f\n", fval);
+      cfg->hysteresis_param.scaling = fval;
+      return 1;
+    }
+
+  if(!strcmp(key, "hyst_scaling"))
+    {
+      float fval = 1.1;
+      sscanf(value, "%f", &fval);
+      if((fval < 0.0) || (fval > 1.0))
+       return -1;
+
+      cfg->hysteresis_param.scaling = fval;
+      return 1;
+    }
+
+  if(!strcmp(key, "hyst_lower"))
+    {
+      float fval = 1.1;
+      sscanf(value, "%f", &fval);
+      if((fval < 0.0) || (fval > 1.0))
+       return -1;
+
+      cfg->hysteresis_param.thr_low = fval;
+      return 1;
+    }
+
+  if(!strcmp(key, "hyst_upper"))
+    {
+      float fval = 1.1;
+      sscanf(value, "%f", &fval);
+      if((fval < 0.0) || (fval > 1.0))
+       return -1;
+
+      cfg->hysteresis_param.thr_high = fval;
+      return 1;
+    }
+
+  if(!strcmp(key, "pollrate"))
+    {
+      float fval = 1.1;
+      sscanf(value, "%f", &fval);
+      if((fval < 0.0) || (fval > 1.0))
+       return -1;
+
+      cfg->pollrate = fval;
+      return 1;
+    }
 
-  { cfg->use_hysteresis, admin_basic_setting_float, "Hyst scaling:", "hyst_scaling", 4, &cfg->hysteresis_param.scaling },
-  { cfg->use_hysteresis, admin_basic_setting_float, "Lower thr:", "hyst_lower", 4, &cfg->hysteresis_param.thr_low },
-  { cfg->use_hysteresis, admin_basic_setting_float, "Upper thr:", "hyst_upper", 4, &cfg->hysteresis_param.thr_high },
 
-  { cfg->lq_level, admin_basic_setting_int, "LQ level:", "lq_level", 1, &cfg->lq_level},
-  { cfg->lq_level, admin_basic_setting_int, "LQ winsize:", "lq_wsize", 1, &cfg->lq_wsize},
+  if(!strcmp(key, "hna_new_net"))
+    {
+      struct in_addr in;
 
+      if(inet_aton(value, &in) == 0)
+       {
+         fprintf(stderr, "Failed converting new HNA net %s\n", value);
+         return -1;
+       }
+      curr_hna_ok = OLSR_TRUE;
+      curr_hna_net = in.s_addr;
+      return 1;
+    }
+
+  if(!strcmp(key, "hna_new_netmask"))
+    {
+      struct in_addr in;
+
+      if(!curr_hna_ok)
+       return -1;
+
+      curr_hna_ok = OLSR_FALSE;
+
+      if(inet_aton(value, &in) == 0)
+       {
+         fprintf(stderr, "Failed converting new HNA netmask %s\n", value);
+         return -1;
+       }
+      add_local_hna4_entry((union olsr_ip_addr *)&curr_hna_net,
+                          (union hna_netmask *)&in.s_addr);
+      
+      return 1;
+    }
+
+  return 0;
+#if 0
+  { 1, admin_basic_setting_string, "TOS:", "tos", 6, "TBD" },
 #endif
 }
 
@@ -256,7 +363,7 @@ process_set_values(char *data, olsr_u32_t data_size, char *buf, olsr_u32_t bufsi
       if(data[i] == '&')
        {
          data[i] = '\0';
-         size += sprintf(&buf[size], "<b>Key:</b>%s<br>\n<b>Value:</b>%s<br>\n", 
+         size += sprintf(&buf[size], "<b>Key:</b>%s <b>Value:</b>%s<br>\n", 
                          &data[key_start], &data[val_start]);
          process_param(&data[key_start], &data[val_start]);
          printf("Key: %s\nValue: %s\n", 
@@ -265,6 +372,12 @@ process_set_values(char *data, olsr_u32_t data_size, char *buf, olsr_u32_t bufsi
        }
     }  
 
+  process_param(&data[key_start], &data[val_start]);
+  size += sprintf(&buf[size], "<b>Key:</b>%s <b>Value:</b>%s<br>\n", 
+                 &data[key_start], &data[val_start]);
+  printf("Key: %s\nValue: %s\n", 
+        &data[key_start], &data[val_start]);
+
   size += sprintf(&buf[size], "\n</body>\n</html>\n");
 
   printf("Dynamic Data: %s\n", data);
index 197b3c8..dd9dbb1 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: admin_interface.h,v 1.1 2005/02/08 23:29:40 kattemat Exp $
+ * $Id: admin_interface.h,v 1.2 2005/02/21 19:33:48 kattemat Exp $
  */
 
 /*
@@ -48,7 +48,6 @@
 #ifndef ADMIN_INTERFACE_H
 #define ADMIN_INTERFACE_H
 
-#ifdef INCLUDE_SETTINGS
 int
 build_admin_body(char *, olsr_u32_t);
 
@@ -57,6 +56,5 @@ process_set_values(char*, olsr_u32_t, char *, olsr_u32_t);
 
 int
 process_param(char *, char *);
-#endif
 
 #endif
index e2879f8..037cd1a 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: html.h,v 1.4 2005/02/08 23:29:40 kattemat Exp $
+ * $Id: html.h,v 1.5 2005/02/21 19:33:48 kattemat Exp $
  */
 
 /*
@@ -145,7 +145,7 @@ static const char *about_frame[] =
 {
     "<b>" PLUGIN_NAME " version " PLUGIN_VERSION "</b><br>\n"
     "by Andreas T&oslash;nnesen (C)2005.<br>\n",
-#ifdef INCLUDE_SETTINGS
+#ifdef ADMIN_INTERFACE
     "Compiled <i>with experimental admin interface</i> " __DATE__ "<hr>\n"
 #else
     "Compiled " __DATE__ "<hr>\n"
@@ -169,7 +169,7 @@ static const char *about_frame[] =
     "<li><b>All</b> - Here all the previous pages are displayed as one.\n",
     "This is to make all information available as easy as possible(for example\n",
     "for a script) and using as few resources as possible.</li>\n",
-#ifdef INCLUDE_SETTINGS
+#ifdef ADMIN_INTERFACE
     "<li><b>Admin</b> - This page is highly experimental(and unsecure)!\n",
     "As of now it is not working at all but it provides a impression of\n",
     "the future possibilities of httpinfo. This is to be a interface to\n",
diff --git a/lib/httpinfo/src/olsr_plugin_io.h b/lib/httpinfo/src/olsr_plugin_io.h
deleted file mode 100644 (file)
index 8bc78ee..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * The olsr.org Optimized Link-State Routing daemon(olsrd)
- * Copyright (c) 2004, Andreas T√łnnesen(andreto@olsr.org)
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without 
- * modification, are permitted provided that the following conditions 
- * are met:
- *
- * * Redistributions of source code must retain the above copyright 
- *   notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above copyright 
- *   notice, this list of conditions and the following disclaimer in 
- *   the documentation and/or other materials provided with the 
- *   distribution.
- * * Neither the name of olsr.org, olsrd nor the names of its 
- *   contributors may be used to endorse or promote products derived 
- *   from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 
- * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 
- * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, 
- * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, 
- * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
- * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN 
- * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 
- * POSSIBILITY OF SUCH DAMAGE.
- *
- * Visit http://www.olsr.org for more information.
- *
- * If you find this software useful feel free to make a donation
- * to the project. For more information see the website or contact
- * the copyright holders.
- *
- * $Id: olsr_plugin_io.h,v 1.3 2004/12/19 17:16:24 kattemat Exp $
- */
-
-
-/*
- * REVISIONS(starting from 0.4.6):
- * 0.4.5 - 0.4.6 : GETD_S removed. The socket entries now reside within the 
- *                 interface struct.
- *                 Added GETF__ADD_IFCHGF and GETF__DEL_IFCHGF.
- *                 - Andreas
- *         0.4.8 : GETF__APM_READ added
- *                 GETD__OLSR_CNF added
- *                 GETD_PACKET removed
- *                 GETD_MAXMESSAGESIZE removed
- *                 GETD_OUTPUTSIZE removed
- *                 GETF__NET_OUTBUFFER_PUSH added
- *                 GETD__ROUTINGTABLE added
- *                 GETD__HNA_ROUTES added
- *                 GETD__MID_SET added
- *                 GETF__NET_RESERVE_BUFSPACE added 
- *                 GETF__NET_OUTBUFFER_PUSH_RESERVED added
- *                 - Andreas
- *         0.4.9 : GETD__LINK_SET added
- *                 GETF__OLSR_LOOKUP_MPRS_SET added
- *                 - Andreas
- */
-
-/*
- * IO commands
- *
- * NAMING CONVENTION:
- * - DATAPOINTERS
- *   Commands to get datapointers MUST have the prefix
- *   GETD__ added to the full name of the variable/pointer
- *   in all upper cases.
- *   Example: A command to get a pointer to a variable called
- *   "myvar" in olsrd must be called GETD__MYVAR
- *
- * - FUNCTIONS
- *   Commands to get pointers to olsrd functions MUST have
- *   the prefix GETF__ added to the full name of the runction
- *   in uppercases.
- *   Example: A command to get a pointer to the function
- *   "my_function" must be named GETF__MY_FUNCTION
- *
- *
- *   New commands can be added - BUT EXISTING COMMANDS MUST
- *   _NEVER_ CHANGE VALUE!
- */
-
-#ifndef _OLSR_PLUGIN_IO
-#define _OLSR_PLUGIN_IO
-
-/* Data fetching - starts at 100 (used to anyway) */
-#define GETD__IFNET                                102
-#define GETD__NOW                                  103
-#define GETD__PARSER_ENTRIES                       104
-#define GETD__OLSR_SOCKET_ENTRIES                  105
-#define GETD__NEIGHBORTABLE                        108
-#define GETD__TWO_HOP_NEIGHBORTABLE                109
-#define GETD__TC_TABLE                             110
-#define GETD__HNA_SET                              111
-#define GETD__OLSR_CNF                             112
-#define GETD__ROUTINGTABLE                         113
-#define GETD__HNA_ROUTES                           114
-#define GETD__MID_SET                              115
-#define GETD__LINK_SET                             116
-
-
-/* Function fetching - starts at 500 */
-#define GETF__OLSR_REGISTER_SCHEDULER_EVENT        500
-#define GETF__OLSR_REMOVE_SCHEDULER_EVENT          501
-#define GETF__OLSR_PARSER_ADD_FUNCTION             502
-#define GETF__OLSR_PARSER_REMOVE_FUNCTION          503
-#define GETF__OLSR_REGISTER_TIMEOUT_FUNCTION       504
-#define GETF__OLSR_REMOVE_TIMEOUT_FUNCTION         505
-#define GETF__GET_MSG_SEQNO                        506
-#define GETF__OLSR_CHECK_DUP_TABLE_PROC            507
-#define GETF__NET_OUTPUT                           508
-#define GETF__OLSR_FORWARD_MESSAGE                 509
-#define GETF__ADD_OLSR_SOCKET                      510
-#define GETF__REMOVE_OLSR_SOCKET                   511
-#define GETF__CHECK_NEIGHBOR_LINK                  512
-#define GETF__OLSR_PRINTF                          513
-#define GETF__OLSR_MALLOC                          514
-#define GETF__DOUBLE_TO_ME                         515
-#define GETF__ME_TO_DOUBLE                         516
-#define GETF__ADD_LOCAL_HNA4_ENTRY                 517
-#define GETF__REMOVE_LOCAL_HNA4_ENTRY              518
-#define GETF__ADD_LOCAL_HNA6_ENTRY                 519
-#define GETF__REMOVE_LOCAL_HNA6_ENTRY              520
-#define GETF__OLSR_INPUT                           521
-#define GETF__ADD_PTF                              522
-#define GETF__DEL_PTF                              523
-#define GETF__IF_IFWITHSOCK                        524
-#define GETF__IF_IFWITHADDR                        525
-#define GETF__PARSE_PACKET                         526
-#define GETF__REGISTER_PCF                         527
-#define GETF__OLSR_HASHING                         528
-#define GETF__ADD_IFCHGF                           529
-#define GETF__DEL_IFCHGF                           530
-#define GETF__APM_READ                             531
-#define GETF__NET_OUTBUFFER_PUSH                   532
-#define GETF__NET_RESERVE_BUFSPACE                 533
-#define GETF__NET_OUTBUFFER_PUSH_RESERVED          534
-#define GETF__OLSR_LOOKUP_MPRS_SET                 535
-
-#endif
index f3212a7..96facc0 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.46 2005/02/20 18:51:58 kattemat Exp $
+ * $Id: olsrd_httpinfo.c,v 1.47 2005/02/21 19:33:51 kattemat Exp $
  */
 
 /*
@@ -187,7 +187,7 @@ struct tab_entry tab_entries[] =
     {"Routes", "routes", build_routes_body},
     {"Links/Topology", "nodes", build_nodes_body},
     {"All", "all", build_all_body},
-#ifdef INCLUDE_SETTINGS
+#ifdef ADMIN_INTERFACE
     {"Admin", "admin", build_admin_body},
 #endif
     {"About", "about", build_about_body},
@@ -211,7 +211,7 @@ struct static_txt_file_entry static_txt_files[] =
 
 struct dynamic_file_entry dynamic_files[] =
   {
-#ifdef INCLUDE_SETTINGS
+#ifdef ADMIN_INTERFACE
     {"set_values", process_set_values},
 #endif
     {NULL, NULL}
@@ -368,7 +368,7 @@ parse_http_request(int fd)
 
   if(!strcmp(req_type, "POST"))
     {
-#ifdef INCLUDE_SETTINGS
+#ifdef ADMIN_INTERFACE
       int i = 0;
       while(dynamic_files[i].filename)
        {
index a535dd8..59357cc 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.7 2004/12/29 19:55:54 kattemat Exp $
+ * $Id: olsrd_plugin.c,v 1.8 2005/02/21 19:34:19 kattemat Exp $
  */
 
 /*
@@ -351,6 +351,20 @@ fetch_olsrd_data()
     retval = 0;
   }
 
+  /* Add hna net IPv4 */
+  if(!olsr_plugin_io(GETF__ADD_LOCAL_HNA4_ENTRY, &add_local_hna4_entry, sizeof(add_local_hna4_entry)))
+  {
+    add_local_hna4_entry = NULL;
+    retval = 0;
+  }
+
+  /* Remove hna net IPv4 */
+  if(!olsr_plugin_io(GETF__REMOVE_LOCAL_HNA4_ENTRY, &remove_local_hna4_entry, sizeof(remove_local_hna4_entry)))
+  {
+    remove_local_hna4_entry = NULL;
+    retval = 0;
+  }
+
   return retval;
 
 }
index c459aac..fa83772 100644 (file)
@@ -36,7 +36,7 @@
  * to the project. For more information see the website or contact
  * the copyright holders.
  *
- * $Id: olsrd_plugin.h,v 1.16 2005/02/20 17:33:43 kattemat Exp $
+ * $Id: olsrd_plugin.h,v 1.17 2005/02/21 19:34:22 kattemat Exp $
  */
 
 /*
@@ -130,6 +130,11 @@ int (*olsr_printf)(int, char *, ...);
 /* olsrd malloc wrapper */
 void *(*olsr_malloc)(size_t, const char *);
 
+/* Add hna net IPv4 */
+void (*add_local_hna4_entry)(union olsr_ip_addr *, union hna_netmask *);
+
+/* Remove hna net IPv4 */
+int (*remove_local_hna4_entry)(union olsr_ip_addr *, union hna_netmask *);
 
 /****************************************************************************
  *                             Data from olsrd                              *