#!/bin/sh /etc/rc.common # Copyright (C) 2008 OpenWrt.org [ -n "$IPKG_INSTROOT" ] && exit 0 START=90 config_cb() { local cfg="$CONFIG_SECTION" config_get configname "$cfg" TYPE case "$configname" in edge) config_get ipaddr "$cfg" ipaddr config_get supernode "$cfg" supernode config_get port "$cfg" port config_get community "$cfg" community config_get key "$cfg" key config_get_bool route "$cfg" route 0 config_get devname "$cfg" devname node_mac=`ifconfig ath0 | grep HWaddr | awk '{print $5}' | tr -d "\n" | cut -c6-` [ "$route" = "1" ] && args='-r' if [ "$ipaddr" != "" ]; then mac_random=`echo $(head -30 /dev/urandom | tr -dc "0123456789" | head -c2)` edge -f $args -a 169.254.0.1 -d $devname -c $community -k $key -m 12:${mac_random}${node_mac} -l ${supernode}:${port} ifconfig $devname 0.0.0.0 batctl if add $devname fi ;; supernode) config_get port "$cfg" port if [ "$port" != "" ]; then supernode -l $port & fi ;; esac } start() { config_load n2n } stop() { killall -9 edge killall supernode }