X-Git-Url: http://git.ozo.com/?a=blobdiff_plain;f=olsrd%2Ffiles%2Folsrd.hotplug.sh;fp=olsrd%2Ffiles%2Folsrd.hotplug.sh;h=467156f5e13bf0a2f57af299a2c9ec0925fa30a9;hb=6bdbd50aaf0344c1c17deabb5393a8f8f622af4f;hp=0000000000000000000000000000000000000000;hpb=fd336abf54afdc2c45501814a5587b4690821c7a;p=lede-routing%2F.git diff --git a/olsrd/files/olsrd.hotplug.sh b/olsrd/files/olsrd.hotplug.sh new file mode 100755 index 0000000..467156f --- /dev/null +++ b/olsrd/files/olsrd.hotplug.sh @@ -0,0 +1,50 @@ +#!/bin/sh + +[ "$ACTION" = ifup ] || exit 0 +/etc/init.d/olsrd enabled || exit 0 + +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" + ;; + esac + + i=$(( $i + 1 )) + } done +} + +olsrd_interface_needs_adding() +{ + local interface="$1" # e.g. wlanadhocRADIO1 + local device="$2" # e.g. wlan1-1 + local myif + local config="/var/etc/olsrd.conf" + + for myif in $(olsrd_list_configured_interfaces); do { + [ "$myif" = "$interface" ] && { + if grep -s ^'Interface ' "$config" | grep -q "\"$device\""; then + logger -t olsrd_hotplug -p daemon.debug "[OK] already_active: $INTERFACE => $DEVICE" + return 1 + else + logger -t olsrd_hotplug -p daemon.info "[OK] ifup: $INTERFACE => $DEVICE" + return 0 + fi + } + } done + + logger -t olsrd_hotplug -p daemon.debug "[OK] interface $INTERFACE not used for olsrd" + return 1 +} + +olsrd_interface_needs_adding "$INTERFACE" "$DEVICE" && { + /etc/init.d/olsrd restart +}