Add --stop and --list

This commit is contained in:
oblique
2014-12-11 22:13:00 +02:00
parent 48beb35b64
commit 1c89b44056

View File

@ -45,6 +45,10 @@ usage() {
echo " close create_ap, then use this option to switch your interface" echo " close create_ap, then use this option to switch your interface"
echo " back to managed" echo " back to managed"
echo " --mac <MAC> Set MAC address" echo " --mac <MAC> Set MAC address"
echo " --stop <id> Send stop command to an already running create_ap. For an <id>"
echo " you can put the PID of create_ap or the WiFi interface. You can"
echo " get them with --list"
echo " --list Show the create_ap processes that are already running"
echo echo
echo "Non-Bridging Options:" echo "Non-Bridging Options:"
echo " -g <gateway> IPv4 Gateway for the Access Point (default: 192.168.12.1)" echo " -g <gateway> IPv4 Gateway for the Access Point (default: 192.168.12.1)"
@ -67,6 +71,7 @@ usage() {
echo " $(basename $0) -m bridge wlan0 eth0 MyAccessPoint MyPassPhrase" echo " $(basename $0) -m bridge wlan0 eth0 MyAccessPoint MyPassPhrase"
echo " $(basename $0) -m bridge wlan0 br0 MyAccessPoint MyPassPhrase" echo " $(basename $0) -m bridge wlan0 br0 MyAccessPoint MyPassPhrase"
echo " $(basename $0) --driver rtl871xdrv wlan0 eth0 MyAccessPoint MyPassPhrase" echo " $(basename $0) --driver rtl871xdrv wlan0 eth0 MyAccessPoint MyPassPhrase"
echo " $(basename $0) --stop wlan0"
} }
# it takes 2 arguments # it takes 2 arguments
@ -407,6 +412,8 @@ FIX_UNMANAGED=0
COUNTRY= COUNTRY=
FREQ_BAND=2.4 FREQ_BAND=2.4
NEW_MACADDR= NEW_MACADDR=
LIST_RUNNING=0
STOP_ID=
CONFDIR= CONFDIR=
WIFI_IFACE= WIFI_IFACE=
@ -514,10 +521,38 @@ clean_exit() {
exit 0 exit 0
} }
list_running() {
for x in /tmp/create_ap.*; do
if [[ -f $x/pid ]]; then
PID=$(cat $x/pid)
if [[ -d /proc/$PID ]]; then
IFACE=${x#*.}
IFACE=${IFACE%%.*}
echo $PID $IFACE
fi
fi
done
}
is_running_pid() {
list_running | grep -E "^${1} " > /dev/null 2>&1
}
send_stop() {
if is_running_pid $1; then
kill -INT $1
return
fi
for x in /tmp/create_ap.$1.conf.*; do
[[ -f $x/pid ]] && kill -INT $(cat $x/pid)
done
}
# if the user press ctrl+c then execute die() # if the user press ctrl+c then execute die()
trap "die" SIGINT trap "die" SIGINT
ARGS=$(getopt -o hc:w:g:dnm: -l "help","hidden","ieee80211n","ht_capab:","driver:","no-virt","fix-unmanaged","country:","freq-band:","mac:" -n $(basename $0) -- "$@") ARGS=$(getopt -o hc:w:g:dnm: -l "help","hidden","ieee80211n","ht_capab:","driver:","no-virt","fix-unmanaged","country:","freq-band:","mac:","stop:","list" -n $(basename $0) -- "$@")
[[ $? -ne 0 ]] && exit 1 [[ $? -ne 0 ]] && exit 1
eval set -- "$ARGS" eval set -- "$ARGS"
@ -596,6 +631,15 @@ while :; do
NEW_MACADDR="$1" NEW_MACADDR="$1"
shift shift
;; ;;
--stop)
shift
STOP_ID="$1"
shift
;;
--list)
shift
LIST_RUNNING=1
;;
--) --)
shift shift
break break
@ -603,7 +647,7 @@ while :; do
esac esac
done done
if [[ $# -lt 1 && $FIX_UNMANAGED -eq 0 ]]; then if [[ $# -lt 1 && $FIX_UNMANAGED -eq 0 && -z "$STOP_ID" && $LIST_RUNNING -eq 0 ]]; then
usage >&2 usage >&2
exit 1 exit 1
fi fi
@ -613,6 +657,16 @@ if [[ $(id -u) -ne 0 ]]; then
exit 1 exit 1
fi fi
if [[ -n "$STOP_ID" ]]; then
send_stop "$STOP_ID"
exit 0
fi
if [[ $LIST_RUNNING -eq 1 ]]; then
list_running
exit 0
fi
if [[ $FIX_UNMANAGED -eq 1 ]]; then if [[ $FIX_UNMANAGED -eq 1 ]]; then
networkmanager_fix_unmanaged networkmanager_fix_unmanaged
exit 0 exit 0