chilli.init (2066B)
1 #!/bin/sh /etc/rc.common 2 3 START=30 4 STOP=90 5 6 config_cb() { 7 chilli_inst=$2 8 if [ "$chilli_inst" != "" ] 9 then 10 rm -f /var/run/chilli_${chilli_inst}.* 11 chilli_conf=/var/run/chilli_${chilli_inst}.conf 12 eval "start_chilli_$chilli_inst=1" 13 fi 14 } 15 16 option_cb() { 17 case "$1" in 18 # UCI settings 19 network) 20 . /lib/functions/network.sh 21 local ifname 22 network_get_device ifname $2 23 echo "dhcpif=\"$ifname\"" >> $chilli_conf 24 ;; 25 disabled) 26 eval "start_chilli_$chilli_inst=0" 27 ;; 28 # boolean settings 29 dhcpbroadcast|nodynip|vlanlocation|locationstopstart|locationcopycalled|locationimmediateupdate|locationopt82|coanoipcheck|noradallow|proxymacaccept|proxyonacct|dhcpmacset|dhcpradius|noc2c|eapolenable|uamanydns|uamanyip|uamnatanyip|nouamsuccess|nowispr1|nowispr2|domaindnslocal|radsec|macauth|macreauth|macauthdeny|macallowlocal|strictmacauth|strictdhcp|ieee8021q|only8021q|radiusoriginalurl|swapoctets|statusfilesave|wpaguests|openidauth|papalwaysok|mschapv2|chillixml|acctupdate|dnsparanoia|seskeepalive|usetap|noarpentries|framedservice|scalewin|redir|injectwispr|redirurl|routeonetone|nousergardendata|uamgardendata|uamotherdata|withunixipc|uamallowpost|redirssl|uamuissl|layer3|patricia|redirdnsreq|dhcpnotidle|ipv6|ipv6only) 30 [ "$2" = "true" -o "$2" = "1" ] && echo "$1" >> $chilli_conf 31 ;; 32 *) 33 echo "$1=\"$2\"" >> $chilli_conf 34 ;; 35 esac 36 } 37 38 start_chilli() { 39 local cfg="$1" 40 local start_chilli=$(eval "echo \$start_chilli_$cfg") 41 [ "$start_chilli" = "0" ] && return 42 local base=/var/run/chilli_${cfg} 43 chilli -c ${base}.conf \ 44 --pidfile ${base}.pid \ 45 --cmdsocket ${base}.sock \ 46 --unixipc ${base}.ipc & 47 } 48 49 start() { 50 config_load chilli 51 config_foreach start_chilli chilli 52 } 53 54 stop() { 55 ls /var/run/chilli*.pid 2>/dev/null && { 56 kill $(cat /var/run/chilli*.pid) 57 sleep 1 58 killall -9 chilli 59 rm -f /var/run/chilli* 60 } 61 }