]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/commitdiff
Fixed hostapd bug
authorManiacikarus <maniacikarus@ipfire.org>
Mon, 8 Dec 2008 19:58:31 +0000 (20:58 +0100)
committerManiacikarus <maniacikarus@ipfire.org>
Mon, 8 Dec 2008 19:58:31 +0000 (20:58 +0100)
config/backup/includes/hostapd
html/cgi-bin/wlanap.cgi
lfs/hostapd
src/initscripts/init.d/hostapd
src/paks/hostapd/update.sh

index ea326f24988562eb9ab9e3675223bb5211f337ff..0e9b9fb7d038d23d563a1bd4c63a5a07e2cd50f5 100644 (file)
@@ -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
index 7a9c6fe06e81d0aa8e398b540e78cfe6bf901d7f..3a57e160f1c88047b43b9aad094eac2cb6485d39 100644 (file)
@@ -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/ ){
 <td width='25%' class='base'>Mac Filter:&nbsp;</td><td class='base' width='25%'>
        <select name='MACMODE'>
                <option value='0' $selected{'MACMODE'}{'0'}>0 (off)</option>
-               <option value='1' $selected{'MACMODE'}{'1'}>1 (Deny list)</option>
-               <option value='2' $selected{'MACMODE'}{'2'}>2 (Accept list)</option>
+               <option value='1' $selected{'MACMODE'}{'1'}>1 (Accept MACs)</option>
+               <option value='2' $selected{'MACMODE'}{'2'}>2 (Deny MACs)</option>
        </select>
-</td><td colspan='2'></td></tr>
-<tr>
-       <td colspan='2' class='base'>Mac Accept List (one per line)</td>
-       <td colspan='2' class='base'>Mac Deny List (one per line)</td>
-</tr>
-<tr>
-       <td colspan='2'><textarea name='ACCEPT_MACS' cols='32' rows='3' wrap='off'>
+</td><td colspan='2'>Mac Adress List (one per line)<br /><textarea name='MACS' cols='20' rows='5' wrap='off'>
 END
 ;
-       print `cat /var/ipfire/wlanap/hostapd.accept`;
+       print `cat /var/ipfire/wlanap/macfile`;
 print <<END
 </textarea></td>
-       <td colspan='2'><textarea name='DENY_MACS' cols='32' rows='3' wrap='off'>
-END
-;
-       print `cat /var/ipfire/wlanap/hostapd.deny`;
-       print <<END
-</textarea></td>
-</tr>
 </table>
 END
 ;
@@ -440,25 +426,13 @@ wpa_pairwise=CCMP TKIP
 END
 ;
  }
-       print CONFIGFILE <<END
-########################### mac acl configuration ##############################
-macaddr_acl=$wlanapsettings{'MACMODE'}
-accept_mac_file=/etc/hostapd.accept
-deny_mac_file=/etc/hostapd.deny
-END
-;
        close CONFIGFILE;
 
-       open (MACFILE, ">/var/ipfire/wlanap/hostapd.accept");
-       print MACFILE <<END
-$wlanapsettings{'ACCEPT_MACS'}
-END
-;
-       close MACFILE;
-
-       open (MACFILE, ">/var/ipfire/wlanap/hostapd.deny");
+$wlanapsettings{'MACS'} =~ s/\r//gi;
+chomp($wlanapsettings{'MACS'});
+       open (MACFILE, ">/var/ipfire/wlanap/macfile");
        print MACFILE <<END
-$wlanapsettings{'DENY_MACS'}
+$wlanapsettings{'MACS'}
 END
 ;
        close MACFILE;
index 59b0f8ca2f302b0cdc32db3e8ee9dee2d359aa4c..cd0f1a3487b42bcfdf36fa09f89b554480fe7119 100644 (file)
@@ -32,7 +32,7 @@ DL_FROM    = $(URL_IPFIRE)
 DIR_APP    = $(DIR_SRC)/$(THISAPP)
 TARGET     = $(DIR_INFO)/$(THISAPP)
 PROG       = hostapd
-PAK_VER    = 7
+PAK_VER    = 8
 
 DEPS       = ""
 
index bb0da480b66261ef21d12ffad47c3a1e81486ae0..8200c2d353a32373b26772b020a3f3797cb50e74 100644 (file)
@@ -8,59 +8,71 @@ INTERFACE="blue0"
 eval $(/usr/local/bin/readhash /var/ipfire/wlanap/settings)
 
 case "${1}" in
-        start)
+       start)
                mkdir -p /var/run/hostapd
                if [ "$(/usr/sbin/iwconfig $INTERFACE | /bin/grep "Mode:Master")" == "" ]; then
 
-                   boot_mesg "Setting wlan $INTERFACE to Master mode... "
+               boot_mesg "Setting wlan $INTERFACE to Master mode... "
 
-                   # Set Atheros Cards to master mode
-                   if [ -d /proc/net/madwifi/ath0/ ]; then
+               # Set Atheros Cards to master mode
+               if [ -d /proc/net/madwifi/ath0/ ]; then
                        /usr/bin/wlanconfig ath0 destroy > /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 >/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 >/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
index 108cfa1f37f8c0ad67aaed1eb3e37551db1c09a6..f81b0411681889901792eb33529290f452ea1d95 100644 (file)
@@ -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