]> git.ipfire.org Git - ipfire-2.x.git/commitdiff
wlanap.cgi: Refactor the entire thing
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 16 Aug 2024 15:10:29 +0000 (15:10 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 16 Aug 2024 15:10:29 +0000 (15:10 +0000)
This went really bad with the latest CSS changes. So this is a
refactor/rewrite of the CGI without many modifications.

Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
14 files changed:
config/menu/EX-wlanap.menu
doc/language_issues.de
doc/language_issues.en
doc/language_issues.es
doc/language_issues.fr
doc/language_issues.it
doc/language_issues.nl
doc/language_issues.pl
doc/language_issues.ru
doc/language_issues.tr
doc/language_missings
html/cgi-bin/wlanap.cgi
html/html/themes/ipfire/include/css/style.css
langs/en/cgi-bin/en.pl

index 95b6530528ad0f517bf18018a207378e5b801bff..2e06d8586a381acf0c0bb2d985e2aea92b5d6e29 100644 (file)
@@ -1,5 +1,5 @@
-    $subipfire->{'54.wlanap'} = {'caption' => WLanAP,
+    $subipfire->{'54.wlanap'} = {'caption' => $Lang::tr{'wlanap'},
                                  'uri' => '/cgi-bin/wlanap.cgi',
-                                 'title' => WLanAP,
+                                 'title' => $Lang::tr{'wlanap'},
                                  'enabled' => 1,
                                  };
index a10102a031f555663a1e8d5acd80106753c1cfee..bdedb13c570d3d62a7390d13ddc5667064ae128a 100644 (file)
@@ -480,6 +480,7 @@ WARNING: translation string unused: ls_pam_unix
 WARNING: translation string unused: ls_sshd
 WARNING: translation string unused: ls_syslogd
 WARNING: translation string unused: mac address error not 00
+WARNING: translation string unused: mac filter
 WARNING: translation string unused: mailmethod
 WARNING: translation string unused: mailprogramm
 WARNING: translation string unused: manage ovpn
@@ -866,9 +867,19 @@ WARNING: translation string unused: wildcards
 WARNING: translation string unused: wins server
 WARNING: translation string unused: wins support
 WARNING: translation string unused: wlan clients
+WARNING: translation string unused: wlanap debugging
+WARNING: translation string unused: wlanap del interface
+WARNING: translation string unused: wlanap informations
 WARNING: translation string unused: wlanap link dhcp
 WARNING: translation string unused: wlanap link wireless
+WARNING: translation string unused: wlanap no interface
+WARNING: translation string unused: wlanap notifications
+WARNING: translation string unused: wlanap select interface
+WARNING: translation string unused: wlanap verbose
+WARNING: translation string unused: wlanap warnings
+WARNING: translation string unused: wlanap wlan card
 WARNING: translation string unused: wlanap wlan services
+WARNING: translation string unused: wlanap wlan settings
 WARNING: translation string unused: xtaccess all error
 WARNING: translation string unused: xtaccess bad transfert
 WARNING: translation string unused: year-graph
@@ -1120,3 +1131,6 @@ WARNING: untranslated string: wlan client management frame protection = Manageme
 WARNING: untranslated string: wlanap 802.11w disabled = Disabled
 WARNING: untranslated string: wlanap 802.11w enforced = Enforced
 WARNING: untranslated string: wlanap 802.11w optional = Optional
+WARNING: untranslated string: wlanap clients = unknown string
+WARNING: untranslated string: wlanap psk = Pre-Shared Key
+WARNING: untranslated string: wlanap wireless mode = Wireless Mode
index 7ae1a19bbd28bf92db81c4c458181353e5ae2838..e196bd640067af2eb3e0b73d82136d0ee8791c24 100644 (file)
@@ -1267,7 +1267,6 @@ WARNING: untranslated string: mac address saved = Successfully saved!
 WARNING: untranslated string: mac address saved txt = The MAC address has been successfully saved, but changes will only take effect after reboot or reconnection.
 WARNING: untranslated string: mac address title = Assign MAC Address
 WARNING: untranslated string: mac desc = Here you are able to change the MAC address on red0. The address must be entered in hexadecimal (0-9,a-f), a valid entry is <br />e.g. 00-01-02-0e-b8-d6 or 00:01:02:0e:b8:d6.
-WARNING: untranslated string: mac filter = MAC filter
 WARNING: untranslated string: mac new = new MAC address:
 WARNING: untranslated string: mac1 new = new MAC address 1 (vdsl-inet):
 WARNING: untranslated string: mac2 new = new MAC address 2 (vdsl-iptv):
@@ -2342,7 +2341,7 @@ WARNING: untranslated string: wlan client wpa mode all = Auto
 WARNING: untranslated string: wlan client wpa mode ccmp ccmp = CCMP-CCMP
 WARNING: untranslated string: wlan client wpa mode ccmp tkip = CCMP-TKIP
 WARNING: untranslated string: wlan client wpa mode tkip tkip = TKIP-TKIP
-WARNING: untranslated string: wlanap = Access Point
+WARNING: untranslated string: wlanap = Wireless Access Point
 WARNING: untranslated string: wlanap 802.11w disabled = Disabled
 WARNING: untranslated string: wlanap 802.11w enforced = Enforced
 WARNING: untranslated string: wlanap 802.11w optional = Optional
@@ -2350,27 +2349,20 @@ WARNING: untranslated string: wlanap auto = Automatic Channel Selection
 WARNING: untranslated string: wlanap broadcast ssid = Broadcast SSID
 WARNING: untranslated string: wlanap channel = Channel
 WARNING: untranslated string: wlanap client isolation = Client Isolation
-WARNING: untranslated string: wlanap configuration = Access Point Configuration
+WARNING: untranslated string: wlanap clients = unknown string
+WARNING: untranslated string: wlanap configuration = Wireless Access Point Configuration
 WARNING: untranslated string: wlanap country = Country Code
-WARNING: untranslated string: wlanap debugging = Debugging
-WARNING: untranslated string: wlanap del interface = Remove selected interface?
 WARNING: untranslated string: wlanap encryption = Encryption
-WARNING: untranslated string: wlanap informations = Informations
-WARNING: untranslated string: wlanap interface = Select interface
-WARNING: untranslated string: wlanap invalid wpa = Invalid length in WPA Passphrase. Must be between 8 and 63 characters.
+WARNING: untranslated string: wlanap interface = Select Interface
+WARNING: untranslated string: wlanap invalid wpa = Invalid length in WPA passphrase. Must be between 8 and 63 characters.
 WARNING: untranslated string: wlanap management frame protection = Management Frame Protection (802.11w)
-WARNING: untranslated string: wlanap neighbor scan = Neighborhood scan
-WARNING: untranslated string: wlanap neighbor scan warning = Warning! Disabling may violate regulatory rules!
-WARNING: untranslated string: wlanap no interface = Selected interface is not a wirless lan card!
+WARNING: untranslated string: wlanap neighbor scan = Neighborhood Scan
+WARNING: untranslated string: wlanap neighbor scan warning = Warning: Disabling may violate regulatory rules
 WARNING: untranslated string: wlanap none = none
-WARNING: untranslated string: wlanap notifications = Notifications
-WARNING: untranslated string: wlanap select interface = Please select the wireless lan interface.
+WARNING: untranslated string: wlanap psk = Pre-Shared Key
 WARNING: untranslated string: wlanap ssid = SSID
-WARNING: untranslated string: wlanap verbose = Verbose
-WARNING: untranslated string: wlanap warnings = Warnings
-WARNING: untranslated string: wlanap wlan card = WLan Card
-WARNING: untranslated string: wlanap wlan settings = WLan Settings
-WARNING: untranslated string: wlanap wlan status = WLan Status
+WARNING: untranslated string: wlanap wireless mode = Wireless Mode
+WARNING: untranslated string: wlanap wlan status = WiFi Status
 WARNING: untranslated string: wol wakeup = WakeUp
 WARNING: untranslated string: workgroup = Workgroup
 WARNING: untranslated string: working = Working
index 259c3a9c3ee5f2d37c0c38ea152a0052fe596cbd..4ff53b1559f75be6e99a215a443f99ab5f67d69c 100644 (file)
@@ -528,6 +528,7 @@ WARNING: translation string unused: ls_pam_unix
 WARNING: translation string unused: ls_sshd
 WARNING: translation string unused: ls_syslogd
 WARNING: translation string unused: mac address error not 00
+WARNING: translation string unused: mac filter
 WARNING: translation string unused: mailmethod
 WARNING: translation string unused: mailprogramm
 WARNING: translation string unused: manage ovpn
@@ -937,9 +938,19 @@ WARNING: translation string unused: wins server
 WARNING: translation string unused: wins support
 WARNING: translation string unused: wlan clients
 WARNING: translation string unused: wlanap access point
+WARNING: translation string unused: wlanap debugging
+WARNING: translation string unused: wlanap del interface
+WARNING: translation string unused: wlanap informations
 WARNING: translation string unused: wlanap link dhcp
 WARNING: translation string unused: wlanap link wireless
+WARNING: translation string unused: wlanap no interface
+WARNING: translation string unused: wlanap notifications
+WARNING: translation string unused: wlanap select interface
+WARNING: translation string unused: wlanap verbose
+WARNING: translation string unused: wlanap warnings
+WARNING: translation string unused: wlanap wlan card
 WARNING: translation string unused: wlanap wlan services
+WARNING: translation string unused: wlanap wlan settings
 WARNING: translation string unused: xtaccess all error
 WARNING: translation string unused: xtaccess bad transfert
 WARNING: translation string unused: year-graph
@@ -1175,4 +1186,7 @@ WARNING: untranslated string: wio_webinterface = unknown string
 WARNING: untranslated string: wio_webinterface_link = unknown string
 WARNING: untranslated string: wireguard = WireGuard
 WARNING: untranslated string: wlan client configuration = Wireless Client Configuration
-WARNING: untranslated string: wlanap = Access Point
+WARNING: untranslated string: wlanap = Wireless Access Point
+WARNING: untranslated string: wlanap clients = unknown string
+WARNING: untranslated string: wlanap psk = Pre-Shared Key
+WARNING: untranslated string: wlanap wireless mode = Wireless Mode
index 41e39f18b5ae431bd36f36af19824564545a158c..c21cb0067952c0a283889465723fb00d25a45433 100644 (file)
@@ -508,6 +508,7 @@ WARNING: translation string unused: ls_pam_unix
 WARNING: translation string unused: ls_sshd
 WARNING: translation string unused: ls_syslogd
 WARNING: translation string unused: mac address error not 00
+WARNING: translation string unused: mac filter
 WARNING: translation string unused: mailmethod
 WARNING: translation string unused: mailprogramm
 WARNING: translation string unused: manage ovpn
@@ -906,9 +907,19 @@ WARNING: translation string unused: wildcards
 WARNING: translation string unused: wins server
 WARNING: translation string unused: wins support
 WARNING: translation string unused: wlan clients
+WARNING: translation string unused: wlanap debugging
+WARNING: translation string unused: wlanap del interface
+WARNING: translation string unused: wlanap informations
 WARNING: translation string unused: wlanap link dhcp
 WARNING: translation string unused: wlanap link wireless
+WARNING: translation string unused: wlanap no interface
+WARNING: translation string unused: wlanap notifications
+WARNING: translation string unused: wlanap select interface
+WARNING: translation string unused: wlanap verbose
+WARNING: translation string unused: wlanap warnings
+WARNING: translation string unused: wlanap wlan card
 WARNING: translation string unused: wlanap wlan services
+WARNING: translation string unused: wlanap wlan settings
 WARNING: translation string unused: xtaccess all error
 WARNING: translation string unused: xtaccess bad transfert
 WARNING: translation string unused: year-graph
@@ -1112,3 +1123,6 @@ WARNING: untranslated string: wio_wanname = unknown string
 WARNING: untranslated string: wio_webinterface = unknown string
 WARNING: untranslated string: wio_webinterface_link = unknown string
 WARNING: untranslated string: wireguard = WireGuard
+WARNING: untranslated string: wlanap clients = unknown string
+WARNING: untranslated string: wlanap psk = Pre-Shared Key
+WARNING: untranslated string: wlanap wireless mode = Wireless Mode
index f900bced12a78a9e6b3ced65e4d014e70690c9a4..9974b34f3127ccc15969b670c73fd57e4ed83c9e 100644 (file)
@@ -465,6 +465,7 @@ WARNING: translation string unused: ls_pam_unix
 WARNING: translation string unused: ls_sshd
 WARNING: translation string unused: ls_syslogd
 WARNING: translation string unused: mac address error not 00
+WARNING: translation string unused: mac filter
 WARNING: translation string unused: mailmethod
 WARNING: translation string unused: mailprogramm
 WARNING: translation string unused: manage ovpn
@@ -861,9 +862,19 @@ WARNING: translation string unused: wins server
 WARNING: translation string unused: wins support
 WARNING: translation string unused: wlan clients
 WARNING: translation string unused: wlanap access point
+WARNING: translation string unused: wlanap debugging
+WARNING: translation string unused: wlanap del interface
+WARNING: translation string unused: wlanap informations
 WARNING: translation string unused: wlanap link dhcp
 WARNING: translation string unused: wlanap link wireless
+WARNING: translation string unused: wlanap no interface
+WARNING: translation string unused: wlanap notifications
+WARNING: translation string unused: wlanap select interface
+WARNING: translation string unused: wlanap verbose
+WARNING: translation string unused: wlanap warnings
+WARNING: translation string unused: wlanap wlan card
 WARNING: translation string unused: wlanap wlan services
+WARNING: translation string unused: wlanap wlan settings
 WARNING: translation string unused: xtaccess all error
 WARNING: translation string unused: xtaccess bad transfert
 WARNING: translation string unused: year-graph
@@ -1481,18 +1492,21 @@ WARNING: untranslated string: wlan client method = Method
 WARNING: untranslated string: wlan client password = Password
 WARNING: untranslated string: wlan client tls cipher = TLS Cipher
 WARNING: untranslated string: wlan client tls version = TLS Version
-WARNING: untranslated string: wlanap = Access Point
+WARNING: untranslated string: wlanap = Wireless Access Point
 WARNING: untranslated string: wlanap 802.11w disabled = Disabled
 WARNING: untranslated string: wlanap 802.11w enforced = Enforced
 WARNING: untranslated string: wlanap 802.11w optional = Optional
 WARNING: untranslated string: wlanap auto = Automatic Channel Selection
 WARNING: untranslated string: wlanap broadcast ssid = Broadcast SSID
 WARNING: untranslated string: wlanap client isolation = Client Isolation
-WARNING: untranslated string: wlanap configuration = Access Point Configuration
+WARNING: untranslated string: wlanap clients = unknown string
+WARNING: untranslated string: wlanap configuration = Wireless Access Point Configuration
 WARNING: untranslated string: wlanap management frame protection = Management Frame Protection (802.11w)
-WARNING: untranslated string: wlanap neighbor scan = Neighborhood scan
-WARNING: untranslated string: wlanap neighbor scan warning = Warning! Disabling may violate regulatory rules!
+WARNING: untranslated string: wlanap neighbor scan = Neighborhood Scan
+WARNING: untranslated string: wlanap neighbor scan warning = Warning: Disabling may violate regulatory rules
+WARNING: untranslated string: wlanap psk = Pre-Shared Key
 WARNING: untranslated string: wlanap ssid = SSID
+WARNING: untranslated string: wlanap wireless mode = Wireless Mode
 WARNING: untranslated string: working = Working
 WARNING: untranslated string: zoneconf notice reboot = Please reboot to apply your changes.
 WARNING: untranslated string: zoneconf title = Zone Configuration
index dadcbaea2bf574ff095568bfd28736c0910fd216..452dd5b3350d137c4aec586c1f84d2c6a2414aa6 100644 (file)
@@ -467,6 +467,7 @@ WARNING: translation string unused: ls_pam_unix
 WARNING: translation string unused: ls_sshd
 WARNING: translation string unused: ls_syslogd
 WARNING: translation string unused: mac address error not 00
+WARNING: translation string unused: mac filter
 WARNING: translation string unused: mailmethod
 WARNING: translation string unused: mailprogramm
 WARNING: translation string unused: manage ovpn
@@ -862,9 +863,19 @@ WARNING: translation string unused: wins server
 WARNING: translation string unused: wins support
 WARNING: translation string unused: wlan clients
 WARNING: translation string unused: wlanap access point
+WARNING: translation string unused: wlanap debugging
+WARNING: translation string unused: wlanap del interface
+WARNING: translation string unused: wlanap informations
 WARNING: translation string unused: wlanap link dhcp
 WARNING: translation string unused: wlanap link wireless
+WARNING: translation string unused: wlanap no interface
+WARNING: translation string unused: wlanap notifications
+WARNING: translation string unused: wlanap select interface
+WARNING: translation string unused: wlanap verbose
+WARNING: translation string unused: wlanap warnings
+WARNING: translation string unused: wlanap wlan card
 WARNING: translation string unused: wlanap wlan services
+WARNING: translation string unused: wlanap wlan settings
 WARNING: translation string unused: xtaccess all error
 WARNING: translation string unused: xtaccess bad transfert
 WARNING: translation string unused: year-graph
@@ -1504,18 +1515,21 @@ WARNING: untranslated string: wlan client method = Method
 WARNING: untranslated string: wlan client password = Password
 WARNING: untranslated string: wlan client tls cipher = TLS Cipher
 WARNING: untranslated string: wlan client tls version = TLS Version
-WARNING: untranslated string: wlanap = Access Point
+WARNING: untranslated string: wlanap = Wireless Access Point
 WARNING: untranslated string: wlanap 802.11w disabled = Disabled
 WARNING: untranslated string: wlanap 802.11w enforced = Enforced
 WARNING: untranslated string: wlanap 802.11w optional = Optional
 WARNING: untranslated string: wlanap auto = Automatic Channel Selection
 WARNING: untranslated string: wlanap broadcast ssid = Broadcast SSID
 WARNING: untranslated string: wlanap client isolation = Client Isolation
-WARNING: untranslated string: wlanap configuration = Access Point Configuration
+WARNING: untranslated string: wlanap clients = unknown string
+WARNING: untranslated string: wlanap configuration = Wireless Access Point Configuration
 WARNING: untranslated string: wlanap management frame protection = Management Frame Protection (802.11w)
-WARNING: untranslated string: wlanap neighbor scan = Neighborhood scan
-WARNING: untranslated string: wlanap neighbor scan warning = Warning! Disabling may violate regulatory rules!
+WARNING: untranslated string: wlanap neighbor scan = Neighborhood Scan
+WARNING: untranslated string: wlanap neighbor scan warning = Warning: Disabling may violate regulatory rules
+WARNING: untranslated string: wlanap psk = Pre-Shared Key
 WARNING: untranslated string: wlanap ssid = SSID
+WARNING: untranslated string: wlanap wireless mode = Wireless Mode
 WARNING: untranslated string: working = Working
 WARNING: untranslated string: zoneconf notice reboot = Please reboot to apply your changes.
 WARNING: untranslated string: zoneconf title = Zone Configuration
index 2f8d0e50146f8706e227c5c5c56bbbcb6b9b26c9..8afc26cab390103dd1ee047411ec69bf78a336fb 100644 (file)
@@ -773,9 +773,19 @@ WARNING: translation string unused: wildcards
 WARNING: translation string unused: wins server
 WARNING: translation string unused: wins support
 WARNING: translation string unused: wlanap access point
+WARNING: translation string unused: wlanap debugging
+WARNING: translation string unused: wlanap del interface
+WARNING: translation string unused: wlanap informations
 WARNING: translation string unused: wlanap link dhcp
 WARNING: translation string unused: wlanap link wireless
+WARNING: translation string unused: wlanap no interface
+WARNING: translation string unused: wlanap notifications
+WARNING: translation string unused: wlanap select interface
+WARNING: translation string unused: wlanap verbose
+WARNING: translation string unused: wlanap warnings
+WARNING: translation string unused: wlanap wlan card
 WARNING: translation string unused: wlanap wlan services
+WARNING: translation string unused: wlanap wlan settings
 WARNING: translation string unused: xtaccess all error
 WARNING: translation string unused: xtaccess bad transfert
 WARNING: translation string unused: year-graph
@@ -1344,7 +1354,6 @@ WARNING: untranslated string: log drop hostile in = Log dropped packets FROM hos
 WARNING: untranslated string: log drop hostile out = Log dropped packets TO hostile networks
 WARNING: untranslated string: log dropped conntrack invalids = Log dropped packets classified as INVALID by connection tracking
 WARNING: untranslated string: log server protocol = protocol:
-WARNING: untranslated string: mac filter = MAC filter
 WARNING: untranslated string: masquerade blue = Masquerade BLUE
 WARNING: untranslated string: masquerade green = Masquerade GREEN
 WARNING: untranslated string: masquerade orange = Masquerade ORANGE
@@ -1776,19 +1785,22 @@ WARNING: untranslated string: wlan client wpa mode all = Auto
 WARNING: untranslated string: wlan client wpa mode ccmp ccmp = CCMP-CCMP
 WARNING: untranslated string: wlan client wpa mode ccmp tkip = CCMP-TKIP
 WARNING: untranslated string: wlan client wpa mode tkip tkip = TKIP-TKIP
-WARNING: untranslated string: wlanap = Access Point
+WARNING: untranslated string: wlanap = Wireless Access Point
 WARNING: untranslated string: wlanap 802.11w disabled = Disabled
 WARNING: untranslated string: wlanap 802.11w enforced = Enforced
 WARNING: untranslated string: wlanap 802.11w optional = Optional
 WARNING: untranslated string: wlanap auto = Automatic Channel Selection
 WARNING: untranslated string: wlanap broadcast ssid = Broadcast SSID
 WARNING: untranslated string: wlanap client isolation = Client Isolation
-WARNING: untranslated string: wlanap configuration = Access Point Configuration
+WARNING: untranslated string: wlanap clients = unknown string
+WARNING: untranslated string: wlanap configuration = Wireless Access Point Configuration
 WARNING: untranslated string: wlanap country = Country Code
 WARNING: untranslated string: wlanap management frame protection = Management Frame Protection (802.11w)
-WARNING: untranslated string: wlanap neighbor scan = Neighborhood scan
-WARNING: untranslated string: wlanap neighbor scan warning = Warning! Disabling may violate regulatory rules!
+WARNING: untranslated string: wlanap neighbor scan = Neighborhood Scan
+WARNING: untranslated string: wlanap neighbor scan warning = Warning: Disabling may violate regulatory rules
+WARNING: untranslated string: wlanap psk = Pre-Shared Key
 WARNING: untranslated string: wlanap ssid = SSID
+WARNING: untranslated string: wlanap wireless mode = Wireless Mode
 WARNING: untranslated string: working = Working
 WARNING: untranslated string: zoneconf notice reboot = Please reboot to apply your changes.
 WARNING: untranslated string: zoneconf title = Zone Configuration
index e57d2199cf2bc15c8860bc9a49226ca008497890..3719cd63a7471e90df376c32c3164a577bef62d4 100644 (file)
@@ -767,9 +767,19 @@ WARNING: translation string unused: wildcards
 WARNING: translation string unused: wins server
 WARNING: translation string unused: wins support
 WARNING: translation string unused: wlanap access point
+WARNING: translation string unused: wlanap debugging
+WARNING: translation string unused: wlanap del interface
+WARNING: translation string unused: wlanap informations
 WARNING: translation string unused: wlanap link dhcp
 WARNING: translation string unused: wlanap link wireless
+WARNING: translation string unused: wlanap no interface
+WARNING: translation string unused: wlanap notifications
+WARNING: translation string unused: wlanap select interface
+WARNING: translation string unused: wlanap verbose
+WARNING: translation string unused: wlanap warnings
+WARNING: translation string unused: wlanap wlan card
 WARNING: translation string unused: wlanap wlan services
+WARNING: translation string unused: wlanap wlan settings
 WARNING: translation string unused: xtaccess all error
 WARNING: translation string unused: xtaccess bad transfert
 WARNING: translation string unused: yearly firewallhits
@@ -1340,7 +1350,6 @@ WARNING: untranslated string: log drop hostile in = Log dropped packets FROM hos
 WARNING: untranslated string: log drop hostile out = Log dropped packets TO hostile networks
 WARNING: untranslated string: log dropped conntrack invalids = Log dropped packets classified as INVALID by connection tracking
 WARNING: untranslated string: log server protocol = protocol:
-WARNING: untranslated string: mac filter = MAC filter
 WARNING: untranslated string: masquerade blue = Masquerade BLUE
 WARNING: untranslated string: masquerade green = Masquerade GREEN
 WARNING: untranslated string: masquerade orange = Masquerade ORANGE
@@ -1769,19 +1778,22 @@ WARNING: untranslated string: wlan client wpa mode all = Auto
 WARNING: untranslated string: wlan client wpa mode ccmp ccmp = CCMP-CCMP
 WARNING: untranslated string: wlan client wpa mode ccmp tkip = CCMP-TKIP
 WARNING: untranslated string: wlan client wpa mode tkip tkip = TKIP-TKIP
-WARNING: untranslated string: wlanap = Access Point
+WARNING: untranslated string: wlanap = Wireless Access Point
 WARNING: untranslated string: wlanap 802.11w disabled = Disabled
 WARNING: untranslated string: wlanap 802.11w enforced = Enforced
 WARNING: untranslated string: wlanap 802.11w optional = Optional
 WARNING: untranslated string: wlanap auto = Automatic Channel Selection
 WARNING: untranslated string: wlanap broadcast ssid = Broadcast SSID
 WARNING: untranslated string: wlanap client isolation = Client Isolation
-WARNING: untranslated string: wlanap configuration = Access Point Configuration
+WARNING: untranslated string: wlanap clients = unknown string
+WARNING: untranslated string: wlanap configuration = Wireless Access Point Configuration
 WARNING: untranslated string: wlanap country = Country Code
 WARNING: untranslated string: wlanap management frame protection = Management Frame Protection (802.11w)
-WARNING: untranslated string: wlanap neighbor scan = Neighborhood scan
-WARNING: untranslated string: wlanap neighbor scan warning = Warning! Disabling may violate regulatory rules!
+WARNING: untranslated string: wlanap neighbor scan = Neighborhood Scan
+WARNING: untranslated string: wlanap neighbor scan warning = Warning: Disabling may violate regulatory rules
+WARNING: untranslated string: wlanap psk = Pre-Shared Key
 WARNING: untranslated string: wlanap ssid = SSID
+WARNING: untranslated string: wlanap wireless mode = Wireless Mode
 WARNING: untranslated string: working = Working
 WARNING: untranslated string: zoneconf notice reboot = Please reboot to apply your changes.
 WARNING: untranslated string: zoneconf title = Zone Configuration
index b5197e10888b4f46322b21a61ea8a7791c4b45ad..5d5c13cf8858051025db58db418c913163313806 100644 (file)
@@ -494,6 +494,7 @@ WARNING: translation string unused: ls_pam_unix
 WARNING: translation string unused: ls_sshd
 WARNING: translation string unused: ls_syslogd
 WARNING: translation string unused: mac address error not 00
+WARNING: translation string unused: mac filter
 WARNING: translation string unused: mailmethod
 WARNING: translation string unused: mailprogramm
 WARNING: translation string unused: manage ovpn
@@ -890,9 +891,19 @@ WARNING: translation string unused: wildcards
 WARNING: translation string unused: wins server
 WARNING: translation string unused: wins support
 WARNING: translation string unused: wlan clients
+WARNING: translation string unused: wlanap debugging
+WARNING: translation string unused: wlanap del interface
+WARNING: translation string unused: wlanap informations
 WARNING: translation string unused: wlanap link dhcp
 WARNING: translation string unused: wlanap link wireless
+WARNING: translation string unused: wlanap no interface
+WARNING: translation string unused: wlanap notifications
+WARNING: translation string unused: wlanap select interface
+WARNING: translation string unused: wlanap verbose
+WARNING: translation string unused: wlanap warnings
+WARNING: translation string unused: wlanap wlan card
 WARNING: translation string unused: wlanap wlan services
+WARNING: translation string unused: wlanap wlan settings
 WARNING: translation string unused: xtaccess all error
 WARNING: translation string unused: xtaccess bad transfert
 WARNING: translation string unused: year-graph
@@ -1356,10 +1367,13 @@ WARNING: untranslated string: wlanap 802.11w optional = Optional
 WARNING: untranslated string: wlanap auto = Automatic Channel Selection
 WARNING: untranslated string: wlanap broadcast ssid = Broadcast SSID
 WARNING: untranslated string: wlanap client isolation = Client Isolation
+WARNING: untranslated string: wlanap clients = unknown string
 WARNING: untranslated string: wlanap management frame protection = Management Frame Protection (802.11w)
-WARNING: untranslated string: wlanap neighbor scan = Neighborhood scan
-WARNING: untranslated string: wlanap neighbor scan warning = Warning! Disabling may violate regulatory rules!
+WARNING: untranslated string: wlanap neighbor scan = Neighborhood Scan
+WARNING: untranslated string: wlanap neighbor scan warning = Warning: Disabling may violate regulatory rules
+WARNING: untranslated string: wlanap psk = Pre-Shared Key
 WARNING: untranslated string: wlanap ssid = SSID
+WARNING: untranslated string: wlanap wireless mode = Wireless Mode
 WARNING: untranslated string: working = Working
 WARNING: untranslated string: zoneconf notice reboot = Please reboot to apply your changes.
 WARNING: untranslated string: zoneconf title = Zone Configuration
index ef5c58ff167f96a7fb25ff9a14b62c82885ef51b..de2217c601ab7b8114841610315d179811e285cf 100644 (file)
 < wlanap 802.11w disabled
 < wlanap 802.11w enforced
 < wlanap 802.11w optional
+< wlanap psk
+< wlanap wireless mode
+< wlanap wlan clients
 < wlan client encryption wpa3
 < wlan client management frame protection
 ############################################################################
 < transport mode does not support vti
 < wireguard
 < wlanap
+< wlanap psk
+< wlanap wireless mode
+< wlanap wlan clients
 < wlan client configuration
 ############################################################################
 # Checking cgi-bin translations for language: fr                           #
 < timeformat
 < upload fcdsl.o
 < wireguard
+< wlanap psk
+< wlanap wireless mode
+< wlanap wlan clients
 ############################################################################
 # Checking cgi-bin translations for language: it                           #
 ############################################################################
 < wlanap management frame protection
 < wlanap neighbor scan
 < wlanap neighbor scan warning
+< wlanap psk
 < wlanap ssid
+< wlanap wireless mode
+< wlanap wlan clients
 < wlan client anonymous identity
 < wlan client auth auto
 < wlan client authentication settings
 < wlanap management frame protection
 < wlanap neighbor scan
 < wlanap neighbor scan warning
+< wlanap psk
 < wlanap ssid
+< wlanap wireless mode
+< wlanap wlan clients
 < wlan client anonymous identity
 < wlan client auth auto
 < wlan client authentication settings
 < wlanap management frame protection
 < wlanap neighbor scan
 < wlanap neighbor scan warning
+< wlanap psk
 < wlanap ssid
+< wlanap wireless mode
+< wlanap wlan clients
 < wlan client
 < wlan client advanced settings
 < wlan client and
 < wlanap management frame protection
 < wlanap neighbor scan
 < wlanap neighbor scan warning
+< wlanap psk
 < wlanap ssid
+< wlanap wireless mode
+< wlanap wlan clients
 < wlan client
 < wlan client advanced settings
 < wlan client and
 < wlanap management frame protection
 < wlanap neighbor scan
 < wlanap neighbor scan warning
+< wlanap psk
 < wlanap ssid
+< wlanap wireless mode
+< wlanap wlan clients
 < wlan client encryption wpa3
 < wlan client management frame protection
 < working
index c2a5605fca1d32d0518cea384cd0988fbea00e29..d5f5f09eea6f4d9fc205e10e1cd62fdabbc9bced 100644 (file)
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.       #
 #                                                                             #
 ###############################################################################
-#
-# WLAN AP cgi based on wlanap.cgi written by Markus Hoffmann & Olaf Westrik
-#
 
 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';
 require '/var/ipfire/header.pl';
 
-my $debug = 0;
-my $status = '';
 my $errormessage = '';
-my $status_started = "<td align='center' bgcolor='${Header::colourgreen}'><font color='white'><strong>$Lang::tr{'running'}</strong></font></td>";
-my $status_stopped = "<td align='center' bgcolor='${Header::colourred}'><font color='white'><strong>$Lang::tr{'stopped'}</strong></font></td>";
-my $count=0;
-my $col='';
-# get rid of used only once warnings
-my @onlyonce = ( $Header::colourgreen, $Header::colourred );
-undef @onlyonce;
-
 my %selected=();
 my %checked=();
-my %color = ();
-my %mainsettings = ();
-my %netsettings=();
 my %wlanapsettings=();
-my $channel = '';
-my $country = '';
-my $txpower = '';
-
-&General::readhash("${General::swroot}/main/settings", \%mainsettings);
-&General::readhash("/srv/web/ipfire/html/themes/ipfire/include/colors.txt", \%color);
-&General::readhash("/var/ipfire/ethernet/settings", \%netsettings);
-
-$wlanapsettings{'APMODE'} = 'on';
-$wlanapsettings{'ACTION'} = '';
-$wlanapsettings{'MACMODE'} = '0';
-$wlanapsettings{'INTERFACE'} = '';
-$wlanapsettings{'SSID'} = 'IPFire';
-$wlanapsettings{'HIDESSID'} = 'off';
-$wlanapsettings{'ENC'} = 'wpa2';               # none / wpa1 /wpa2
-$wlanapsettings{'TXPOWER'} = 'auto';
-$wlanapsettings{'CHANNEL'} = '6';
-$wlanapsettings{'COUNTRY'} = '00';
-$wlanapsettings{'HW_MODE'} = 'g';
-$wlanapsettings{'PWD'} = 'IPFire-2.x';
-$wlanapsettings{'SYSLOGLEVEL'} = '0';
-$wlanapsettings{'DEBUG'} = '4';
-$wlanapsettings{'DRIVER'} = 'NL80211';
-$wlanapsettings{'HTCAPS'} = '';
-$wlanapsettings{'VHTCAPS'} = '';
-$wlanapsettings{'NOSCAN'} = 'off';
-$wlanapsettings{'CLIENTISOLATION'} = 'off';
-$wlanapsettings{'IEEE80211W'} = 'off';
+
+# Set defaults
+&General::set_defaults(\%wlanapsettings, {
+       "APMODE" => "on",
+       "SSID" => "IPFire",
+       "HIDESSID" => "off",
+       "ENC" => "wpa2",
+       "TXPOWER" => "auto",
+       "CHANNEL" => "6",
+       "COUNTRY" => "00",
+       "HW_MODE" => "g",
+       "PWD" => "",
+       "HTCAPS" => "",
+       "VHTCAPS" => "",
+       "NOSCAN" => "off",
+       "CLIENTISOLATION" => "off",
+       "IEEE80211W" => "off",
+});
 
 &General::readhash("/var/ipfire/wlanap/settings", \%wlanapsettings);
 &Header::getcgihash(\%wlanapsettings);
@@ -84,116 +58,51 @@ $wlanapsettings{'IEEE80211W'} = 'off';
 # Find the selected interface
 my $INTF = &Network::get_intf_by_address($wlanapsettings{'INTERFACE'});
 
-my @macs = $wlanapsettings{'MACS'};
-
 delete $wlanapsettings{'__CGI__'};
 delete $wlanapsettings{'x'};
 delete $wlanapsettings{'y'};
-delete $wlanapsettings{'MACS'};
-delete $wlanapsettings{'ACCEPT_MACS'};
-delete $wlanapsettings{'DENY_MACS'};
 
 &Header::showhttpheaders();
 
-my $string=();
-my $status=();
-my $errormessage = '';
-my $memory = 0;
-my @memory=();
-my @pid=();
-my @hostapd=();
-sub pid
-{
-# for pid and memory
-       open(FILE, '/usr/local/bin/addonctrl hostapd status | ');
-       @hostapd = <FILE>;
-       close(FILE);
-       $string = join("", @hostapd);
-       $string =~ s/[a-z_]//gi;
-       $string =~ s/\[[0-1]\;[0-9]+//gi;
-       $string =~ s/[\(\)\.]//gi;
-       $string =~ s/  //gi;
-       $string =~ s/\e//gi;
-       @pid = split(/\s/,$string);
-       if (open(FILE, "/proc/$pid[0]/statm")){
-               my $temp = <FILE>;
-               @memory = split(/ /,$temp);
-               close(FILE);
-               }
-       $memory+=$memory[0];
-}
-pid();
-
-
-
-if ( $wlanapsettings{'ACTION'} eq "$Lang::tr{'wlanap del interface'}" ){
-       delete $wlanapsettings{'INTERFACE'};
-       &General::writehash("/var/ipfire/wlanap/settings", \%wlanapsettings);
-}
-
-if ( $wlanapsettings{'ACTION'} eq "$Lang::tr{'save'}" ){
+if ($wlanapsettings{'ACTION'} eq "$Lang::tr{'save'}") {
        # verify WPA Passphrase - only with enabled enc
        if ($wlanapsettings{'ENC'} ne "none") {
                # must be 8 .. 63 characters
-               if ( (length($wlanapsettings{'PWD'}) < 8) || (length($wlanapsettings{'PWD'}) > 63)){
+               if ((length($wlanapsettings{'PWD'}) < 8) || (length($wlanapsettings{'PWD'}) > 63)) {
                        $errormessage .= "$Lang::tr{'wlanap invalid wpa'}<br />";
                }
+
                # only ASCII alowed
-               if ( !($wlanapsettings{'PWD'} !~ /[^\x00-\x7f]/) ){
+               if (!($wlanapsettings{'PWD'} !~ /[^\x00-\x7f]/)) {
                        $errormessage .= "$Lang::tr{'wlanap invalid wpa'}<br />";
                }
        }
 
-       if ( $errormessage eq '' ){
+       if ($errormessage eq '') {
                &General::writehash("/var/ipfire/wlanap/settings", \%wlanapsettings);
                &WriteConfig_hostapd();
 
                &General::system("/usr/local/bin/wlanapctrl", "restart");
-               pid();
        }
-}elsif ( $wlanapsettings{'ACTION'} eq "$Lang::tr{'wlanap interface'}" ){
-       &General::writehash("/var/ipfire/wlanap/settings", \%wlanapsettings);
-}elsif ( ($wlanapsettings{'ACTION'} eq "$Lang::tr{'start'}") && ($memory == 0) ){
+
+# Start
+} elsif ($wlanapsettings{'ACTION'} eq "$Lang::tr{'start'}") {
        &General::system("/usr/local/bin/wlanapctrl", "start");
-       pid();
-}elsif ( $wlanapsettings{'ACTION'} eq "$Lang::tr{'stop'}" ){
+
+# Stop
+} elsif ($wlanapsettings{'ACTION'} eq "$Lang::tr{'stop'}") {
        &General::system("/usr/local/bin/wlanapctrl", "stop");
-       $memory=0;
 }
 
 &Header::openpage($Lang::tr{'wlanap configuration'}, 1, '', '');
 &Header::openbigbox('100%', 'left', '', $errormessage);
 
-if ( $errormessage ){
-       &Header::openbox('100%', 'center', $Lang::tr{'error messages'});
-       print "<class name='base'>$errormessage\n";
-       print "&nbsp;</class>\n";
-       &Header::closebox();
-}
-
-
-# Found this usefull piece of code in BlockOutTraffic AddOn  8-)
-#   fwrules.cgi
-###############
-# DEBUG DEBUG
-if ( $debug ){
-       &Header::openbox('100%', 'center', 'DEBUG');
-       my $debugCount = 0;
-       foreach my $line (sort keys %wlanapsettings) {
-               print "$line = '$wlanapsettings{$line}'<br />\n";
-               $debugCount++;
-       }
-       print "&nbsp;Count: $debugCount\n";
-       &Header::closebox();
-}
-# DEBUG DEBUG
-###############
+# Show any errors
+&Header::errorbox($errormessage);
 
 #
 # Driver and status detection
 #
-my $wlan_card_status = 'dummy';
-my $wlan_ap_status = '';
 my $message = "";
 
 my %INTERFACES = &Network::list_wireless_interfaces();
@@ -201,52 +110,7 @@ my %INTERFACES = &Network::list_wireless_interfaces();
 foreach my $intf (keys %INTERFACES) {
        $selected{'INTERFACE'}{$intf} = '';
 }
-$selected{'ENC'}{$wlanapsettings{'INTERFACE'}} = "selected='selected'";
-
-if ( ($wlanapsettings{'INTERFACE'} eq '') ){
-       $message = $Lang::tr{'wlanap select interface'};
-       &Header::openbox('100%', 'center', "WLAN AP");
-print <<END
-$message<br />
-<form method='post' action='$ENV{'SCRIPT_NAME'}'>
-<select name='INTERFACE'>
-END
-;
-
-       foreach my $intf (sort keys %INTERFACES) {
-               print "<option value='${intf}' $selected{'INTERFACE'}{$intf}>$INTERFACES{$intf}</option>";
-       }
-
-print <<END
-</select>
-<br /><br />
-<hr size='1'>
-       <input type='submit' name='ACTION' value='$Lang::tr{'wlanap interface'}' /></form>
-END
-;
-       &Header::closebox();
-       &Header::closebigbox();
-       &Header::closepage();
-       exit;
-}else{
-       my $cmd_out = `/usr/sbin/iwconfig $INTF 2>/dev/null`;
-
-       if ( $cmd_out eq '' ){
-               $message = "$Lang::tr{'wlanap no interface'}";
-               $wlan_card_status = '';
-       }else{
-               $cmd_out = `/sbin/ifconfig $INTF`;
-               if ( $cmd_out eq '' ){
-                       $wlan_card_status = 'down';
-               }else{
-                       $wlan_card_status = 'up';
-                       $cmd_out = `/usr/sbin/iwconfig $INTF | /bin/grep "Mode:Master"`;
-                       if ( $cmd_out ne '' ){
-                               $wlan_ap_status = 'up';
-                       }
-               }
-       }
-}
+$selected{'INTERFACE'}{$wlanapsettings{'INTERFACE'}} = "selected='selected'";
 
 # Change old "n" to "gn"
 if ( $wlanapsettings{'HW_MODE'} eq 'n' ) {
@@ -275,317 +139,251 @@ $selected{'CHANNEL'}{$wlanapsettings{'CHANNEL'}} = "selected='selected'";
 $selected{'COUNTRY'}{$wlanapsettings{'COUNTRY'}} = "selected='selected'";
 $selected{'TXPOWER'}{$wlanapsettings{'TXPOWER'}} = "selected='selected'";
 $selected{'HW_MODE'}{$wlanapsettings{'HW_MODE'}} = "selected='selected'";
-$selected{'MACMODE'}{$wlanapsettings{'MACMODE'}} = "selected='selected'";
 
-my $monwlaninterface = $INTF;
-if ( -d '/sys/class/net/mon.' . $INTF) {
-       $monwlaninterface =  'mon.' . $INTF;
-}
+# Fetch all available channels
+my @channellist = &get_channellist($INTF);
 
-my @channellist_cmd;
-my @channellist = (0);
+# Fetch countries
+my @countrylist = &get_countrylist();
 
-if ( $wlanapsettings{'DRIVER'} eq 'NL80211' ){
-my $wiphy = `iw dev $INTF info | grep wiphy | cut -d" " -f2`;
-chomp $wiphy;
+# Show status
+&Header::opensection();
 
-@channellist_cmd = `iw phy phy$wiphy info | grep " MHz \\\[" | grep -v "(disabled)" | grep -v "no IBSS" | grep -v "no IR" | grep -v "passive scanning" 2>/dev/null`;
-# get available channels
+&Header::ServiceStatus({
+       "$Lang::tr{'wlanap'}" => {
+               "process" => "hostapd",
+       }
+});
+
+print <<EOF;
+       <table class="form">
+               <tr class="action">
+                       <td>
+                               <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+                                       <input type='submit' name='ACTION' value='$Lang::tr{'start'}' />
+                               </form>
+
+                               <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+                                       <input type='submit' name='ACTION' value='$Lang::tr{'stop'}' />
+                               </form>
+                       </td>
+               </tr>
+       </table>
+EOF
+
+&Header::closesection();
 
-my @temp;
-foreach (@channellist_cmd){
-$_ =~ /(.*) \[(\d+)(.*)\]/;
-$channel = $2;chomp $channel;
-if ( $channel =~ /\d+/ ){push(@temp,$channel + 0);}
-}
-push(@channellist, @temp);
-} else {
-@channellist_cmd = `iwlist $monwlaninterface channel|tail -n +2 2>/dev/null`;
-# get available channels
-
-my @temp;
-foreach (@channellist_cmd){
-$_ =~ /(.*)Channel (\d+)(.*):/;
-$channel = $2;chomp $channel;
-if ( $channel =~ /\d+/ ){push(@temp,$channel + 0);}
-}
-push(@channellist, @temp);
-}
+#
+# Configuration
+#
+&Header::openbox("100%", "center", $Lang::tr{'wlanap configuration'});
 
-# get available country codes
-open(FILE, "</lib/firmware/regulatorydb.txt");
-my @countrylist_cmd = <FILE>;
-close(FILE);
+print <<END;
+       <form method='post' action='$ENV{'SCRIPT_NAME'}'>
+               <h6>$Lang::tr{'wlanap configuration'}</h6>
 
+               <table class="form">
+                       <tr>
+                               <td>$Lang::tr{'wlanap interface'}</td>
 
-my @temp = "00";
-foreach (@countrylist_cmd){
-$_ =~ /country (.*):/;
-$country = $1;chomp $country;
-if ( $country =~ /[0,A-Z][0,A-Z]/ ) {push(@temp,$country);}
-}
-my @countrylist = @temp;
+                               <td>
+                                       <select name="INTERFACE" required>
+END
 
-my @txpower_cmd = `iwlist $monwlaninterface txpower 2>/dev/null`;
-if ( $wlanapsettings{'DRIVER'} eq 'NL80211' ){
-       # There is a bug with NL80211 only all devices can displaye
-       @txpower_cmd = `iwlist txpower 2>/dev/null | sed -e "s|unknown transmit-power information.||g"`;
+foreach my $intf (sort keys %INTERFACES) {
+       print <<END;
+                                               <option value="$intf" $selected{'INTERFACE'}{$intf}>
+                                                       $INTERFACES{$intf}
+                                               </option>
+END
 }
-# get available power
-
-$selected{'SYSLOGLEVEL'}{$wlanapsettings{'SYSLOGLEVEL'}} = "selected='selected'";
-$selected{'DEBUG'}{$wlanapsettings{'DEBUG'}} = "selected='selected'";
 
-#
-# Status box
-#
-&Header::openbox('100%', 'center', "WLAN AP");
-print <<END
-<table width='80%' cellspacing='1' class='tbl'>
+print <<END;
+                                       </select>
+                               </td>
+                       </tr>
+
+                       <tr>
+                               <td>$Lang::tr{'wlanap ssid'}</td>
+                               <td>
+                                       <input type='text' name='SSID' value='$wlanapsettings{'SSID'}' required>
+                               </td>
+                       </tr>
+
+                       <tr>
+                               <td>$Lang::tr{'wlanap broadcast ssid'}</td>
+                               <td>
+                                       <input type='checkbox' name='HIDESSID' $checked{'HIDESSID'}{'on'}>
+                               </td>
+                       </tr>
+
+                       <tr>
+                               <td>$Lang::tr{'wlanap client isolation'}</td>
+                               <td>
+                                       <input type='checkbox' name='CLIENTISOLATION' $checked{'CLIENTISOLATION'}{'on'}>
+                               </td>
+                       </tr>
+
+                       <tr>
+                               <td>$Lang::tr{'wlanap country'}</td>
+                               <td>
+                                       <select name="COUNTRY">
 END
-;
 
-if ( $wlan_card_status ne '' ){
-       print "<tr><th align='left' width='50%'><strong>$Lang::tr{'service'}</strong></th><th width='22%'>Status</th><th width='10%'>PID</th><th width='15%'>$Lang::tr{'memory'}</th><th colspan='2'width='5%'>$Lang::tr{'action'}</th></tr>";
-       print "<tr><td class='base'>$Lang::tr{'wlanap wlan card'} ($wlanapsettings{'DRIVER'})</td>";
-       print $wlan_card_status eq 'up' ? $status_started : $status_stopped;
-       print"<td colspan='4'></td></tr>";
-       print "<tr><td class='base' bgcolor='$color{'color22'}'>$Lang::tr{'wlanap'}</td>";
-       print $wlan_ap_status eq 'up' ? $status_started : $status_stopped;
-       if ( ($memory != 0) && (@pid[0] ne "///") ){
-               print "<td bgcolor='$color{'color22'}' align='center'>@pid[0]</td>";
-               print "<td bgcolor='$color{'color22'}' align='center'>$memory KB</td>";
-               print "<td bgcolor='$color{'color22'}'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='$Lang::tr{'start'}' /><input type='image' alt='$Lang::tr{'start'}' title='$Lang::tr{'start'}' src='/images/go-up.png' /></form></td>";
-               print "<td bgcolor='$color{'color22'}'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='$Lang::tr{'stop'}' /><input type='image' alt='$Lang::tr{'stop'}' title='$Lang::tr{'stop'}' src='/images/go-down.png' /></form></td>";
-       }else{
-               print"<td colspan='2' bgcolor='$color{'color22'}'></td>";
-               print "<td bgcolor='$color{'color22'}'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='$Lang::tr{'start'}' /><input type='image' alt='$Lang::tr{'start'}' title='$Lang::tr{'start'}' src='/images/go-up.png' /></form></td>";
-               print "<td bgcolor='$color{'color22'}'><form method='post' action='$ENV{'SCRIPT_NAME'}'><input type='hidden' name='ACTION' value='$Lang::tr{'stop'}' /><input type='image' alt='$Lang::tr{'stop'}' title='$Lang::tr{'stop'}' src='/images/go-down.png' /></form></td>";
-       }
-
-}else{
-       print "<tr><td class='base'>$message";
-}
-       print "</table>";
-
-if ( $wlan_card_status eq '' ){
-       print "<br />";
-       print "<table width='80%' cellspacing='0' border='0'>";
-       print "<tr align='center'>";
-       print "<td colspan='4'></td>";
-       print "</tr>";
-       print "<tr align='center'>";
-       print "<td width='40%'>&nbsp;</td>";
-       print "<td width='20%'><form method='post' action='/cgi-bin/wlanap.cgi'><input type='submit' name='ACTION' value='$Lang::tr{'wlanap del interface'}' /></form></td>";
-       print "<td width='20%'></td>";
-       print "<td width='20%'></td>";
-       print "</tr>";
-       print "</table>";
+foreach my $country (@countrylist){
+       print "                                 <option $selected{'COUNTRY'}{$country}>$country</option>";
 }
 
-if ( $wlan_card_status eq '' ){
-       &Header::closebox();
-       &Header::closebigbox();
-       &Header::closepage();
-       exit 0;
-}
-print <<END
-<br><br>
-<form method='post' action='$ENV{'SCRIPT_NAME'}'>
-<table width='80%' cellspacing='0' class='tbl' border='0'>
-<tr><th bgcolor='$color{'color20'}' colspan='4' align='left'><strong>$Lang::tr{'wlanap wlan settings'}</strong></th></tr>
-<tr><td colspan='4'><br></td></tr>
-<tr><td width='25%' class='base'>$Lang::tr{'wlanap ssid'}:&nbsp;</td><td class='base' colspan='3'><input type='text' name='SSID' size='30' value='$wlanapsettings{'SSID'}' /></td></tr>
-<!--SSID Broadcast: on => HIDESSID: off -->
-<tr><td width='25%' class='base'>$Lang::tr{'wlanap broadcast ssid'}:&nbsp;</td><td class='base' colspan='3'>$Lang::tr{'on'} <input type='radio' name='HIDESSID' value='off' $checked{'HIDESSID'}{'off'} /> | <input type='radio' name='HIDESSID' value='on' $checked{'HIDESSID'}{'on'} /> $Lang::tr{'off'}</td></tr>
-<tr><td width='25%' class='base'>$Lang::tr{'wlanap client isolation'}:&nbsp;</td><td class='base' colspan='3'>$Lang::tr{'on'} <input type='radio' name='CLIENTISOLATION' value='on' $checked{'CLIENTISOLATION'}{'on'} /> | <input type='radio' name='CLIENTISOLATION' value='off' $checked{'CLIENTISOLATION'}{'off'} /> $Lang::tr{'off'}</td></tr>
-<tr><td width='25%' class='base'>$Lang::tr{'wlanap country'}:&nbsp;</td><td class='base' colspan='3'>
-       <select name='COUNTRY'>
+print <<END;
+                                       </select>
+                               </td>
+                       </tr>
+
+                       <tr>
+                               <td>$Lang::tr{'wlanap wireless mode'}</td>
+                               <td>
+                                       <select name='HW_MODE'>
+                                               <option value='a' $selected{'HW_MODE'}{'a'}>802.11a</option>
+                                               <option value='b' $selected{'HW_MODE'}{'b'}>802.11b</option>
+                                               <option value='g' $selected{'HW_MODE'}{'g'}>802.11g</option>
+                                               <option value='an' $selected{'HW_MODE'}{'an'}>802.11an</option>
+                                               <option value='gn' $selected{'HW_MODE'}{'gn'}>802.11gn</option>
+                                               <option value='ac' $selected{'HW_MODE'}{'ac'}>802.11ac</option>
+                                       </select>
+                               </td>
+                       </tr>
+
+                       <tr>
+                               <td>$Lang::tr{'wlanap channel'}</td>
+                               <td>
+                                       <select name='CHANNEL'>
 END
-;
-foreach $country (@countrylist){
-       print "<option $selected{'COUNTRY'}{$country}>$country</option>";
-}
-print<<END
-</select></td></tr>
-<tr><td width='25%' class='base'>HW Mode:&nbsp;</td><td class='base' colspan='3'>
-       <select name='HW_MODE'>
-               <option value='a' $selected{'HW_MODE'}{'a'}>802.11a</option>
-               <option value='b' $selected{'HW_MODE'}{'b'}>802.11b</option>
-               <option value='g' $selected{'HW_MODE'}{'g'}>802.11g</option>
-               <option value='an' $selected{'HW_MODE'}{'an'}>802.11an</option>
-               <option value='gn' $selected{'HW_MODE'}{'gn'}>802.11gn</option>
-               <option value='ac' $selected{'HW_MODE'}{'ac'}>802.11ac</option>
-       </select>
-</td></tr>
-END
-;
 
-if ( scalar @channellist > 0 ){
-       print <<END
-<tr><td width='25%' class='base'>$Lang::tr{'wlanap channel'}:&nbsp;</td><td class='base' colspan='3'>
-       <select name='CHANNEL'>
-END
-;
-       foreach $channel (@channellist){
-               print "<option $selected{'CHANNEL'}{$channel}>";
-               if ($channel eq 0) {
-                       print "- $Lang::tr{'wlanap auto'} -";
-               } else {
-                       print $channel;
-               }
-               print "</option>";
+foreach my $channel (@channellist){
+       print "<option $selected{'CHANNEL'}{$channel}>";
+       if ($channel eq 0) {
+               print "- $Lang::tr{'wlanap auto'} -";
+       } else {
+               print $channel;
        }
-       print "</select></td></tr>"
-} else {
-       print <<END
-<tr><td width='25%' class='base'>$Lang::tr{'wlanap channel'}:&nbsp;</td><td class='base' colspan='3'>
-<input type='text' name='CHANNEL' size='10' value='$wlanapsettings{'CHANNEL'}' />
-</td></tr>
-END
-;
+       print "</option>";
 }
-print<<END
-<tr><td width='25%' class='base'>$Lang::tr{'wlanap neighbor scan'}:&nbsp;</td><td class='base' >$Lang::tr{'on'} <input type='radio' name='NOSCAN' value='off' $checked{'NOSCAN'}{'off'} /> | <input type='radio' name='NOSCAN' value='on' $checked{'NOSCAN'}{'on'} /> $Lang::tr{'off'}</td><td class='base' colspan='2'>$Lang::tr{'wlanap neighbor scan warning'}</td></tr>
-<tr><td colspan='4'><br></td></tr>
-<tr><td width='25%' class='base'>$Lang::tr{'wlanap encryption'}:&nbsp;</td><td class='base' colspan='3'>
-       <select name='ENC'>
-               <option value='none' $selected{'ENC'}{'none'}>$Lang::tr{'wlanap none'}</option>
-               <option value='wpa1' $selected{'ENC'}{'wpa1'}>WPA1</option>
-               <option value='wpa2' $selected{'ENC'}{'wpa2'}>WPA2</option>
-               <option value='wpa3' $selected{'ENC'}{'wpa3'}>WPA3</option>
-               <option value='wpa1+2' $selected{'ENC'}{'wpa1+2'}>WPA1+2</option>
-               <option value='wpa2+3' $selected{'ENC'}{'wpa2+3'}>WPA2+3</option>
-       </select>
-</td></tr>
-<tr><td width='25%' class='base'>Passphrase:&nbsp;</td><td class='base' colspan='3'><input type='text' name='PWD' size='30' value='$wlanapsettings{'PWD'}' /></td></tr>
-<tr>
-       <td width='25%' class='base'>$Lang::tr{'wlanap management frame protection'}:&nbsp;</td>
-       <td class='base' colspan="3">
-               <select name="IEEE80211W">
-                       <option value="off" $selected{'IEEE80211W'}{'off'}>$Lang::tr{'wlanap 802.11w disabled'}</option>
-                       <option value="optional" $selected{'IEEE80211W'}{'optional'}>$Lang::tr{'wlanap 802.11w optional'}</option>
-                       <option value="on" $selected{'IEEE80211W'}{'on'}>$Lang::tr{'wlanap 802.11w enforced'}</option>
-               </select>
-       </td>
-</tr>
-<tr><td colspan='4'><br></td></tr>
-END
-;
-print <<END
-<tr><td width='25%' class='base'>HT Caps:&nbsp;</td><td class='base' colspan='3'><input type='text' name='HTCAPS' size='30' value='$wlanapsettings{'HTCAPS'}' /></td></tr>
-<tr><td width='25%' class='base'>VHT Caps:&nbsp;</td><td class='base' colspan='3'><input type='text' name='VHTCAPS' size='30' value='$wlanapsettings{'VHTCAPS'}' /></td></tr>
-<tr><td width='25%' class='base'>Tx Power:&nbsp;</td><td class='base' colspan='3'><input type='text' name='TXPOWER' size='10' value='$wlanapsettings{'TXPOWER'}' /></td></tr>
-<tr><td width='25%' class='base'>Loglevel (hostapd):&nbsp;</td><td class='base' width='25%'>
-       <select name='SYSLOGLEVEL'>
-               <option value='0' $selected{'SYSLOGLEVEL'}{'0'}>0 ($Lang::tr{'wlanap verbose'})</option>
-               <option value='1' $selected{'SYSLOGLEVEL'}{'1'}>1 ($Lang::tr{'wlanap debugging'})</option>
-               <option value='2' $selected{'SYSLOGLEVEL'}{'2'}>2 ($Lang::tr{'wlanap informations'})</option>
-               <option value='3' $selected{'SYSLOGLEVEL'}{'3'}>3 ($Lang::tr{'wlanap notifications'})</option>
-               <option value='4' $selected{'SYSLOGLEVEL'}{'4'}>4 ($Lang::tr{'wlanap warnings'})</option>
-       </select>
-</td>
-<td width='25%' class='base'>Debuglevel (hostapd):&nbsp;</td><td class='base' width='25%'>
-       <select name='DEBUG'>
-               <option value='0' $selected{'DEBUG'}{'0'}>0 ($Lang::tr{'wlanap verbose'})</option>
-               <option value='1' $selected{'DEBUG'}{'1'}>1 ($Lang::tr{'wlanap debugging'})</option>
-               <option value='2' $selected{'DEBUG'}{'2'}>2 ($Lang::tr{'wlanap informations'})</option>
-               <option value='3' $selected{'DEBUG'}{'3'}>3 ($Lang::tr{'wlanap notifications'})</option>
-               <option value='4' $selected{'DEBUG'}{'4'}>4 ($Lang::tr{'wlanap warnings'})</option>
-       </select>
-</td></tr>
-<tr><td colspan='4'><br></td></tr>
-</table>
-END
-;
-if ( $INTF =~ /green0/ ){
-       print <<END
-<br />
-<table width='80%' cellspacing='0' class='tbl' border='1'>
-<tr>
-       <th colspan='3' align='left'>$Lang::tr{'mac filter'}</th>
-</tr>
-<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 (Accept MACs)</option>
-               <option value='2' $selected{'MACMODE'}{'2'}>2 (Deny MACs)</option>
-       </select>
-</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/macfile`;
-print <<END
-</textarea></td>
-</table>
+
+print <<END;
+                                       </select>
+                               </td>
+                       </tr>
+
+                       <tr>
+                               <td>$Lang::tr{'wlanap neighbor scan'}</td>
+                               <td>
+                                       <input type='checkbox' name='NOSCAN' $checked{'NOSCAN'}{'on'}>
+
+                                       $Lang::tr{'wlanap neighbor scan warning'}
+                               </td>
+                       </tr>
+
+                       <tr>
+                               <td>$Lang::tr{'wlanap encryption'}</td>
+                               <td>
+                                       <select name='ENC'>
+                                               <option value='none' $selected{'ENC'}{'none'}>$Lang::tr{'wlanap none'}</option>
+                                               <option value='wpa1' $selected{'ENC'}{'wpa1'}>WPA1</option>
+                                               <option value='wpa2' $selected{'ENC'}{'wpa2'}>WPA2</option>
+                                               <option value='wpa3' $selected{'ENC'}{'wpa3'}>WPA3</option>
+                                               <option value='wpa1+2' $selected{'ENC'}{'wpa1+2'}>WPA1+2</option>
+                                               <option value='wpa2+3' $selected{'ENC'}{'wpa2+3'}>WPA2+3</option>
+                                       </select>
+                               </td>
+                       </tr>
+
+                       <tr>
+                               <td>$Lang::tr{'wlanap psk'}</td>
+                               <td>
+                                       <input type='text' name='PWD' value='$wlanapsettings{'PWD'}' />
+                               </td>
+                       </tr>
+
+                       <tr>
+                               <td>$Lang::tr{'wlanap management frame protection'}</td>
+                               <td>
+                                       <select name="IEEE80211W">
+                                               <option value="off" $selected{'IEEE80211W'}{'off'}>
+                                                       $Lang::tr{'wlanap 802.11w disabled'}
+                                               </option>
+                                               <option value="optional" $selected{'IEEE80211W'}{'optional'}>
+                                                       $Lang::tr{'wlanap 802.11w optional'}
+                                               </option>
+                                               <option value="on" $selected{'IEEE80211W'}{'on'}>
+                                                       $Lang::tr{'wlanap 802.11w enforced'}
+                                               </option>
+                                       </select>
+                               </td>
+                       </tr>
+
+                       <tr>
+                               <td>HT Caps</td>
+                               <td>
+                                       <input type='text' name='HTCAPS' value='$wlanapsettings{'HTCAPS'}' />
+                               </td>
+                       </tr>
+
+                       <tr>
+                               <td>VHT Caps</td>
+                               <td>
+                                       <input type='text' name='VHTCAPS' value='$wlanapsettings{'VHTCAPS'}' />
+                               </td>
+                       </tr>
+
+                       <tr>
+                               <td>Tx Power</td>
+                               <td>
+                                       <input type='text' name='TXPOWER' value='$wlanapsettings{'TXPOWER'}' />
+                               </td>
+                       </tr>
+
+                       <tr class="action">
+                               <td colspan="2">
+                                       <input type='submit' name='ACTION' value='$Lang::tr{'save'}' />
+                               </td>
+                       </tr>
+               </table>
+       </form>
 END
 ;
-}
-print <<END
-<br />
-<table width='80%' cellspacing='0'>
-<tr><td align='center'>
-<form method='post' action='$ENV{'SCRIPT_NAME'}'>
-       <input type='submit' name='ACTION' value='$Lang::tr{'save'}' /></form></td>
-</tr>
-</table>
+
+&Header::closebox();
+
+&Header::opensection();
+
+my @status = `iw dev $INTF info`;
+
+if (@status) {
+       print <<END;
+               <h6>$Lang::tr{'wlanap wlan status'}</h6>
+
+               <pre>@status</pre>
 END
-;
-my @status;
-if ( $wlanapsettings{'DRIVER'} eq 'NL80211' ){
-        @status =  `iw dev $INTF info && iw dev $INTF station dump && echo ""`;
 }
-print <<END
-<br />
-<table width='80%' cellspacing='0' class='tbl'>
-<tr><th colspan='3' bgcolor='$color{'color20'}' align='left'><strong>$Lang::tr{'wlanap wlan status'}</strong></th></tr>
-END
-;
 
-for (my $i=0;$i<$#status;$i++){
+my @status = `iw dev $INTF station dump`;
 
-if (@status[$i]=~"^Station ") { $count++; }
-if ($count % 2){
-               $col="bgcolor='$color{'color20'}'";
-       }else{
-               $col="bgcolor='$color{'color22'}'";
-       }
-       print"<tr><td colspan='3' $col><pre>@status[$i]</pre></td></tr>";
-       if (! @status[$i]=~"^/t" ) { $count++; }
-}
-       $count++;
+if (@status) {
+       print <<END;
+               <h6>$Lang::tr{'wlanap clients'}</h6>
 
-foreach my $nr (@channellist_cmd){
-       if ($count % 2){
-               $col="bgcolor='$color{'color20'}'";
-       }else{
-               $col="bgcolor='$color{'color22'}'";
-       }
-       print"<tr><td colspan='3' $col>$nr</td></tr>";
-       $count++;
+               <pre>@status</pre>
+END
 }
 
-for (my $i=0;$i<$#txpower_cmd;$i=$i+2){
-       if ($count % 2){
-               $col="bgcolor='$color{'color20'}'";
-       }else{
-               $col="bgcolor='$color{'color22'}'";
-       }
-       print "<tr><td $col>@txpower_cmd[$i]</td></tr>";
-       $count++;
-}
-print "</table>";
-&Header::closebox();
-print "</form>";
+&Header::closesection();
 &Header::closebigbox();
 &Header::closepage();
 
 sub WriteConfig_hostapd{
-       $wlanapsettings{'DRIVER_HOSTAPD'} = lc($wlanapsettings{'DRIVER'});
-
        open (CONFIGFILE, ">/var/ipfire/wlanap/hostapd.conf");
        print CONFIGFILE <<END
-driver=$wlanapsettings{'DRIVER_HOSTAPD'}
+driver=nl80211
 ######################### basic hostapd configuration ##########################
 #
 country_code=$wlanapsettings{'COUNTRY'}
@@ -633,10 +431,9 @@ END
  }
 
 print CONFIGFILE <<END
+# Enable logging
 logger_syslog=-1
-logger_syslog_level=$wlanapsettings{'SYSLOGLEVEL'}
-logger_stdout=-1
-logger_stdout_level=$wlanapsettings{'DEBUG'}
+logger_syslog_level=4
 auth_algs=1
 ctrl_interface=/var/run/hostapd
 ctrl_interface_group=0
@@ -743,12 +540,68 @@ END
 ;
  }
        close CONFIGFILE;
+}
+
+sub get_phy($) {
+       my $intf = shift;
+       my $phy;
+
+       open(my $file, "/sys/class/net/$intf/phy80211/index") or return undef;
 
-       open (MACFILE, ">/var/ipfire/wlanap/macfile");
-       foreach(@macs){
-               $_ =~ s/\r//gi;
-               chomp($_);
-               if ( $_ ne "" ){print MACFILE $_;}
+       while (<$file>) {
+               chomp $_;
+
+               $phy = $_;
+               last;
        }
-       close MACFILE;
+
+       close($file);
+
+       return $phy;
+}
+
+sub get_channellist($) {
+       my $intf = shift;
+
+       # Fetch the PHY ID
+       my $phy = &get_phy($intf);
+
+       my @channels = (0);
+
+       open(my $command, "iw phy phy$phy info |");
+
+       while (<$command>) {
+               # Skip everything we are not interested in
+               next unless ($_ =~ m/MHz \[(\d+)\]/);
+
+               my $channel = $1;
+
+               # Skip disabled and otherwise unusable channels
+               next if ($_ =~ m/disabled/);
+               next if ($_ =~ m/no IBSS/);
+               next if ($_ =~ m/no IR/);
+               next if ($_ =~ m/passive scanning/);
+
+               push(@channels, $channel);
+       }
+
+       close($command);
+
+       return @channels;
+}
+
+sub get_countrylist() {
+       open(my $file, "</lib/firmware/regulatorydb.txt");
+
+       my @countries = ();
+
+       while (<$file>) {
+               if ($_ =~ m/^country ([A-Z0-9]{2}):/) {
+                       push(@countries, $1);
+               }
+       }
+
+       close($file);
+
+       return @countries;
 }
index 18dfe347a0de9f0bda93b3229c7c7a791f4138f5..54d0f12e5ba7d449725d7259e6c5fd16b9b3548c 100644 (file)
@@ -361,6 +361,10 @@ table.form tr.action td {
        text-align: right;
 }
 
+table.form tr.action td form {
+       display: inline;
+}
+
 .tbl {
        width: 100%;
 }
index 89bef62f08fcf118f25b76e44cd7dd668f05ca22..0004685a730e15d2eb3ab62ea73f973011fc4d02 100644 (file)
 'wlan client wpa mode ccmp tkip' => 'CCMP-TKIP',
 'wlan client wpa mode tkip tkip' => 'TKIP-TKIP',
 'wlan clients' => 'Wireless clients',
-'wlanap' => 'Access Point',
+'wlanap' => 'Wireless Access Point',
 'wlanap 802.11w disabled' => 'Disabled',
 'wlanap 802.11w enforced' => 'Enforced',
 'wlanap 802.11w optional' => 'Optional',
 'wlanap broadcast ssid' => 'Broadcast SSID',
 'wlanap channel' => 'Channel',
 'wlanap client isolation' => 'Client Isolation',
-'wlanap configuration' => 'Access Point Configuration',
+'wlanap configuration' => 'Wireless Access Point Configuration',
 'wlanap country' => 'Country Code',
 'wlanap debugging' => 'Debugging',
 'wlanap del interface' => 'Remove selected interface?',
 'wlanap encryption' => 'Encryption',
-'wlanap informations' => 'Informations',
-'wlanap interface' => 'Select interface',
-'wlanap invalid wpa' => 'Invalid length in WPA Passphrase. Must be between 8 and 63 characters.',
-'wlanap link dhcp' => 'Wireless lan DHCP configuration',
+'wlanap informations' => 'Information',
+'wlanap interface' => 'Select Interface',
+'wlanap invalid wpa' => 'Invalid length in WPA passphrase. Must be between 8 and 63 characters.',
+'wlanap link dhcp' => 'Wireless LAN DHCP configuration',
 'wlanap link wireless' => 'Activate wireless lan clients',
 'wlanap management frame protection' => 'Management Frame Protection (802.11w)',
-'wlanap neighbor scan' => 'Neighborhood scan',
-'wlanap neighbor scan warning' => 'Warning! Disabling may violate regulatory rules!',
+'wlanap neighbor scan' => 'Neighborhood Scan',
+'wlanap neighbor scan warning' => 'Warning: Disabling may violate regulatory rules',
 'wlanap no interface' => 'Selected interface is not a wirless lan card!',
 'wlanap none' => 'none',
-'wlanap notifications' => 'Notifications',
+'wlanap notifications' => 'Notification',
+'wlanap psk' => 'Pre-Shared Key',
 'wlanap select interface' => 'Please select the wireless lan interface.',
 'wlanap ssid' => 'SSID',
 'wlanap verbose' => 'Verbose',
 'wlanap warnings' => 'Warnings',
+'wlanap wireless mode' => 'Wireless Mode',
 'wlanap wlan card' => 'WLan Card',
-'wlanap wlan services' => 'WLan Services',
-'wlanap wlan settings' => 'WLan Settings',
-'wlanap wlan status' => 'WLan Status',
+'wlanap wlan clients' => 'WiFi Clients',
+'wlanap wlan services' => 'WiFi Services',
+'wlanap wlan settings' => 'WiFi Settings',
+'wlanap wlan status' => 'WiFi Status',
 'wol wakeup' => 'WakeUp',
 'workgroup' => 'Workgroup',
 'working' => 'Working',