summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--contrib/package/olsrd-luci/Makefile8
-rw-r--r--contrib/package/olsrd-luci/patches/140-olsrd-optimize-size.patch98
-rw-r--r--contrib/package/olsrd-luci/patches/150-add-watchdog.patch358
3 files changed, 55 insertions, 409 deletions
diff --git a/contrib/package/olsrd-luci/Makefile b/contrib/package/olsrd-luci/Makefile
index 5928dfe02..fcd5c72da 100644
--- a/contrib/package/olsrd-luci/Makefile
+++ b/contrib/package/olsrd-luci/Makefile
@@ -11,13 +11,13 @@ include $(TOPDIR)/rules.mk
PKG_BASENAME:=olsrd
PKG_NAME:=$(PKG_BASENAME)-luci
-PKG_BASEVER:=0.5.6-r4
-PKG_RELEASE:=2
+PKG_BASEVER:=0.5.6-r5
+PKG_RELEASE:=1
-PKG_HGREV:=edc947c1a5bc
+PKG_HGREV:=5ed3e2c2760c
PKG_SOURCE:=$(PKG_HGREV).tar.gz
PKG_SOURCE_URL:=http://gredler.at/hg/olsrd-0.5.6/archive
-PKG_MD5SUM:=88f6ccdfe3b75ce7b942849be2bfc8a8
+PKG_MD5SUM:=b3da5372337567a7894624afc6f0277a
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_HGREV)
PKG_UNPACK=$(HOST_TAR) -C $(PKG_BUILD_DIR) --strip-components=1 -xzf $(DL_DIR)/$(PKG_SOURCE)
PKG_VERSION:=$(PKG_BASEVER)+$(PKG_HGREV)+luci1
diff --git a/contrib/package/olsrd-luci/patches/140-olsrd-optimize-size.patch b/contrib/package/olsrd-luci/patches/140-olsrd-optimize-size.patch
index 5ff1519e1..e0f5a6a13 100644
--- a/contrib/package/olsrd-luci/patches/140-olsrd-optimize-size.patch
+++ b/contrib/package/olsrd-luci/patches/140-olsrd-optimize-size.patch
@@ -303,7 +303,7 @@
}
return olsr_cnf;
}
-@@ -401,7 +405,9 @@
+@@ -405,7 +409,9 @@
cnf->debug_level = DEF_DEBUGLVL;
cnf->no_fork = false;
@@ -313,7 +313,7 @@
cnf->ip_version = AF_INET;
cnf->ipsize = sizeof(struct in_addr);
cnf->maxplen = 32;
-@@ -412,7 +418,9 @@
+@@ -416,7 +422,9 @@
cnf->rtproto = DEF_RTPROTO;
cnf->rttable_default = 0;
cnf->willingness_auto = DEF_WILL_AUTO;
@@ -323,7 +323,7 @@
cnf->fib_metric = DEF_FIB_METRIC;
cnf->use_hysteresis = DEF_USE_HYST;
-@@ -491,6 +499,7 @@
+@@ -495,6 +503,7 @@
}
@@ -331,7 +331,7 @@
void
olsrd_print_cnf(struct olsrd_config *cnf)
{
-@@ -634,6 +643,7 @@
+@@ -638,6 +647,7 @@
}
}
}
@@ -349,7 +349,7 @@
%token TOK_FIBMETRIC
%token TOK_USEHYST
%token TOK_HYSTSCALE
-@@ -202,7 +201,6 @@
+@@ -203,7 +202,6 @@
%token TOK_HOSTLABEL
%token TOK_NETLABEL
@@ -357,7 +357,7 @@
%token TOK_IP4BROADCAST
%token TOK_IFMODE
-@@ -265,7 +263,6 @@
+@@ -267,7 +265,6 @@
block: TOK_HNA4 hna4body
| TOK_HNA6 hna6body
@@ -365,7 +365,7 @@
| ifblock ifbody
| plblock plbody
;
-@@ -290,18 +287,6 @@
+@@ -292,18 +289,6 @@
| ihna6entry
;
@@ -384,7 +384,7 @@
ifblock: ifstart ifnicks
;
-@@ -343,77 +328,6 @@
+@@ -345,77 +330,6 @@
| vcomment
;
@@ -527,7 +527,7 @@
* Local Variables:
--- a/src/hna_set.c
+++ b/src/hna_set.c
-@@ -279,6 +279,7 @@
+@@ -280,6 +280,7 @@
*
*@return nada
*/
@@ -535,7 +535,7 @@
void
olsr_print_hna_set(void)
{
-@@ -320,6 +321,7 @@
+@@ -321,6 +322,7 @@
}
#endif
}
@@ -710,7 +710,7 @@
}
+#ifndef SVEN_OLA_UNBLOAT
//send ipc update on success
- if ( ( cmd != RTM_NEWRULE ) & ( cmd != RTM_DELRULE ) & (flag = RT_ORIG_REQUEST) & (0 <= rt_ret && olsr_cnf->ipc_connections > 0)) {
+ if ( ( cmd != RTM_NEWRULE ) && ( cmd != RTM_DELRULE ) && (flag = RT_ORIG_REQUEST) && (0 <= rt_ret && olsr_cnf->ipc_connections > 0)) {
ipc_route_send_rtentry(&rt->rt_dst.prefix, &nexthop->gateway, metric, RTM_NEWROUTE == cmd,
if_ifwithindex_name(nexthop->iif_index));
}
@@ -738,7 +738,7 @@
memset(&kernel_route, 0, sizeof(struct in6_rtmsg));
-@@ -469,7 +475,9 @@
+@@ -468,7 +474,9 @@
int rslt;
#endif /* LINUX_POLICY_ROUTING */
@@ -748,7 +748,7 @@
#if !LINUX_POLICY_ROUTING
memset(&kernel_route, 0, sizeof(struct rtentry));
-@@ -536,7 +544,9 @@
+@@ -535,7 +543,9 @@
int rslt;
#endif /* LINUX_POLICY_ROUTING */
@@ -977,7 +977,7 @@
}
/*
-@@ -417,7 +423,11 @@
+@@ -399,7 +405,11 @@
* @return pointer to hello_neighbor
*/
struct hello_neighbor *
@@ -989,7 +989,7 @@
{
struct hello_neighbor *h;
-@@ -439,7 +449,11 @@
+@@ -421,7 +431,11 @@
* @return pointer to tc_mpr_addr
*/
struct tc_mpr_addr *
@@ -1001,7 +1001,7 @@
{
struct tc_mpr_addr *t;
-@@ -461,7 +475,11 @@
+@@ -443,7 +457,11 @@
* @return pointer to lq_hello_neighbor
*/
struct lq_hello_neighbor *
@@ -1013,7 +1013,7 @@
{
struct lq_hello_neighbor *h;
-@@ -483,7 +501,11 @@
+@@ -465,7 +483,11 @@
* @return pointer to link_entry
*/
struct link_entry *
@@ -1035,7 +1035,7 @@
#include "tc_set.h"
#include "link_set.h"
#include "olsr_spf.h"
-@@ -223,6 +224,7 @@
+@@ -212,6 +213,7 @@
return buffer->buf;
}
@@ -1053,7 +1053,7 @@
#ifndef LQ_PLUGIN_DEFAULT_H_
#define LQ_PLUGIN_DEFAULT_H_
-@@ -77,6 +78,7 @@
+@@ -75,6 +76,7 @@
extern struct lq_handler lq_etx_float_handler;
#endif /*LQ_PLUGIN_DEFAULT_H_ */
@@ -1071,7 +1071,7 @@
#include "tc_set.h"
#include "link_set.h"
#include "lq_plugin.h"
-@@ -235,6 +236,7 @@
+@@ -238,6 +239,7 @@
snprintf(buffer->buf, sizeof(buffer->buf), "%.3f", (float)(cost) / LQ_FPM_LINKCOST_MULTIPLIER);
return buffer->buf;
}
@@ -1089,7 +1089,7 @@
#ifndef LQ_ETX_FPM_
#define LQ_ETX_FPM_
-@@ -83,6 +84,7 @@
+@@ -79,6 +80,7 @@
extern struct lq_handler lq_etx_fpm_handler;
#endif /*LQ_ETX_FPM_ */
@@ -1099,7 +1099,7 @@
* Local Variables:
--- a/src/main.c
+++ b/src/main.c
-@@ -256,13 +256,17 @@
+@@ -312,13 +312,17 @@
/*
* Print configuration
*/
@@ -1117,7 +1117,7 @@
/*
* socket for ioctl calls
-@@ -298,7 +302,9 @@
+@@ -354,7 +358,9 @@
/*
*enable ip forwarding on host
*/
@@ -1127,7 +1127,7 @@
/* Initialize parser */
olsr_init_parser();
-@@ -316,6 +322,7 @@
+@@ -372,6 +378,7 @@
*Set up willingness/APM
*/
if (olsr_cnf->willingness_auto) {
@@ -1135,7 +1135,7 @@
if (apm_init() < 0) {
OLSR_PRINTF(1, "Could not read APM info - setting default willingness(%d)\n", WILL_DEFAULT);
-@@ -324,10 +331,13 @@
+@@ -382,10 +389,13 @@
olsr_cnf->willingness_auto = 0;
olsr_cnf->willingness = WILL_DEFAULT;
} else {
@@ -1149,7 +1149,7 @@
}
/* Initialize net */
-@@ -355,9 +365,11 @@
+@@ -415,9 +425,11 @@
/* Initialize the IPC socket */
@@ -1161,7 +1161,7 @@
/* Initialisation of different tables to be used. */
olsr_init_tables();
-@@ -487,9 +499,11 @@
+@@ -549,9 +561,11 @@
OLSR_PRINTF(1, "Closing sockets...\n");
/* front-end IPC socket */
@@ -1173,7 +1173,7 @@
/* OLSR sockets */
for (ifn = ifnet; ifn; ifn = ifn->int_next)
-@@ -499,7 +513,9 @@
+@@ -561,7 +575,9 @@
olsr_close_plugins();
/* Reset network settings */
@@ -1183,19 +1183,19 @@
/* ioctl socket */
close(olsr_cnf->ioctl_s);
-@@ -540,7 +556,11 @@
- "usage: olsrd [-f <configfile>] [ -i interface1 interface2 ... ]\n"
- " [-d <debug_level>] [-ipv6] [-multi <IPv6 multicast address>]\n"
- " [-lql <LQ level>] [-lqw <LQ winsize>] [-lqnt <nat threshold>]\n"
+@@ -601,7 +617,11 @@
+ "usage: olsrd [-f <configfile>] [ -i interface1 interface2 ... ]\n"
+ " [-d <debug_level>] [-ipv6] [-multi <IPv6 multicast address>]\n"
+ " [-lql <LQ level>] [-lqw <LQ winsize>] [-lqnt <nat threshold>]\n"
+#ifdef SVEN_OLA_UNBLOAT
-+ " [-bcast <broadcastaddr>] [-delgw] (Note: no -ipc,-dispin,-dispout)\n"
-+#else /* SVEN_OLA_UNBLOAT */
- " [-bcast <broadcastaddr>] [-ipc] [-dispin] [-dispout] [-delgw]\n"
++ " [-bcast <broadcastaddr>] [-delgw] (Note: no -ipc,-dispin,-dispout)\n"
++#else
+ " [-bcast <broadcastaddr>] [-ipc] [-dispin] [-dispout] [-delgw]\n"
+#endif /* SVEN_OLA_UNBLOAT */
- " [-hint <hello interval (secs)>] [-tcint <tc interval (secs)>]\n"
- " [-midint <mid interval (secs)>] [-hnaint <hna interval (secs)>]\n"
- " [-T <Polling Rate (secs)>] [-nofork] [-hemu <ip_address>]\n" " [-lql <LQ level>] [-lqa <LQ aging factor>]\n");
-@@ -704,12 +724,20 @@
+ " [-hint <hello interval (secs)>] [-tcint <tc interval (secs)>]\n"
+ " [-midint <mid interval (secs)>] [-hnaint <hna interval (secs)>]\n"
+ " [-T <Polling Rate (secs)>] [-nofork] [-hemu <ip_address>]\n" " [-lql <LQ level>] [-lqa <LQ aging factor>]\n");
+@@ -765,12 +785,20 @@
olsr_exit(__func__, EXIT_FAILURE);
}
printf("Queuing if %s\n", *argv);
@@ -1216,7 +1216,7 @@
}
continue;
-@@ -771,7 +799,7 @@
+@@ -833,7 +861,7 @@
sscanf(*argv, "%f", &cnf->pollrate);
continue;
}
@@ -1225,7 +1225,7 @@
/*
* Should we display the contents of packages beeing sent?
*/
-@@ -795,6 +823,7 @@
+@@ -857,6 +885,7 @@
cnf->ipc_connections = 1;
continue;
}
@@ -1233,7 +1233,7 @@
/*
* IPv6 multicast addr
-@@ -812,7 +841,7 @@
+@@ -874,7 +903,7 @@
continue;
}
@@ -1242,7 +1242,7 @@
/*
* Host emulation
*/
-@@ -840,6 +869,7 @@
+@@ -902,6 +931,7 @@
continue;
}
@@ -1455,7 +1455,7 @@
struct olsr_if *interfaces;
float pollrate;
float nic_chgs_pollrate;
-@@ -269,7 +277,9 @@
+@@ -271,7 +279,9 @@
void olsrd_free_cnf(struct olsrd_config *);
@@ -1552,15 +1552,19 @@
}
/**
-@@ -385,7 +401,7 @@
+@@ -385,9 +401,11 @@
/* route additions */
olsr_add_kernel_routes(&add_kernel_list);
-#if DEBUG
++#ifndef SVEN_OLA_UNBLOAT
+#ifdef DEBUG
olsr_print_routing_table(&routingtree);
#endif
++#endif /* SVEN_OLA_UNBLOAT */
}
+
+ /*
--- a/src/rebuild_packet.c
+++ b/src/rebuild_packet.c
@@ -60,7 +60,11 @@
@@ -1671,7 +1675,7 @@
/**
* Wrapper for the timer callback.
-@@ -694,6 +696,7 @@
+@@ -693,6 +695,7 @@
/**
* Print the topology table to stdout
*/
@@ -1679,7 +1683,7 @@
void
olsr_print_tc_table(void)
{
-@@ -719,6 +722,7 @@
+@@ -718,6 +721,7 @@
} OLSR_FOR_ALL_TC_ENTRIES_END(tc);
#endif
}
diff --git a/contrib/package/olsrd-luci/patches/150-add-watchdog.patch b/contrib/package/olsrd-luci/patches/150-add-watchdog.patch
deleted file mode 100644
index 121e8a1c8..000000000
--- a/contrib/package/olsrd-luci/patches/150-add-watchdog.patch
+++ /dev/null
@@ -1,358 +0,0 @@
-diff -Nur olsrd-0-5-6-fc691af9a18d.orig/Makefile olsrd-0-5-6-fc691af9a18d/Makefile
---- olsrd-0-5-6-fc691af9a18d.orig/Makefile 2009-03-14 22:39:09.000000000 +0000
-+++ olsrd-0-5-6-fc691af9a18d/Makefile 2009-03-16 16:44:28.000000000 +0000
-@@ -148,7 +148,7 @@
- ifeq ($(OS),win32)
- SUBDIRS := dot_draw httpinfo mini pgraph secure txtinfo
- else
--SUBDIRS := bmf dot_draw dyn_gw dyn_gw_plain httpinfo mini nameservice pgraph secure txtinfo
-+SUBDIRS := bmf dot_draw dyn_gw dyn_gw_plain httpinfo mini nameservice pgraph secure txtinfo watchdog
- endif
- endif
-
-@@ -229,6 +229,11 @@
- $(MAKECMD) -C lib/arprefresh
- $(MAKECMD) -C lib/arprefresh DESTDIR=$(DESTDIR) install
-
-+watchdog:
-+ $(MAKECMD) -C lib/watchdog clean
-+ $(MAKECMD) -C lib/watchdog
-+ $(MAKECMD) -C lib/watchdog DESTDIR=$(DESTDIR) install
-+
- build_all: all switch libs
- install_all: install install_libs
- clean_all: uberclean clean_libs
-diff -Nur olsrd-0-5-6-fc691af9a18d.orig/lib/watchdog/Makefile olsrd-0-5-6-fc691af9a18d/lib/watchdog/Makefile
---- olsrd-0-5-6-fc691af9a18d.orig/lib/watchdog/Makefile 1970-01-01 00:00:00.000000000 +0000
-+++ olsrd-0-5-6-fc691af9a18d/lib/watchdog/Makefile 2009-03-13 17:13:45.000000000 +0000
-@@ -0,0 +1,56 @@
-+# The olsr.org Optimized Link-State Routing daemon(olsrd)
-+# Copyright (c) 2004-2009, the olsr.org team - see HISTORY file
-+# 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.
-+#
-+
-+OLSRD_PLUGIN = true
-+PLUGIN_NAME = olsrd_watchdog
-+PLUGIN_VER = 0.1
-+
-+TOPDIR = ../..
-+include $(TOPDIR)/Makefile.inc
-+
-+default_target: $(PLUGIN_FULLNAME)
-+
-+$(PLUGIN_FULLNAME): $(OBJS) version-script.txt
-+ $(CC) $(LDFLAGS) -o $(PLUGIN_FULLNAME) $(OBJS) $(LIBS)
-+
-+install: $(PLUGIN_FULLNAME)
-+ $(STRIP) $(PLUGIN_FULLNAME)
-+ $(INSTALL_LIB)
-+
-+clean:
-+ rm -f $(OBJS) $(SRCS:%.c=%.d) $(PLUGIN_FULLNAME)
-diff -Nur olsrd-0-5-6-fc691af9a18d.orig/lib/watchdog/README_WATCHDOG olsrd-0-5-6-fc691af9a18d/lib/watchdog/README_WATCHDOG
---- olsrd-0-5-6-fc691af9a18d.orig/lib/watchdog/README_WATCHDOG 1970-01-01 00:00:00.000000000 +0000
-+++ olsrd-0-5-6-fc691af9a18d/lib/watchdog/README_WATCHDOG 2009-03-13 17:13:45.000000000 +0000
-@@ -0,0 +1,34 @@
-+---------------------------------------------------------------------
-+Watchdog PLUGIN FOR OLSRD
-+by Henning Rogge <hrogge@googlemail.com>
-+---------------------------------------------------------------------
-+
-+This plugin is used for detecting a total freeze of the olsrd by an external script.
-+Once per timeinterval (configurable) it writes the current time into
-+a file.
-+
-+---------------------------------------------------------------------
-+PLUGIN PARAMETERS (PlParam)
-+---------------------------------------------------------------------
-+
-+PlParam "file" "/tmp/olsrd.watchdog"
-+ Name of the "still alive" file written by the watchdog
-+PlParam "interval" "5"
-+ Overwrite the file every X seconds
-+
-+
-+---------------------------------------------------------------------
-+SAMPLE CONFIG
-+---------------------------------------------------------------------
-+
-+add in /etc/olsrd.conf:
-+
-+LoadPlugin "olsrd_watchdog.so.0.1"
-+{
-+ PlParam "file" "/tmp/olsrd.watchdog"
-+ PlParam "interval" "5"
-+}
-+
-+
-+---------------------------------------------------------------------
-+EOF / 26.05.2005
-diff -Nur olsrd-0-5-6-fc691af9a18d.orig/lib/watchdog/src/olsrd_plugin.c olsrd-0-5-6-fc691af9a18d/lib/watchdog/src/olsrd_plugin.c
---- olsrd-0-5-6-fc691af9a18d.orig/lib/watchdog/src/olsrd_plugin.c 1970-01-01 00:00:00.000000000 +0000
-+++ olsrd-0-5-6-fc691af9a18d/lib/watchdog/src/olsrd_plugin.c 2009-03-16 16:51:34.000000000 +0000
-@@ -0,0 +1,145 @@
-+
-+/*
-+ * The olsr.org Optimized Link-State Routing daemon(olsrd)
-+ * Copyright (c) 2004-2009, the olsr.org team - see HISTORY file
-+ * 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.
-+ *
-+ */
-+
-+
-+ /*
-+ * Example plugin for olsrd.org OLSR daemon
-+ * Only the bare minimum
-+ */
-+
-+
-+#include "olsrd_plugin.h"
-+#include "plugin_util.h"
-+#include "olsr.h"
-+#include "defs.h"
-+#include "scheduler.h"
-+#include "olsr_cookie.h"
-+
-+
-+#include <stdio.h>
-+#include <string.h>
-+#include <stdlib.h>
-+#include <time.h>
-+#define PLUGIN_INTERFACE_VERSION 5
-+
-+static struct olsr_cookie_info *watchdog_timer_cookie;
-+
-+static char watchdog_filename[FILENAME_MAX + 1] = "/tmp/olsr.watchdog";
-+static int watchdog_interval = 5;
-+
-+/**
-+ * Plugin interface version
-+ * Used by main olsrd to check plugin interface version
-+ */
-+int
-+olsrd_plugin_interface_version(void)
-+{
-+ return PLUGIN_INTERFACE_VERSION;
-+}
-+
-+
-+static int
-+set_watchdog_file(const char *value, void *data __attribute__ ((unused)), set_plugin_parameter_addon addon __attribute__ ((unused)))
-+{
-+ strncpy(watchdog_filename, value, FILENAME_MAX);
-+ return 0;
-+}
-+
-+static int
-+set_watchdog_interval(const char *value, void *data __attribute__ ((unused)), set_plugin_parameter_addon addon
-+ __attribute__ ((unused)))
-+{
-+ watchdog_interval = atoi(value);
-+ return 0;
-+}
-+
-+/**
-+ * Register parameters from config file
-+ * Called for all plugin parameters
-+ */
-+static const struct olsrd_plugin_parameters plugin_parameters[] = {
-+ {.name = "file",.set_plugin_parameter = &set_watchdog_file,.data = NULL},
-+ {.name = "interval",.set_plugin_parameter = &set_watchdog_interval,.data = NULL},
-+};
-+
-+void
-+olsrd_get_plugin_parameters(const struct olsrd_plugin_parameters **params, int *size)
-+{
-+ *params = plugin_parameters;
-+ *size = ARRAYSIZE(plugin_parameters);
-+}
-+
-+static void
-+olsr_watchdog_write_alivefile(void *foo __attribute__ ((unused)))
-+{
-+ FILE *file = fopen(watchdog_filename, "w");
-+ if (file == NULL) {
-+ OLSR_PRINTF(3, "Error, cannot write watchdog alivefile");
-+ } else {
-+ fprintf(file, "%ld\n", (long)time(NULL));
-+ fflush(file);
-+ fclose(file);
-+ }
-+}
-+
-+/**
-+ * Initialize plugin
-+ * Called after all parameters are passed
-+ */
-+int
-+olsrd_plugin_init(void)
-+{
-+ /* create the cookie */
-+ watchdog_timer_cookie = olsr_alloc_cookie("Watchdog: write alive-file", OLSR_COOKIE_TYPE_TIMER);
-+
-+ /* Register the GW check */
-+ olsr_start_timer(watchdog_interval * MSEC_PER_SEC, 0, OLSR_TIMER_PERIODIC,
-+ &olsr_watchdog_write_alivefile, NULL, watchdog_timer_cookie->ci_id);
-+
-+ return 1;
-+}
-+
-+/*
-+ * Local Variables:
-+ * c-basic-offset: 2
-+ * indent-tabs-mode: nil
-+ * End:
-+ */
-diff -Nur olsrd-0-5-6-fc691af9a18d.orig/lib/watchdog/src/olsrd_plugin.h olsrd-0-5-6-fc691af9a18d/lib/watchdog/src/olsrd_plugin.h
---- olsrd-0-5-6-fc691af9a18d.orig/lib/watchdog/src/olsrd_plugin.h 1970-01-01 00:00:00.000000000 +0000
-+++ olsrd-0-5-6-fc691af9a18d/lib/watchdog/src/olsrd_plugin.h 2009-03-13 17:13:45.000000000 +0000
-@@ -0,0 +1,69 @@
-+
-+/*
-+ * The olsr.org Optimized Link-State Routing daemon(olsrd)
-+ * Copyright (c) 2004-2009, the olsr.org team - see HISTORY file
-+ * 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.
-+ *
-+ */
-+
-+/*
-+ * Dynamic linked library for the olsr.org olsr daemon
-+ */
-+
-+#ifndef _OLSRD_PLUGIN_MINI
-+#define _OLSRD_PLUGIN_MINI
-+
-+
-+/****************************************************************************
-+ * Functions that the plugin MUST provide *
-+ ****************************************************************************/
-+
-+
-+/* Initialization function */
-+int
-+ olsrd_plugin_init(void);
-+
-+int
-+ olsrd_plugin_interface_version(void);
-+
-+#endif
-+
-+/*
-+ * Local Variables:
-+ * c-basic-offset: 2
-+ * indent-tabs-mode: nil
-+ * End:
-+ */
-diff -Nur olsrd-0-5-6-fc691af9a18d.orig/lib/watchdog/version-script.txt olsrd-0-5-6-fc691af9a18d/lib/watchdog/version-script.txt
---- olsrd-0-5-6-fc691af9a18d.orig/lib/watchdog/version-script.txt 1970-01-01 00:00:00.000000000 +0000
-+++ olsrd-0-5-6-fc691af9a18d/lib/watchdog/version-script.txt 2009-03-13 17:13:45.000000000 +0000
-@@ -0,0 +1,10 @@
-+VERS_1.0
-+{
-+ global:
-+ olsrd_plugin_interface_version;
-+ olsrd_plugin_init;
-+ olsrd_get_plugin_parameters;
-+
-+ local:
-+ *;
-+};