This plugin now includes datatypes directly from olsrd source
[olsrd.git] / lib / dyn_gw / src / olsrd_plugin.h
index 7993b22..5a71f9f 100644 (file)
@@ -1,37 +1,43 @@
 
-
 /*
- * Copyright (c) 2004, Andreas Tønnesen(andreto-at-olsr.org)
+ * 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 the UniK olsr daemon nor the names of its contributors 
- *   may be used to endorse or promote products derived from this software 
- *   without specific prior written permission.
+ * * 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.
+ * 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.
  *
- */
-
-/*
- * Dynamic linked library example for UniK OLSRd
+ * 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: olsrd_plugin.h,v 1.11 2005/02/19 17:56:05 kattemat Exp $
  */
 
 #ifndef _OLSRD_PLUGIN_DEFS
 #include <math.h>
 
 #include "olsr_plugin_io.h"
-
-/* Use this as PARSER_TYPE to receive ALL messages! */
-#define PROMISCUOUS 0xffffffff
-
-
-/*****************************************************************************
- *                               Plugin data                                 *
- *                       ALTER THIS TO YOUR OWN NEED                         *
- *****************************************************************************/
+#include "olsr_protocol.h"
 
 #define PLUGIN_NAME    "OLSRD dynamic gateway plugin"
-#define PLUGIN_VERSION "0.2"
-#define PLUGIN_AUTHOR   "Andreas Tønnesen"
+#define PLUGIN_VERSION "0.4"
+#define PLUGIN_AUTHOR   "Various artists"
 #define MOD_DESC PLUGIN_NAME " " PLUGIN_VERSION " by " PLUGIN_AUTHOR
 #define PLUGIN_INTERFACE_VERSION 2
 
-
-
-
-/****************************************************************************
- *           Various datastructures and definitions from olsrd              *
- ****************************************************************************/
-
-/*
- * TYPES SECTION
- */
-
-/* types */
-#include <sys/types.h>
-
-typedef u_int8_t        olsr_u8_t;
-typedef u_int16_t       olsr_u16_t;
-typedef u_int32_t       olsr_u32_t;
-typedef int8_t          olsr_8_t;
-typedef int16_t         olsr_16_t;
-typedef int32_t         olsr_32_t;
-
-
-
-/*
- * VARIOUS DEFINITIONS
- */
-
-union olsr_ip_addr
-{
-  olsr_u32_t v4;
-  struct in6_addr v6;
-};
-
+/* hna_netmask (declared in packet.h) */
 union hna_netmask
 {
   olsr_u32_t v4;
   olsr_u16_t v6;
 };
 
-/***************************************************************************
- *                 Functions provided by uolsrd_plugin.c                   *
- *                  Similar to their siblings in olsrd                     *
- ***************************************************************************/
-
-char ipv6_buf[100]; /* buffer for IPv6 inet_htop */
-
-/* All these could optionally be fetched from olsrd */
-
-char *
-olsr_ip_to_string(union olsr_ip_addr *);
-
-
 
 /****************************************************************************
  *                Function pointers to functions in olsrd                   *
@@ -124,14 +77,11 @@ olsr_ip_to_string(union olsr_ip_addr *);
 int (*olsr_plugin_io)(int, void *, size_t);
 
 /* Register a scheduled event */
-int (*olsr_register_scheduler_event)(void (*)(), float, float, olsr_u8_t *);
+int (*olsr_register_scheduler_event)(void (*)(void), void*, float, float, olsr_u8_t *);
 
 /* olsrd printf wrapper */
 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 *);
 
@@ -162,11 +112,11 @@ struct timeval     *now;       /* the olsrds schedulers idea of current time */
 
 /* Initialization function */
 int
-olsr_plugin_init();
+olsr_plugin_init(void);
 
 /* Destructor function */
 void
-olsr_plugin_exit();
+olsr_plugin_exit(void);
 
 /* Mulitpurpose funtion */
 int
@@ -175,4 +125,7 @@ plugin_io(int, void *, size_t);
 int
 register_olsr_param(char *, char *);
 
+int 
+get_plugin_interface_version(void);
+
 #endif