+++ /dev/null
-#!/bin/sh
-
-olsrd_list_configured_interfaces()
-{
- local i=0
- local interface
-
- while interface="$( uci -q get $OLSRD.@Interface[$i].interface )"; do {
- case "$( uci -q get $OLSRD.@Interface[$i].ignore )" in
- 1|on|true|enabled|yes)
- # is disabled
- ;;
- *)
- echo "$interface" # e.g. 'lan'
- ;;
- esac
-
- i=$(( $i + 1 ))
- } done
-}
-
-olsrd_interface_already_in_config()
-{
- # e.g.: 'Interface "eth0.1" "eth0.2" "wlan0"'
- if grep -s ^'Interface ' '/var/etc/$OLSRD.conf' | grep -q "\"$DEVICE\""; then
- logger -t olsrd_hotplug -p daemon.debug "[OK] already_active: '$INTERFACE' => '$DEVICE'"
- return 0
- else
- logger -t olsrd_hotplug -p daemon.info "[OK] ifup: '$INTERFACE' => '$DEVICE'"
- return 1
- fi
-}
-
-olsrd_interface_needs_adding()
-{
- local interface
-
- # likely and cheap operation:
- olsrd_interface_already_in_config && return 1
-
- for interface in $(olsrd_list_configured_interfaces); do {
- [ "$interface" = "$INTERFACE" ] && {
- olsrd_interface_already_in_config || return 0
- }
- } done
-
- logger -t olsrd_hotplug -p daemon.debug "[OK] interface '$INTERFACE' => '$DEVICE' not used for $OLSRD"
- return 1
-}
-
-case "$ACTION" in
- ifup)
- # only work after the first normal startup
- # also: no need to test, if enabled
- OLSRD=olsrd4
- [ -e "/var/etc/$OLSRD.conf" ] && {
- # INTERFACE = e.g. 'wlanadhocRADIO1' or 'cfg144d8f'
- # DEVICE = e.g. 'wlan1-1'
- olsrd_interface_needs_adding && {
- . /etc/rc.common /etc/init.d/$OLSRD restart
- }
- }
-
- OLSRD=olsrd6
- [ -e "/var/etc/$OLSRD.conf" ] && {
- olsrd_interface_needs_adding && {
- . /etc/rc.common /etc/init.d/$OLSRD restart
- }
- }
- ;;
-esac