contrib: remove olsrd-luci
[project/luci.git] / contrib / package / olsrd-luci / files / etc / init.d / olsrd
diff --git a/contrib/package/olsrd-luci/files/etc/init.d/olsrd b/contrib/package/olsrd-luci/files/etc/init.d/olsrd
deleted file mode 100755 (executable)
index 875800e..0000000
+++ /dev/null
@@ -1,581 +0,0 @@
-#!/bin/sh /etc/rc.common
-# Copyright (C) 2008  Alina Friedrichsen <x-alina@gmx.net>
-# Special thanks to bittorf wireless ))
-START=50
-
-BIN=/usr/sbin/olsrd
-CONF=/var/etc/olsrd.conf
-PID=/var/run/olsrd.pid
-
-OLSRD_OLSRD_SCHEMA='ignore:internal config_file:internal DebugLevel=0 IpVersion=4 AllowNoInt:bool=1 Pollrate=0.025 TcRedundancy=2 MprCoverage=3 LinkQualityFishEye=1 LinkQualityDijkstraLimit=0+9.0 FIBMetric=flat ClearScreen:bool=1 Willingness=3 LinkQualityAging=0.1 LinkQualityAlgorithm=etx_fpm MinTCVTime=500.0'
-OLSRD_IPCCONNECT_SCHEMA='ignore:internal Host:list Net:list2'
-OLSRD_LOADPLUGIN_SCHEMA='ignore:internal library:internal Host:list Net: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 Ip4Broadcast HelloInterval=5.0 HelloValidityTime=40.0 TcInterval=2.0 TcValidityTime=256.0 MidInterval=18.0 MidValidityTime=324.0 HnaInterval=18.0 HnaValidityTime=108.0'
-
-T='    '
-N='
-'
-
-validate_varname() {
-       local varname=$1
-       [ -z "$varname" -o "$varname" != "${varname%%[!A-Za-z0-9_]*}" ] && return 1
-       return 0
-}
-
-validate_ifname() {
-       local ifname=$1
-       [ -z "$ifname" -o "$ifname" != "${ifname%%[!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
-}
-
-get_ifname() {
-       IFNAME=
-       local interface=$1
-       validate_varname "$interface" || return 1
-       local ifname
-
-       config_get ifname "$interface" ifname
-       validate_ifname "$ifname" || return 1
-       IFNAME=$ifname
-
-       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
-}
-
-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 "$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
-
-       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_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}$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}$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
-
-                       config_get latlon_file "$cfg" latlon_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 get_ifname "$interface"; then
-                               ifnames="$ifnames \"$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_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";;
-       esac
-
-       return 0
-}
-
-olsrd_write_config() {
-       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 Interface
-       echo
-
-       return 0
-}
-
-start() {
-       ### check for running instance
-       if [ -s $PID ]; then
-               if kill -0 $(cat $PID) 2>&-; then
-                       echo "there is already a running instance ($(cat $PID))"
-                       return 1
-               fi
-       fi
-
-       ### disable icmp redirects
-       echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
-
-       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" "$@"
-       }
-
-       include /lib/network
-       scan_interfaces
-       config_load olsrd
-       reset_cb
-
-       OLSRD_CONFIG_FILE=
-       config_foreach olsrd_find_config_file olsrd
-
-       if [ -z "$OLSRD_CONFIG_FILE" ]; then
-               ### generate config
-               mkdir -p ${CONF%/*}
-               olsrd_write_config > $CONF
-               if [ "$INTERFACES_COUNT" -gt 0 -a "$OLSRD_COUNT" -gt 0 ]; then
-                       OLSRD_CONFIG_FILE=$CONF
-               fi
-       fi
-
-       [ -z "$OLSRD_CONFIG_FILE" ] && return 1
-
-       ### start olsrd
-       start-stop-daemon -q -b -m -p $PID -x $BIN -S -- -f $CONF -nofork
-}
-
-stop() {
-       ### stop olsrd
-       start-stop-daemon -q -p $PID -x $BIN -K
-
-       ### re-enable icmp redirects
-       echo 1 > /proc/sys/net/ipv4/conf/all/send_redirects
-}
-
-restart() {
-       ### override generic restart because we need some time between stop and start
-       stop; sleep 3; start
-}