#!/bin/sh
. /etc/sysconfig/rc
. ${rc_functions}

CHANNEL="05"
TXPOWER="auto"
INTERFACE="blue0"
eval $(/usr/local/bin/readhash /var/ipfire/wlanap/settings)

case "${1}" in
        start)
		mkdir -p /var/run/hostapd
		if [ "$(/usr/sbin/iwconfig $INTERFACE | /bin/grep "Mode:Master")" == "" ]; then

		    boot_mesg "Setting wlan $INTERFACE to Master mode... "

		    # Set Atheros Cards to master mode
		    if [ -d /proc/net/madwifi/ath0/ ]; then
			/usr/bin/wlanconfig ath0 destroy > /dev/null
		    fi

		    /usr/bin/wlanconfig $INTERFACE destroy > /dev/null
            	    /usr/bin/wlanconfig $INTERFACE create wlandev wifi0 wlanmode ap > /dev/null

		    # Set other cards to master mode
		    #/usr/sbin/iwconfig blue0 mode master
		fi
		
		if [ "$(/usr/sbin/iwconfig $INTERFACE | /bin/grep "Mode:Master")" == "" ]; then
		    boot_mesg "Error! Can't set wlan master mode"
		    echo_failure;
		    exit 1;
		else
		    # enable wlan module of collectd
		    sed -i -e "s|#LoadPlugin wireless|LoadPlugin wireless|g" /etc/collectd.conf

		    boot_mesg "Starting hostapd... "
		    /usr/sbin/iwconfig $INTERFACE channel $CHANNEL
		    /usr/sbin/iwconfig $INTERFACE txpower $TXPOWER
		    /usr/bin/hostapd -P /var/run/hostapd /etc/hostapd.conf </dev/tty12 >/dev/tty12 2>&1 &
		    evaluate_retval
		fi
;;

        stop)
		boot_mesg "Stopping hostapd..."

                killproc /usr/bin/hostapd
                evaluate_retval
                ;;

        restart)
                ${0} stop
                sleep 1
                ${0} start
                ;;

        status)
                statusproc /usr/bin/hostapd
                ;;

        *)
                echo "Usage: ${0} {start|stop|restart|status}"
                exit 1
                ;;
esac
