wpa_supplicant (1495B)
1 #!/bin/sh 2 3 svc=wpa_supplicant 4 svcbin=/sucks/bin/wpa_supplicant 5 wpa_cli=/sucks/bin/wpa_cli 6 7 [ -e "/bin/svc.d/default/${svc}" ] && . "/bin/svc.d/default/${svc}" 8 9 [ -n "${RUNDIR}" ] && mkdir -p "${RUNDIR}" 10 11 PIDLOOPDELAY=500000 12 PID=$(pgrep -f ${svcbin}) 13 case $1 in 14 -e) if [ -z "${PID}" ]; then 15 exit 2 16 fi;; 17 -s) $0 -e 18 case $? in 19 0) exit 1;; 20 2) 21 logger -it wpa_supplicant "Executing ${svcbin} ${PARAMS}" 22 ${svcbin} ${PARAMS} | logger -it wpa_supplicant 23 $0 -e 24 errno=$? 25 if [ -n "${RUNDIR}" ]; then 26 case $errno in 27 0) :> "${RUNDIR}/${SERVICE}.up";; 28 *) rm "${RUNDIR}/${SERVICE}.up" \ 29 2>/dev/null;; 30 esac 31 fi 32 # Run sdhcp when connected; not reliable in my testing 33 logger -it wpa_supplicant "Executing ${wpa_cli} -i ${IFACE} -a ${0%/*}/sdhcp" 34 ${wpa_cli} -i "${IFACE}" -a ${0%/*}/sdhcp | logger -it wpa_supplicant 35 ;; 36 *) exit $?;; 37 esac;; 38 -k) $0 -e 39 case $? in 40 2) exit 1;; 41 0) pkill -f "${svcbin}" >/dev/null 2>&1 42 pkill -f ${wpa_cli} -i "${IFACE}" >/dev/null 2>&1 43 if [ -n "$(pgrep -f "${svcbin}" 2>/dev/null)" ] 44 then 45 pkill -9 -f "${svcbin}" >/dev/null 2>&1 \ 46 || exit 2 47 fi 48 if [ -n "$(pgrep -f ${wpa_cli} -i "${IFACE}" \ 49 2>/dev/null)" ] 50 then 51 pkill -9 -f ${wpa_cli} -i "${IFACE}" \ 52 >/dev/null 2>&1 || exit 2 53 fi 54 rm "${PIDFILE}" 55 if [ -n "${RUNDIR}" ]; then 56 rm "${RUNDIR}/${SERVICE}.up" 57 fi;; 58 *) exit $?;; 59 esac;; 60 -r) $0 -k 61 $0 -s;; 62 *) exit 2;; 63 esac