AA: packages: drop bmx6, bmxd, olsrd, batman and batman-adv in preparation to move...
[12.09/packages.git] / net / olsrd / files / olsrd.init
diff --git a/net/olsrd/files/olsrd.init b/net/olsrd/files/olsrd.init
deleted file mode 100644 (file)
index 7578316..0000000
+++ /dev/null
@@ -1,715 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2008-2012 OpenWrt.org
-
-START=65
-
-SERVICE_DAEMONIZE=1
-SERVICE_WRITE_PID=1
-
-CONF=/var/etc/olsrd.conf
-PID=/var/run/olsrd.pid
-PID6=/var/run/olsrd.ipv6.pid
-
-OLSRD_OLSRD_SCHEMA='ignore:internal config_file:internal DebugLevel=0 AllowNoInt=yes'
-OLSRD_IPCCONNECT_SCHEMA='ignore:internal Host:list Net:list2'
-OLSRD_LOADPLUGIN_SCHEMA='ignore:internal library:internal Host4:list Net4:list2 Host:list Net:list2 Host6:list Net6:list2 Ping:list redistribute:list NonOlsrIf:list name:list lat lon latlon_infile HNA:list2 hosts:list2'
-OLSRD_INTERFACE_SCHEMA='ignore:internal interface:internal AutoDetectChanges:bool'
-OLSRD_INTERFACE_DEFAULTS_SCHEMA='AutoDetectChanges:bool'
-
-T='    '
-N='
-'
-
-validate_varname() {
-       local varname="$1"
-       [ -z "$varname" -o "$varname" != "${varname%%[!A-Za-z0-9_]*}" ] && return 1
-       return 0
-}
-
-validate_olsrd_option() {
-       local str="$1"
-       [ -z "$str" -o "$str" != "${str%%[!     0-9A-Za-z./|:_-]*}" ] && return 1
-       return 0
-}
-
-system_config() {
-       local cfg="$1"
-       local cfgt
-       local hostname
-       local latlon
-
-       config_get cfgt "$cfg" TYPE
-
-       if [ "$cfgt" = "system" ]; then
-               config_get hostname "$cfg" hostname
-               hostname="${hostname:-OpenWrt}"
-               SYSTEM_HOSTNAME="$hostname"
-       fi
-
-       if [ -z "$SYSTEM_LAT" -o -z "$SYSTEM_LON" ]; then
-               config_get latlon "$cfg" latlon
-               IFS=" ${T}${N},"
-               set -- $latlon
-               unset IFS
-               SYSTEM_LAT="$1"
-               SYSTEM_LON="$2"
-       fi
-
-       if [ -z "$SYSTEM_LAT" -o -z "$SYSTEM_LON" ]; then
-               config_get latlon "$cfg" latitude
-               SYSTEM_LAT="$latlon"
-               config_get latlon "$cfg" longitude
-               SYSTEM_LON="$latlon"
-       fi
-}
-
-olsrd_find_config_file() {
-       local cfg="$1"
-       validate_varname "$cfg" || return 0
-
-       config_get_bool ignore "$cfg" ignore 0
-       [ "$ignore" -ne 0 ] && return 0
-       config_get OLSRD_CONFIG_FILE "$cfg" config_file
-
-       return 0
-}
-
-warning_invalid_value() {
-       local package="$1"
-       validate_varname "$package" || package=
-       local config="$2"
-       validate_varname "$config" || config=
-       local option="$3"
-       validate_varname "$option" || option=
-
-       echo -n "Warning: Invalid value" 1>&2
-
-       if [ -n "$package" -a -n "$config" ]; then
-               echo -n " in option '$package.$config${option:+.}$option'" 1>&2
-       fi
-
-       echo ", skipped" 1>&2
-
-       return 0
-}
-
-olsrd_write_option() {
-       local param="$1"
-       local cfg="$2"
-       validate_varname "$cfg" || return 1
-       local option="$3"
-       validate_varname "$option" || return 1
-       local value="$4"
-       local option_type="$5"
-
-       if [ "$option_type" = bool ]; then
-               case "$value" in
-                       1|on|true|enabled|yes) value=yes;;
-                       0|off|false|disabled|no) value=no;;
-                       *) warning_invalid_value olsrd "$cfg" "$option"; return 1;;
-               esac
-       fi
-
-       if ! validate_olsrd_option "$value"; then
-               warning_invalid_value olsrd "$cfg" "$option"
-               return 1
-       fi
-
-       if [ "$value" != "${value%%[G-Zg-z_-]*}" ]; then
-               if [ "$option" != "Ip6AddrType" -a "$option" != "LinkQualityMult" -a "$value" != "yes" -a "$value" != "no" ]; then
-                       value="\"$value\""
-               fi
-       fi
-
-       echo -n "${N}$param$option $value"
-
-       return 0
-}
-
-olsrd_write_plparam() {
-       local param="$1"
-       local cfg="$2"
-       validate_varname "$cfg" || return 1
-       local option="$3"
-       validate_varname "$option" || return 1
-       local value="$4"
-       local option_type="$5"
-       local _option
-
-       if [ "$option_type" = bool ]; then
-               case "$value" in
-                       1|on|true|enabled|yes) value=yes;;
-                       0|off|false|disabled|no) value=no;;
-                       *) warning_invalid_value olsrd "$cfg" "$option"; return 1;;
-               esac
-       fi
-
-       if ! validate_olsrd_option "$value"; then
-               warning_invalid_value olsrd "$cfg" "$option"
-               return 1
-       fi
-
-       IFS='-_'
-       set -- $option
-       option="$*"
-       unset IFS
-       _option="$option"
-       if [ "$option" = 'hosts' ]; then
-               set -- $value
-               option="$1"
-               shift
-               value="$*"
-       fi
-       if [ "$option" = 'NonOlsrIf' ]; then
-               if validate_varname "$value"; then
-                       if network_get_device ifname "$value"; then
-                               echo "Info: mdns Interface '$value' ifname '$ifname' found" 1>&2
-                       else
-                               echo "Warning: mdns Interface '$value' not found, skipped" 1>&2
-                       fi
-               else
-                       warning_invalid_value olsrd "$cfg" "NonOlsrIf"
-               fi
-               [ -z "$ifname" ] || value=$ifname
-       fi
-
-       echo -n "${N}${param}PlParam \"$option\" \"$value\""
-
-       return 0
-}
-
-config_update_schema() {
-       unset IFS
-       local schema_varname="$1"
-       validate_varname "$schema_varname" || return 1
-       local command="$2"
-       validate_varname "$command" || return 1
-       local option="$3"
-       validate_varname "$option" || return 1
-       local value="$4"
-       local schema
-       local cur_option
-
-       case "$varname" in
-               *_LENGTH) return 0;;
-               *_ITEM*) return 0;;
-       esac
-
-       eval "export -n -- \"schema=\${$schema_varname}\""
-
-       for cur_option in $schema; do
-               [ "${cur_option%%[:=]*}" = "$option" ] && return 0
-       done
-
-       if [ "$command" = list ]; then
-               set -- $value
-               if [ "$#" -ge "3" ]; then
-                       schema_entry="$option:list3"
-               elif [ "$#" -ge "2" ]; then
-                       schema_entry="$option:list2"
-               else
-                       schema_entry="$option:list"
-               fi
-       else
-               schema_entry="$option"
-       fi
-
-       append "$schema_varname" "$schema_entry"
-
-       return 0
-}
-
-config_write_options() {
-       unset IFS
-       local schema="$1"
-       local cfg="$2"
-       validate_varname "$cfg" || return 1
-       local write_func="$3"
-       [ -z "$write_func" ] && output_func=echo
-       local write_param="$4"
-       local schema_entry
-       local option
-       local option_length
-       local option_type
-       local default
-       local value
-       local list_size
-       local list_item
-       local list_value
-       local i
-       local position
-
-       for schema_entry in $schema; do
-               default="${schema_entry#*[=]}"
-               [ "$default" = "$schema_entry" ] && default=
-               option="${schema_entry%%[=]*}"
-               IFS=':'
-               set -- $option
-               unset IFS
-               option="$1"
-               option_type="$2"
-               validate_varname "$option" || continue
-               [ -z "$option_type" ] || validate_varname "$option_type" || continue
-               [ "$option_type" = internal ] && continue
-               config_get value "$cfg" "$option"
-
-               if [ -z "$value" ]; then
-                       IFS='+'
-                       set -- $default
-                       unset IFS
-                       value=$*
-               elif [ "$value" = '-' -a -n "$default" ]; then
-                       continue
-               fi
-
-               [ -z "$value" ] && continue
-
-               case "$option_type" in
-                       list) list_size=1;;
-                       list2) list_size=2;;
-                       list3) list_size=3;;
-                       *) list_size=0;;
-               esac
-
-               if [ "$list_size" -gt 0 ]; then
-                       config_get option_length "$cfg" "${option}_LENGTH"
-                       if [ -n "$option_length" ]; then
-                               i=1
-                               while [ "$i" -le "$option_length" ]; do
-                                       config_get list_value "$cfg" "${option}_ITEM$i"
-                                       "$write_func" "$write_param" "$cfg" "$option" "$list_value" "$option_type" || break
-                                       i=$((i + 1))
-                               done
-                       else
-                               list_value=
-                               i=0
-                               for list_item in $value; do
-                                       append "list_value" "$list_item"
-                                       i=$((i + 1))
-                                       position=$((i % list_size))
-                                       if [ "$position" -eq 0 ]; then
-                                               "$write_func" "$write_param" "$cfg" "$option" "$list_value" "$option_type" || break
-                                               list_value=
-                                       fi
-                               done
-                               [ "$position" -ne 0 ] && "$write_func" "$write_param" "$cfg" "$option" "$list_value" "$option_type"
-                       fi
-               else
-                       "$write_func" "$write_param" "$cfg" "$option" "$value" "$option_type"
-               fi
-       done
-
-       return 0
-}
-
-olsrd_write_olsrd() {
-       local cfg="$1"
-       validate_varname "$cfg" || return 0
-       local ignore
-
-       config_get_bool ignore "$cfg" ignore 0
-       [ "$ignore" -ne 0 ] && return 0
-
-       [ "$OLSRD_COUNT" -gt 0 ] && return 0
-
-       config_get ipversion "$cfg" IpVersion
-       if [ "$ipversion" = "6and4" ]; then
-               OLSRD_IPVERSION_6AND4=1
-               config_set "$cfg" IpVersion '6'
-       fi
-       config_get smartgateway "$cfg" SmartGateway
-       config_get smartgatewayuplink "$cfg" SmartGatewayUplink
-
-       config_write_options "$OLSRD_OLSRD_SCHEMA" "$cfg" olsrd_write_option
-       echo
-       OLSRD_COUNT=$((OLSRD_COUNT + 1))
-       return 0
-}
-
-olsrd_write_ipcconnect() {
-       local cfg="$1"
-       validate_varname "$cfg" || return 0
-       local ignore
-
-       config_get_bool ignore "$cfg" ignore 0
-       [ "$ignore" -ne 0 ] && return 0
-
-       [ "$IPCCONNECT_COUNT" -gt 0 ] && return 0
-
-       echo -n "${N}IpcConnect${N}{"
-       config_write_options "$OLSRD_IPCCONNECT_SCHEMA" "$cfg" olsrd_write_option "${T}"
-       echo "${N}}"
-       IPCCONNECT_COUNT=$((IPCCONNECT_COUNT + 1))
-
-       return 0
-}
-
-olsrd_write_hna4() {
-       local cfg="$1"
-       validate_varname "$cfg" || return 0
-       local ignore
-
-       config_get_bool ignore "$cfg" ignore 0
-       [ "$ignore" -ne 0 ] && return 0
-
-       config_get netaddr "$cfg" netaddr
-       if ! validate_olsrd_option "$netaddr"; then
-               warning_invalid_value olsrd "$cfg" "netaddr"
-               return 0
-       fi
-
-       config_get netmask "$cfg" netmask
-       if ! validate_olsrd_option "$netmask"; then
-               warning_invalid_value olsrd "$cfg" "netmask"
-               return 0
-       fi
-
-       [ "$HNA4_COUNT" -le 0 ] && echo -n "${N}Hna4${N}{"
-       echo -n "${N}${T}${T}$netaddr $netmask"
-       HNA4_COUNT=$((HNA4_COUNT + 1))
-
-       return 0
-}
-
-olsrd_write_hna6() {
-       local cfg="$1"
-       validate_varname "$cfg" || return 0
-       local ignore
-
-       config_get_bool ignore "$cfg" ignore 0
-       [ "$ignore" -ne 0 ] && return 0
-
-       config_get netaddr "$cfg" netaddr
-       if ! validate_olsrd_option "$netaddr"; then
-               warning_invalid_value olsrd "$cfg" "netaddr"
-               return 0
-       fi
-
-       config_get prefix "$cfg" prefix
-       if ! validate_olsrd_option "$prefix"; then
-               warning_invalid_value olsrd "$cfg" "prefix"
-               return 0
-       fi
-
-       [ "$HNA6_COUNT" -le 0 ] && echo -n "${N}Hna6${N}{"
-       echo -n "${N}${T}${T}$netaddr $prefix"
-       HNA6_COUNT=$((HNA6_COUNT + 1))
-
-       return 0
-}
-
-olsrd_write_loadplugin() {
-       local cfg="$1"
-       validate_varname "$cfg" || return 0
-       local ignore
-       local name
-       local suffix
-       local lat
-       local lon
-       local latlon_infile
-
-       config_get_bool ignore "$cfg" ignore 0
-       [ "$ignore" -ne 0 ] && return 0
-
-       config_get library "$cfg" library
-       if ! validate_olsrd_option "$library"; then
-               warning_invalid_value olsrd "$cfg" "library"
-               return 0
-       fi
-       if ! [ -x "/lib/$library" -o -x "/usr/lib/$library" -o -x "/usr/local/lib/$library" ]; then
-               echo "Warning: Plugin library '$library' not found, skipped" 1>&2
-               return 0
-       fi
-
-       case "$library" in
-               olsrd_nameservice.*)
-                       config_get name "$cfg" name
-                       [ -z "$name" ] && config_set "$cfg" name $SYSTEM_HOSTNAME
-
-                       config_get suffix "$cfg" suffix
-                       [ -z "$suffix" ] && config_set "$cfg" suffix '.olsr'
-
-                       config_get lat "$cfg" lat
-                       config_get lon "$cfg" lon
-                       config_get latlon_infile "$cfg" latlon_infile
-                       if [ \( -z "$lat" -o -z "$lat" \) -a -z "$latlon_infile" ]; then
-                               if [ -f '/var/run/latlon.txt' ]; then
-                                       config_set "$cfg" lat ''
-                                       config_set "$cfg" lon ''
-                                       config_set "$cfg" latlon_infile '/var/run/latlon.txt'
-                               else
-                                       config_set "$cfg" lat "$SYSTEM_LAT"
-                                       config_set "$cfg" lon "$SYSTEM_LON"
-                               fi
-                       fi
-
-                       for f in latlon_file hosts_file services_file resolv_file macs_file; do
-                               config_get $f "$cfg" $f
-                       done
-
-                       [ -z "$latlon_file" ] && config_set "$cfg" latlon_file '/var/run/latlon.js'
-               ;;
-               olsrd_watchdog.*)
-                       config_get wd_file "$cfg" file
-               ;;
-       esac
-
-       echo -n "${N}LoadPlugin \"$library\"${N}{"
-       config_write_options "$OLSRD_LOADPLUGIN_SCHEMA" "$cfg" olsrd_write_plparam "${T}"
-       echo "${N}}"
-
-       return 0
-}
-
-olsrd_write_interface() {
-       local cfg="$1"
-       validate_varname "$cfg" || return 0
-       local ignore
-       local interfaces
-       local interface
-       local ifnames
-
-       config_get_bool ignore "$cfg" ignore 0
-       [ "$ignore" -ne 0 ] && return 0
-
-       ifnames=
-       config_get interfaces "$cfg" interface
-       for interface in $interfaces; do
-               if validate_varname "$interface"; then
-                       if network_get_device IFNAME "$interface"; then
-                               ifnames="$ifnames \"$IFNAME\""
-                               ifsglobal="$ifsglobal $IFNAME"
-                       else
-                               echo "Warning: Interface '$interface' not found, skipped" 1>&2
-                       fi
-               else
-                       warning_invalid_value olsrd "$cfg" "interface"
-               fi
-       done
-
-       [ -z "$ifnames" ] && return 0
-
-       echo -n "${N}Interface$ifnames${N}{"
-       config_write_options "$OLSRD_INTERFACE_SCHEMA" "$cfg" olsrd_write_option "${T}"
-       echo "${N}}"
-       INTERFACES_COUNT=$((INTERFACES_COUNT + 1))
-
-       return 0
-}
-
-olsrd_write_interface_defaults() {
-       local cfg="$1"
-       validate_varname "$cfg" || return 0
-
-       echo -n "${N}InterfaceDefaults$ifnames${N}{"
-       config_write_options "$OLSRD_INTERFACE_DEFAULTS_SCHEMA" "$cfg" olsrd_write_option "${T}"
-       echo "${N}}"
-
-       return 1
-}
-
-olsrd_update_schema() {
-       local command="$1"
-       validate_varname "$command" || return 0
-       local varname="$2"
-       validate_varname "$varname" || return 0
-       local value="$3"
-       local cfg="$CONFIG_SECTION"
-       local cfgt
-       local cur_varname
-
-       config_get cfgt "$cfg" TYPE
-       case "$cfgt" in
-               olsrd) config_update_schema OLSRD_OLSRD_SCHEMA "$command" "$varname" "$value";;
-               IpcConnect) config_update_schema OLSRD_IPCCONNECT_SCHEMA "$command" "$varname" "$value";;
-               LoadPlugin) config_update_schema OLSRD_LOADPLUGIN_SCHEMA "$command" "$varname" "$value";;
-               Interface) config_update_schema OLSRD_INTERFACE_SCHEMA "$command" "$varname" "$value";;
-               InterfaceDefaults) config_update_schema OLSRD_INTERFACE_DEFAULTS_SCHEMA "$command" "$varname" "$value";;
-       esac
-
-       return 0
-}
-
-olsrd_write_config() {
-       OLSRD_IPVERSION_6AND4=0
-       OLSRD_COUNT=0
-       config_foreach olsrd_write_olsrd olsrd
-       IPCCONNECT_COUNT=0
-       config_foreach olsrd_write_ipcconnect IpcConnect
-       HNA4_COUNT=0
-       config_foreach olsrd_write_hna4 Hna4
-       [ "$HNA4_COUNT" -gt 0 ] && echo "${N}}"
-       HNA6_COUNT=0
-       config_foreach olsrd_write_hna6 Hna6
-       [ "$HNA6_COUNT" -gt 0 ] && echo "${N}}"
-       config_foreach olsrd_write_loadplugin LoadPlugin
-       INTERFACES_COUNT=0
-       config_foreach olsrd_write_interface_defaults InterfaceDefaults
-       config_foreach olsrd_write_interface Interface
-       echo
-
-       return 0
-}
-
-olsrd_setup_smartgw_rules() {
-       # Check if ipip is installed
-       [ ! -e /etc/modules.d/[0-9]*-ipip ] && echo "Warning: kmod-ipip is missing. SmartGateway will not work until you install it."
-
-       wanifnames=$(ip r l e 0/0 t all | sed -e 's/^.* dev //' |cut -d " " -f 1 | sort | uniq)
-       nowan=0
-       if [ -z "$wanifnames" ]; then
-               nowan=1
-       fi
-
-       IP4T=$(which iptables)
-       IP6T=$(which ip6tables)
-
-       # Delete smartgw firewall rules first
-       for IPT in $IP4T $IP6T; do
-               while $IPT -D forwarding_rule -o tnl_+ -j ACCEPT 2> /dev/null; do :;done
-               for IFACE in $wanifnames; do
-                       while $IPT -D forwarding_rule -i tunl0 -o $IFACE -j ACCEPT 2> /dev/null; do :; done
-               done
-               for IFACE in $ifsglobal; do
-                       while $IPT -D input_rule -i $IFACE -p 4 -j ACCEPT 2> /dev/null; do :; done
-               done
-       done
-       while $IP4T -t nat -D postrouting_rule -o tnl_+ -j MASQUERADE 2> /dev/null; do :;done
-
-       if [ "$smartgateway" == "yes" ]; then
-               echo "Notice: Inserting firewall rules for SmartGateway"
-               if [ ! "$smartgatewayuplink" == "none" ]; then
-                       if [ "$smartgatewayuplink" == "ipv4" ]; then
-                               # Allow everything to be forwarded to tnl_+ and use NAT for it
-                               $IP4T -I forwarding_rule -o tnl_+ -j ACCEPT
-                               $IP4T -t nat -I postrouting_rule -o tnl_+ -j MASQUERADE
-                               # Allow forwarding from tunl0 to (all) wan-interfaces
-                               if [ "$nowan"="0" ]; then
-                                       for IFACE in $wanifnames; do
-                                               $IP4T -A forwarding_rule -i tunl0 -o $IFACE -j ACCEPT
-                                       done
-                               fi
-                               # Allow incoming ipip on all olsr-interfaces
-                               for IFACE in $ifsglobal; do
-                                       $IP4T -I input_rule -i $IFACE -p 4 -j ACCEPT
-                               done
-                       elif [ "$smartgatewayuplink" == "ipv6" ]; then
-                               $IP6T -I forwarding_rule -o tnl_+ -j ACCEPT
-                               if [ "$nowan"="0" ]; then
-                                       for IFACE in $wanifnames; do
-                                               $IP6T -A forwarding_rule -i tunl0 -o $IFACE -j ACCEPT
-                                       done
-                               fi
-                               for IFACE in $ifsglobal; do
-                                       $IP6T -I input_rule -i $IFACE -p 4 -j ACCEPT
-                               done
-                       else
-                               for IPT in $IP4T $IP6T; do
-                                       $IPT -I forwarding_rule -o tnl_+ -j ACCEPT
-                                       $IPT -t nat -I postrouting_rule -o tnl_+ -j MASQUERADE
-                                       if [ "$nowan"="0" ]; then
-                                               for IFACE in $wanifnames; do
-                                                       $IPT -A forwarding_rule -i tunl0 -o $IFACE -j ACCEPT
-                                               done
-                                       fi
-                                       for IFACE in $ifsglobal; do
-                                               $IPT -I input_rule -i $IFACE -p 4 -j ACCEPT
-                                       done
-                               done
-                       fi
-               fi
-       fi
-}
-
-error() {
-       echo "${initscript}:" "$@" 1>&2
-}
-
-start() {
-       SYSTEM_HOSTNAME=
-       SYSTEM_LAT=
-       SYSTEM_LON=
-       config_load system
-       config_foreach system_config system
-
-       option_cb() {
-               olsrd_update_schema "option" "$@"
-       }
-
-       list_cb() {
-               olsrd_update_schema "list" "$@"
-       }
-
-       . /lib/functions/network.sh
-
-       config_load olsrd
-       reset_cb
-
-       OLSRD_CONFIG_FILE=
-       config_foreach olsrd_find_config_file olsrd
-
-       if [ -z "$OLSRD_CONFIG_FILE" ]; then
-               mkdir -p -- /var/etc/
-               olsrd_write_config > /var/etc/olsrd.conf
-               if [ "$INTERFACES_COUNT" -gt 0 -a "$OLSRD_COUNT" -gt 0 ]; then
-                       OLSRD_CONFIG_FILE=/var/etc/olsrd.conf
-               fi
-       fi
-
-       [ -z "$OLSRD_CONFIG_FILE" ] && return 1
-
-       local bindv6only='0'
-       if [ "$OLSRD_IPVERSION_6AND4" -ne 0 ]; then
-               bindv6only="$(sysctl -n net.ipv6.bindv6only)"
-               sysctl -w net.ipv6.bindv6only=1 > /dev/null
-               sed -e '/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/d' < "$OLSRD_CONFIG_FILE" > /var/etc/olsrd.conf.ipv6
-               sed -e 's/^IpVersion[ ][ ]*6$/IpVersion 4/' -e 's/^\t\t[A-Fa-f0-9.:]*[:][A-Fa-f0-9.:]*[ ][0-9]*$//' < "$OLSRD_CONFIG_FILE" > /var/etc/olsrd.conf.ipv4
-               rm $OLSRD_CONFIG_FILE
-
-               # some filenames should get the suffix .ipv6
-               for file in $latlon_file $hosts_file $services_file $resolv_file $macs_file $wd_file;do
-                       f=$(echo $file|sed 's/\//\\\//g')
-                       sed -i "s/$f/$f.ipv6/g" /var/etc/olsrd.conf.ipv6
-               done
-
-               SERVICE_PID_FILE="$PID6"
-               if service_check /usr/sbin/olsrd; then
-                       error "there already is an IPv6 instance of olsrd running ($(cat $PID6)), not starting."
-               else
-                       service_start /usr/sbin/olsrd -f /var/etc/olsrd.conf.ipv6 -nofork
-               fi
-
-               SERVICE_PID_FILE="$PID"
-               if service_check /usr/sbin/olsrd; then
-                       error "there already is an IPv4 instance of olsrd running ($(cat $PID)), not starting."
-               else
-                       service_start /usr/sbin/olsrd -f /var/etc/olsrd.conf.ipv4 -nofork
-               fi
-
-               sleep 3
-               sysctl -w net.ipv6.bindv6only="$bindv6only" > /dev/null
-
-       else
-
-               if [ "$ipversion" = "6" ]; then
-                       sed -i '/[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}/d' "$OLSRD_CONFIG_FILE"
-               fi
-
-               SERVICE_PID_FILE="$PID"
-               if service_check /usr/sbin/olsrd; then
-                       error "there already is an IPv4 instance of olsrd running ($(cat $PID)), not starting."
-                       return 1
-               else
-                       service_start /usr/sbin/olsrd -f "$OLSRD_CONFIG_FILE" -nofork
-               fi
-       fi
-       olsrd_setup_smartgw_rules
-}
-
-stop() {
-       SERVICE_PID_FILE="$PID"
-       service_stop /usr/sbin/olsrd
-
-       SERVICE_PID_FILE="$PID6"
-       service_stop /usr/sbin/olsrd
-}