summaryrefslogtreecommitdiffhomepage
path: root/contrib
diff options
context:
space:
mode:
authorJo-Philipp Wich <jow@openwrt.org>2009-03-16 17:11:06 +0000
committerJo-Philipp Wich <jow@openwrt.org>2009-03-16 17:11:06 +0000
commit129be80785b60b8e4bda7be8a211c1716a29f27a (patch)
tree4a1609316c1ffac93595b2a126c9213c17d89509 /contrib
parent5de48782578cd60f5aeedb2337b6e2961a2c6393 (diff)
contrib/packages/olsrd-luci: add watchdog plugin (grabbed from ninux.org and modified for olsrd 0.5.6)
Diffstat (limited to 'contrib')
-rw-r--r--contrib/package/olsrd-luci/Makefile19
-rw-r--r--contrib/package/olsrd-luci/patches/150-add-watchdog.patch358
2 files changed, 374 insertions, 3 deletions
diff --git a/contrib/package/olsrd-luci/Makefile b/contrib/package/olsrd-luci/Makefile
index c0ccf46d2..2828dd7d6 100644
--- a/contrib/package/olsrd-luci/Makefile
+++ b/contrib/package/olsrd-luci/Makefile
@@ -13,7 +13,7 @@ PKG_BASENAME:=olsrd
PKG_NAME:=$(PKG_BASENAME)-luci
PKG_BASEVER:=0.5.6-r3
PKG_VERSION:=$(PKG_BASEVER)+hg1765
-PKG_RELEASE:=1
+PKG_RELEASE:=2
PKG_HGREV:=fc691af9a18d
PKG_SOURCE:=$(PKG_HGREV).tar.gz
@@ -119,13 +119,20 @@ define Package/olsrd-luci-mod-quagga
DEPENDS:=olsrd-luci
endef
+define Package/olsrd-luci-mod-watchdog
+ $(call Package/olsrd-luci/common_info)
+ MENU:=1
+ TITLE:=OLSR - Watchdog Plugin
+ DEPENDS:=olsrd-luci
+endef
+
TARGET_CFLAGS += $(FPIC)
define Build/Compile
$(MAKE) -C "$(PKG_BUILD_DIR)" olsrd libs \
$(TARGET_CONFIGURE_OPTS) \
NODEBUG=1 \
- CFLAGS="$(TARGET_CFLAGS) -DSVEN_OLA_UNBLOAT" \
+ CFLAGS="$(TARGET_CFLAGS) -DSVEN_OLA_UNBLOAT -DNODEBUG" \
OS="linux" \
INSTALL_PREFIX="$(PKG_INSTALL_DIR)" \
LIBDIR="$(PKG_INSTALL_DIR)/usr/lib" \
@@ -134,7 +141,7 @@ define Build/Compile
MANDIR="$(PKG_INSTALL_DIR)/usr/share/man" \
STRIP="true" \
INSTALL_LIB="true" \
- SUBDIRS="arprefresh bmf dot_draw dyn_gw dyn_gw_plain httpinfo nameservice secure txtinfo quagga"
+ SUBDIRS="arprefresh bmf dot_draw dyn_gw dyn_gw_plain httpinfo nameservice secure txtinfo quagga watchdog"
endef
define Package/olsrd-luci/install
@@ -196,6 +203,11 @@ define Package/olsrd-luci-mod-quagga/install
$(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/quagga/olsrd_quagga.so.* $(1)/usr/lib/
endef
+define Package/olsrd-luci-mod-watchdog/install
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/lib/watchdog/olsrd_watchdog.so.* $(1)/usr/lib/
+endef
+
$(eval $(call BuildPackage,olsrd-luci))
$(eval $(call BuildPackage,olsrd-luci-mod-arprefresh))
@@ -208,3 +220,4 @@ $(eval $(call BuildPackage,olsrd-luci-mod-nameservice))
$(eval $(call BuildPackage,olsrd-luci-mod-secure))
$(eval $(call BuildPackage,olsrd-luci-mod-txtinfo))
$(eval $(call BuildPackage,olsrd-luci-mod-quagga))
+$(eval $(call BuildPackage,olsrd-luci-mod-watchdog))
diff --git a/contrib/package/olsrd-luci/patches/150-add-watchdog.patch b/contrib/package/olsrd-luci/patches/150-add-watchdog.patch
new file mode 100644
index 000000000..121e8a1c8
--- /dev/null
+++ b/contrib/package/olsrd-luci/patches/150-add-watchdog.patch
@@ -0,0 +1,358 @@
+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:
++ *;
++};