From 8aa49c1548d9661a86f3e9cced694f0ccbdf6d11 Mon Sep 17 00:00:00 2001 From: Maniacikarus Date: Mon, 8 Dec 2008 20:58:31 +0100 Subject: [PATCH] Fixed hostapd bug --- config/backup/includes/hostapd | 3 +- html/cgi-bin/wlanap.cgi | 68 +++++++++------------------ lfs/hostapd | 2 +- src/initscripts/init.d/hostapd | 86 +++++++++++++++++++--------------- src/paks/hostapd/update.sh | 2 - 5 files changed, 72 insertions(+), 89 deletions(-) diff --git a/config/backup/includes/hostapd b/config/backup/includes/hostapd index ea326f2498..0e9b9fb7d0 100644 --- a/config/backup/includes/hostapd +++ b/config/backup/includes/hostapd @@ -1,5 +1,4 @@ /etc/hostapd.conf -/etc/hostapd.accept -/etc/hostapd.deny +/var/ipfire/wlanap/macfile /var/ipfire/wlanap/settings /var/ipfire/wlanap/hostapd.conf diff --git a/html/cgi-bin/wlanap.cgi b/html/cgi-bin/wlanap.cgi index 7a9c6fe06e..3a57e160f1 100644 --- a/html/cgi-bin/wlanap.cgi +++ b/html/cgi-bin/wlanap.cgi @@ -25,8 +25,8 @@ use strict; # enable only the following on debugging purpose -use warnings; -use CGI::Carp 'fatalsToBrowser'; +#use warnings; +#use CGI::Carp 'fatalsToBrowser'; require '/var/ipfire/general-functions.pl'; require '/var/ipfire/lang.pl'; @@ -88,18 +88,17 @@ $cgiparams{'DEBUG'} = '4'; &Header::showhttpheaders(); if ( $cgiparams{'ACTION'} eq "$Lang::tr{'save'}" ){ - $wlanapsettings{'SSID'} = $cgiparams{'SSID'}; - $wlanapsettings{'MACMODE'} = $cgiparams{'MACMODE'}; - $wlanapsettings{'ACCEPT_MACS'}= $cgiparams{'ACCEPT_MACS'}; - $wlanapsettings{'DENY_MACS'} = $cgiparams{'DENY_MACS'}; - $wlanapsettings{'HIDESSID'} = $cgiparams{'HIDESSID'}; - $wlanapsettings{'ENC'} = $cgiparams{'ENC'}; - $wlanapsettings{'CHANNEL'} = $cgiparams{'CHANNEL'}; - $wlanapsettings{'TXPOWER'} = $cgiparams{'TXPOWER'}; - - $wlanapsettings{'PWD'} = $cgiparams{'PWD'}; - $wlanapsettings{'SYSLOGLEVEL'}= $cgiparams{'SYSLOGLEVEL'}; - $wlanapsettings{'DEBUG'} = $cgiparams{'DEBUG'}; + $wlanapsettings{'SSID'} = $cgiparams{'SSID'}; + $wlanapsettings{'MACMODE'} = $cgiparams{'MACMODE'}; + $wlanapsettings{'MACS'} = $cgiparams{'MACS'}; + $wlanapsettings{'HIDESSID'} = $cgiparams{'HIDESSID'}; + $wlanapsettings{'ENC'} = $cgiparams{'ENC'}; + $wlanapsettings{'CHANNEL'} = $cgiparams{'CHANNEL'}; + $wlanapsettings{'TXPOWER'} = $cgiparams{'TXPOWER'}; + + $wlanapsettings{'PWD'} = $cgiparams{'PWD'}; + $wlanapsettings{'SYSLOGLEVEL'} = $cgiparams{'SYSLOGLEVEL'}; + $wlanapsettings{'DEBUG'} = $cgiparams{'DEBUG'}; # verify WPA Passphrase, must be 8 .. 63 characters if ( (length($wlanapsettings{'PWD'}) < 8) || (length($wlanapsettings{'PWD'}) > 63) ){ @@ -330,28 +329,15 @@ if ( $wlanapsettings{'INTERFACE'} =~ /green0/ ){ Mac Filter:  - - - Mac Accept List (one per line) - Mac Deny List (one per line) - - - - - END ; @@ -440,25 +426,13 @@ wpa_pairwise=CCMP TKIP END ; } - print CONFIGFILE </var/ipfire/wlanap/hostapd.accept"); - print MACFILE </var/ipfire/wlanap/hostapd.deny"); +$wlanapsettings{'MACS'} =~ s/\r//gi; +chomp($wlanapsettings{'MACS'}); + open (MACFILE, ">/var/ipfire/wlanap/macfile"); print MACFILE < /dev/null - fi + fi - /usr/bin/wlanconfig $INTERFACE destroy > /dev/null - /usr/bin/wlanconfig $INTERFACE create wlandev wifi0 wlanmode ap > /dev/null + /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 + # 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; + 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 + # 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 2>&1 & + evaluate_retval + fi + + iwpriv $INTERFACE maccmd 3 + if [ $MACMODE != 0 ]; then + FILE="/var/ipfire/wlanap/macfile" + exec < $FILE + while read LINE + do + iwpriv $INTERFACE addmac $LINE + done - 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 2>&1 & - evaluate_retval + iwpriv $INTERFACE maccmd $MACMODE fi -;; + ;; - stop) + stop) boot_mesg "Stopping hostapd..." - killproc /usr/bin/hostapd - evaluate_retval - ;; + killproc /usr/bin/hostapd + evaluate_retval + ;; - restart) - ${0} stop - sleep 1 - ${0} start - ;; + restart) + ${0} stop + sleep 1 + ${0} start + ;; - status) - statusproc /usr/bin/hostapd - ;; + status) + statusproc /usr/bin/hostapd + ;; - *) - echo "Usage: ${0} {start|stop|restart|status}" - exit 1 - ;; + *) + echo "Usage: ${0} {start|stop|restart|status}" + exit 1 + ;; esac diff --git a/src/paks/hostapd/update.sh b/src/paks/hostapd/update.sh index 108cfa1f37..f81b041168 100644 --- a/src/paks/hostapd/update.sh +++ b/src/paks/hostapd/update.sh @@ -22,7 +22,5 @@ ############################################################################ # . /opt/pakfire/lib/functions.sh -echo "/etc/hostapd.accept" >> /var/ipfire/backup/addons/includes/hostapd -echo "/etc/hostapd.deny" >> /var/ipfire/backup/addons/includes/hostapd ./uninstall.sh ./install.sh -- 2.39.5