1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #!/bin/sh
- DIR="$( cd "$( dirname "$0" )" && pwd )"
- WPAS=$DIR/../../wpa_supplicant/wpa_supplicant
- WPACLI=$DIR/../../wpa_supplicant/wpa_cli
- HAPD=$DIR/../../hostapd/hostapd
- WLANTEST=$DIR/../../wlantest/wlantest
- HLR_AUC_GW=$DIR/../../hostapd/hlr_auc_gw
- if [ -z "$LOGDIR" ] ; then
- DATE="$(date +%s)"
- LOGDIR="$DIR/logs/$DATE"
- mkdir -p $LOGDIR
- rm -rf $DIR/logs/current
- ln -sf $DATE $DIR/logs/current
- fi
- if groups | tr ' ' "\n" | grep -q ^admin$; then
- GROUP=admin
- else
- GROUP=adm
- fi
- for i in 0 1 2; do
- sed "s/ GROUP=.*$/ GROUP=$GROUP/" "$DIR/p2p$i.conf" > "$LOGDIR/p2p$i.conf"
- done
- if [ "$1" = "valgrind" ]; then
- VALGRIND=y
- VALGRIND_WPAS="valgrind --log-file=$LOGDIR/valgrind-wlan%d"
- VALGRIND_HAPD="valgrind --log-file=$LOGDIR/valgrind-hostapd"
- chmod -f a+rx $WPAS
- chmod -f a+rx $HAPD
- shift
- else
- unset VALGRIND
- VALGRIND_WPAS=
- VALGRIND_HAPD=
- fi
- if [ "$1" = "trace" ]; then
- TRACE="T"
- shift
- else
- TRACE=""
- fi
- $DIR/stop.sh
- test -f /proc/modules && sudo modprobe mac80211_hwsim radios=5
- sudo ifconfig hwsim0 up
- sudo $WLANTEST -i hwsim0 -n $LOGDIR/hwsim0.pcapng -c -dt -L $LOGDIR/hwsim0 &
- for i in 0 1 2; do
- sudo $(printf -- "$VALGRIND_WPAS" $i) $WPAS -g /tmp/wpas-wlan$i -G$GROUP -Dnl80211 -iwlan$i -c $LOGDIR/p2p$i.conf \
- -ddKt$TRACE -f $LOGDIR/log$i &
- done
- sudo $VALGRIND_HAPD $HAPD -ddKt$TRACE -g /var/run/hostapd-global -G $GROUP -ddKt -f $LOGDIR/hostapd &
- sleep 1
- sudo chown -f $USER $LOGDIR/hwsim0.pcapng $LOGDIR/hwsim0 $LOGDIR/log* $LOGDIR/hostapd
- if [ "x$VALGRIND" = "xy" ]; then
- sudo chown -f $USER $LOGDIR/*valgrind*
- fi
- if [ -x $HLR_AUC_GW ]; then
- $HLR_AUC_GW -m $DIR/auth_serv/hlr_auc_gw.milenage_db > $LOGDIR/hlr_auc_gw &
- fi
- $HAPD -ddKt $DIR/auth_serv/as.conf > $LOGDIR/auth_serv &
- # wait for programs to be fully initialized
- for i in 0 1 2; do
- for j in `seq 1 10`; do
- if $WPACLI -g /tmp/wpas-wlan$i ping | grep -q PONG; then
- break
- fi
- if [ $j = "10" ]; then
- echo "Could not connect to /tmp/wpas-wlan$i"
- exit 1
- fi
- sleep 1
- done
- done
- for j in `seq 1 10`; do
- if $WPACLI -g /var/run/hostapd-global ping | grep -q PONG; then
- break
- fi
- if [ $j = "10" ]; then
- echo "Could not connect to /var/run/hostapd-global"
- exit 1
- fi
- sleep 1
- done
- exit 0
|