From patchwork Mon Jan 19 16:21:36 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tremer X-Patchwork-Id: 9405 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (secp384r1 raw public key) server-digest SHA384 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mail01.haj.ipfire.org", Issuer "R12" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4dvwhK2MKSz3wjW for ; Mon, 19 Jan 2026 16:21:53 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail02.haj.ipfire.org", Issuer "E8" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4dvwhJ5MDfz44c for ; Mon, 19 Jan 2026 16:21:52 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [IPv6:::1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4dvwhJ4cVVz32SW for ; Mon, 19 Jan 2026 16:21:52 +0000 (UTC) X-Original-To: development@lists.ipfire.org Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (secp384r1 raw public key) server-digest SHA384 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mail01.haj.ipfire.org", Issuer "R12" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4dvwhF6gZJz2xHh for ; Mon, 19 Jan 2026 16:21:49 +0000 (UTC) Received: from michael.haj.ipfire.org (michael.haj.ipfire.org [172.28.1.242]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature ECDSA (secp384r1) client-digest SHA384) (Client CN "michael.haj.ipfire.org", Issuer "E8" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4dvwhF0v5BzDG; Mon, 19 Jan 2026 16:21:49 +0000 (UTC) Received: by michael.haj.ipfire.org (Postfix, from userid 0) id 4dvwhD3htMzTh9y; Mon, 19 Jan 2026 16:21:48 +0000 (UTC) From: Michael Tremer To: development@lists.ipfire.org Cc: Michael Tremer Subject: [PATCH 1/5] hostapd: Bring back support for 802.11g/a Date: Mon, 19 Jan 2026 16:21:36 +0000 Message-ID: <20260119162140.3373757-1-michael.tremer@ipfire.org> X-Mailer: git-send-email 2.47.3 Precedence: list List-Id: List-Subscribe: , List-Unsubscribe: , List-Post: List-Help: Sender: Mail-Followup-To: MIME-Version: 1.0 I just have a little bit of easily accessible testing hardware in form of USB devices which are very suitable for testing, but the one that I found in my drawer doesn't support 802.11n. Signed-off-by: Michael Tremer --- doc/language_issues.de | 2 ++ doc/language_issues.en | 2 ++ doc/language_issues.es | 2 ++ doc/language_issues.fr | 2 ++ doc/language_issues.it | 2 ++ doc/language_issues.nl | 2 ++ doc/language_issues.pl | 2 ++ doc/language_issues.ru | 2 ++ doc/language_issues.tr | 2 ++ doc/language_issues.tw | 2 ++ doc/language_issues.zh | 2 ++ doc/language_missings | 20 ++++++++++++++++++++ html/cgi-bin/wlanap.cgi | 8 +++++++- langs/en/cgi-bin/en.pl | 2 ++ src/initscripts/packages/hostapd | 15 +++++++++++++-- 15 files changed, 64 insertions(+), 3 deletions(-) diff --git a/doc/language_issues.de b/doc/language_issues.de index 008b9520f..1795ec5af 100644 --- a/doc/language_issues.de +++ b/doc/language_issues.de @@ -1210,6 +1210,8 @@ WARNING: untranslated string: wio_webinterface_link = unknown string WARNING: untranslated string: wireguard = WireGuard WARNING: untranslated string: wlan client encryption wpa3 = WPA3 WARNING: untranslated string: wlan client management frame protection = Management Frame Protection +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11w disabled = Disabled WARNING: untranslated string: wlanap 802.11w enforced = Enforced WARNING: untranslated string: wlanap 802.11w optional = Optional diff --git a/doc/language_issues.en b/doc/language_issues.en index 6ea0f1963..30e2fbcce 100644 --- a/doc/language_issues.en +++ b/doc/language_issues.en @@ -2408,6 +2408,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_issues.es b/doc/language_issues.es index 48dfffa7e..980d27874 100644 --- a/doc/language_issues.es +++ b/doc/language_issues.es @@ -1250,6 +1250,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_issues.fr b/doc/language_issues.fr index 65b3838d0..a7c31beaf 100644 --- a/doc/language_issues.fr +++ b/doc/language_issues.fr @@ -1301,6 +1301,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_issues.it b/doc/language_issues.it index 5214abda2..10e77143f 100644 --- a/doc/language_issues.it +++ b/doc/language_issues.it @@ -1652,6 +1652,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_issues.nl b/doc/language_issues.nl index d3f814785..5d56a5ca2 100644 --- a/doc/language_issues.nl +++ b/doc/language_issues.nl @@ -1672,6 +1672,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_issues.pl b/doc/language_issues.pl index 24b5429ef..7a1128c20 100644 --- a/doc/language_issues.pl +++ b/doc/language_issues.pl @@ -1920,6 +1920,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_issues.ru b/doc/language_issues.ru index 0682bfd6f..b6320fd30 100644 --- a/doc/language_issues.ru +++ b/doc/language_issues.ru @@ -1919,6 +1919,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_issues.tr b/doc/language_issues.tr index 2ef6920ac..2ad1bf054 100644 --- a/doc/language_issues.tr +++ b/doc/language_issues.tr @@ -1522,6 +1522,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_issues.tw b/doc/language_issues.tw index 73e116b7c..c676ffa52 100644 --- a/doc/language_issues.tw +++ b/doc/language_issues.tw @@ -1268,6 +1268,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_issues.zh b/doc/language_issues.zh index 73e116b7c..c676ffa52 100644 --- a/doc/language_issues.zh +++ b/doc/language_issues.zh @@ -1268,6 +1268,8 @@ WARNING: untranslated string: wlanap 802.11ac 160mhz = IEEE 802.11ac @ 160 MHz WARNING: untranslated string: wlanap 802.11ac 20mhz = IEEE 802.11ac @ 20 MHz WARNING: untranslated string: wlanap 802.11ac 40mhz = IEEE 802.11ac @ 40 MHz WARNING: untranslated string: wlanap 802.11ac 80mhz = IEEE 802.11ac @ 80 MHz +WARNING: untranslated string: wlanap 802.11ag = IEEE 802.11a/g +WARNING: untranslated string: wlanap 802.11ag 20mhz = IEEE802.11a/g @ 20 MHz WARNING: untranslated string: wlanap 802.11agn = IEEE 802.11an/gn WARNING: untranslated string: wlanap 802.11agn 20mhz = IEEE 802.11an/gn @ 20 MHz WARNING: untranslated string: wlanap 802.11agn 40mhz = IEEE 802.11an/gn @ 40 MHz diff --git a/doc/language_missings b/doc/language_missings index 1d435f16f..268add65b 100644 --- a/doc/language_missings +++ b/doc/language_missings @@ -141,6 +141,8 @@ < wg pre-shared key (optional) < winbind daemon < wireguard +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11w disabled < wlanap 802.11w enforced < wlanap 802.11w optional @@ -217,6 +219,8 @@ < wlanap 802.11ac 20mhz < wlanap 802.11ac 40mhz < wlanap 802.11ac 80mhz +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11agn < wlanap 802.11agn 20mhz < wlanap 802.11agn 40mhz @@ -398,6 +402,8 @@ < wlanap 802.11ac 20mhz < wlanap 802.11ac 40mhz < wlanap 802.11ac 80mhz +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11agn < wlanap 802.11agn 20mhz < wlanap 802.11agn 40mhz @@ -1040,6 +1046,8 @@ < wlanap 802.11ac 20mhz < wlanap 802.11ac 40mhz < wlanap 802.11ac 80mhz +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11agn < wlanap 802.11agn 20mhz < wlanap 802.11agn 40mhz @@ -1754,6 +1762,8 @@ < wlanap 802.11ac 20mhz < wlanap 802.11ac 40mhz < wlanap 802.11ac 80mhz +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11agn < wlanap 802.11agn 20mhz < wlanap 802.11agn 40mhz @@ -2882,6 +2892,8 @@ < wlanap 802.11ac 20mhz < wlanap 802.11ac 40mhz < wlanap 802.11ac 80mhz +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11agn < wlanap 802.11agn 20mhz < wlanap 802.11agn 40mhz @@ -4048,6 +4060,8 @@ < wlanap 802.11ac 20mhz < wlanap 802.11ac 40mhz < wlanap 802.11ac 80mhz +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11agn < wlanap 802.11agn 20mhz < wlanap 802.11agn 40mhz @@ -4591,6 +4605,8 @@ < wlanap 802.11ac 20mhz < wlanap 802.11ac 40mhz < wlanap 802.11ac 80mhz +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11agn < wlanap 802.11agn 20mhz < wlanap 802.11agn 40mhz @@ -4727,6 +4743,8 @@ < wlanap 802.11ac 20mhz < wlanap 802.11ac 40mhz < wlanap 802.11ac 80mhz +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11agn < wlanap 802.11agn 20mhz < wlanap 802.11agn 40mhz @@ -4828,6 +4846,8 @@ < wlanap 802.11ac 20mhz < wlanap 802.11ac 40mhz < wlanap 802.11ac 80mhz +< wlanap 802.11ag +< wlanap 802.11ag 20mhz < wlanap 802.11agn < wlanap 802.11agn 20mhz < wlanap 802.11agn 40mhz diff --git a/html/cgi-bin/wlanap.cgi b/html/cgi-bin/wlanap.cgi index 0d1c5a90b..0c5dad558 100644 --- a/html/cgi-bin/wlanap.cgi +++ b/html/cgi-bin/wlanap.cgi @@ -102,7 +102,7 @@ if ($cgiparams{'ACTION'} eq "$Lang::tr{'save'}") { } # Validate MODE - unless ($cgiparams{'MODE'} =~ m/^(HT|HE|VHT|EHT)(20|40|80|160|320)$/) { + unless ($cgiparams{'MODE'} =~ m/^(|HT|HE|VHT|EHT)(20|40|80|160|320)$/) { $errormessage .= "$Lang::tr{'wlanap invalid mode'}
"; } @@ -343,6 +343,12 @@ print < + + + + diff --git a/langs/en/cgi-bin/en.pl b/langs/en/cgi-bin/en.pl index 79a512498..dda3e8d5b 100644 --- a/langs/en/cgi-bin/en.pl +++ b/langs/en/cgi-bin/en.pl @@ -3202,6 +3202,8 @@ 'wlanap 802.11ac 20mhz' => 'IEEE 802.11ac @ 20 MHz', 'wlanap 802.11ac 40mhz' => 'IEEE 802.11ac @ 40 MHz', 'wlanap 802.11ac 80mhz' => 'IEEE 802.11ac @ 80 MHz', +'wlanap 802.11ag' => 'IEEE 802.11a/g', +'wlanap 802.11ag 20mhz' => 'IEEE802.11a/g @ 20 MHz', 'wlanap 802.11agn' => 'IEEE 802.11an/gn', 'wlanap 802.11agn 20mhz' => 'IEEE 802.11an/gn @ 20 MHz', 'wlanap 802.11agn 40mhz' => 'IEEE 802.11an/gn @ 40 MHz', diff --git a/src/initscripts/packages/hostapd b/src/initscripts/packages/hostapd index 5384badab..9bb6a2120 100644 --- a/src/initscripts/packages/hostapd +++ b/src/initscripts/packages/hostapd @@ -360,6 +360,15 @@ write_config() { # Always enable WMM echo "wmm_enabled=1" + # 802.11n + local enable_n=0 + + case "${MODE}" in + HT*|VHT*|HE*|EHT*) + enable_n=1 + ;; + esac + # 802.11ac local enable_ac=0 local vht_oper_chwidth=0 @@ -507,8 +516,10 @@ write_config() { fi fi - # Always enable 802.11n - echo "ieee80211n=1" + # Enable 802.11n? + if [ "${enable_n}" -eq 1 ]; then + echo "ieee80211n=1" + fi # Set HT capabilities if [ ${#ht_caps[@]} -gt 0 ]; then From patchwork Mon Jan 19 16:21:37 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tremer X-Patchwork-Id: 9407 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail01.haj.ipfire.org", Issuer "R12" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4dvwhP38Nfz3wk2 for ; Mon, 19 Jan 2026 16:21:57 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail02.haj.ipfire.org", Issuer "E8" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4dvwhP2RKwz417 for ; Mon, 19 Jan 2026 16:21:57 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [IPv6:::1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4dvwhP1ckYz2yZf for ; Mon, 19 Jan 2026 16:21:57 +0000 (UTC) X-Original-To: development@lists.ipfire.org Received: from mail01.ipfire.org (mail01.haj.ipfire.org [IPv6:2001:678:b28::25]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (secp384r1 raw public key) server-digest SHA384 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mail01.haj.ipfire.org", Issuer "R12" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4dvwhL2qvbz332H for ; Mon, 19 Jan 2026 16:21:54 +0000 (UTC) Received: from michael.haj.ipfire.org (michael.haj.ipfire.org [172.28.1.242]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "michael.haj.ipfire.org", Issuer "E8" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4dvwhK4kK6z44G; Mon, 19 Jan 2026 16:21:53 +0000 (UTC) Received: by michael.haj.ipfire.org (Postfix, from userid 0) id 4dvwhD3q3tzTgs1; Mon, 19 Jan 2026 16:21:48 +0000 (UTC) From: Michael Tremer To: development@lists.ipfire.org Cc: Michael Tremer Subject: [PATCH 2/5] hostapd: Use the new readhash implementation to read configuration files Date: Mon, 19 Jan 2026 16:21:37 +0000 Message-ID: <20260119162140.3373757-2-michael.tremer@ipfire.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260119162140.3373757-1-michael.tremer@ipfire.org> References: <20260119162140.3373757-1-michael.tremer@ipfire.org> Precedence: list List-Id: List-Subscribe: , List-Unsubscribe: , List-Post: List-Help: Sender: Mail-Followup-To: MIME-Version: 1.0 Signed-off-by: Michael Tremer --- src/initscripts/packages/hostapd | 110 ++++++++++++++++--------------- 1 file changed, 56 insertions(+), 54 deletions(-) diff --git a/src/initscripts/packages/hostapd b/src/initscripts/packages/hostapd index 9bb6a2120..93ddae72f 100644 --- a/src/initscripts/packages/hostapd +++ b/src/initscripts/packages/hostapd @@ -127,9 +127,9 @@ write_config() { local eht_phy_flags=0 # Set some default BAND if none is set - if [ -z "${BAND}" ]; then + if [ -z "${CONFIG["BAND"]}" ]; then # Use 2.4 GHz for 802.11g/n and assume 5 GHz for anything else - case "${HW_MODE}" in + case "${CONFIG["HW_MODE"]}" in gn) BAND="2g" ;; @@ -164,13 +164,13 @@ write_config() { # Check if we are in the right band "* 2412.0 MHz"*) - if [ "${BAND}" = "2g" ]; then + if [ "${CONFIG["BAND"]}" = "2g" ]; then break fi ;; "* 5180.0 MHz"*) - if [ "${BAND}" = "5g" ]; then + if [ "${CONFIG["BAND"]}" = "5g" ]; then break fi ;; @@ -310,18 +310,18 @@ write_config() { done # Set the channel to zero if not set - if [ -z "${CHANNEL}" ]; then - CHANNEL=0 + if [ -z "${CONFIG["CHANNEL"]}" ]; then + CONFIG["CHANNEL"]=0 fi # Translate the old HW_MODE to the newer MODE setting - if [ -z "${MODE}" ]; then - case "${HW_MODE}" in + if [ -z "${CONFIG["MODE"]}" ]; then + case "${CONFIG["HW_MODE"]}" in ac) - MODE="VHT20" + CONFIG["MODE"]="VHT20" ;; an|gn) - MODE="HT20"; + CONFIG["MODE"]="HT20"; ;; esac fi @@ -338,7 +338,7 @@ write_config() { echo "driver=nl80211" # Set the country code - echo "country_code=${COUNTRY}" + echo "country_code=${CONFIG["COUNTRY"]}" echo "country3=0x49" # Enable 802.11d and 802.11h @@ -346,8 +346,8 @@ write_config() { echo "ieee80211h=1" # Set the channel (if chosen) - if [ -n "${CHANNEL}" ]; then - echo "channel=${CHANNEL}" + if [ -n "${CONFIG["CHANNEL"]}" ]; then + echo "channel=${CONFIG["CHANNEL"]}" fi # Always advertise TPC @@ -363,7 +363,7 @@ write_config() { # 802.11n local enable_n=0 - case "${MODE}" in + case "${CONFIG["MODE"]}" in HT*|VHT*|HE*|EHT*) enable_n=1 ;; @@ -374,7 +374,7 @@ write_config() { local vht_oper_chwidth=0 local vht_oper_centr_freq_seg0_idx="" - case "${MODE}" in + case "${CONFIG["MODE"]}" in VHT20|HE20|EHT20) enable_ac=1 ;; @@ -384,13 +384,13 @@ write_config() { enable_ac=1 # Compute the channel segment index - if [ "${CHANNEL}" -gt 0 ]; then - case "$(( (${CHANNEL} / 4) % 2 ))" in + if [ "${CONFIG["CHANNEL"]}" -gt 0 ]; then + case "$(( (${CONFIG["CHANNEL"]} / 4) % 2 ))" in 0) - vht_oper_centr_freq_seg0_idx="$(( ${CHANNEL} - 2 ))" + vht_oper_centr_freq_seg0_idx="$(( ${CONFIG["CHANNEL"]} - 2 ))" ;; 1) - vht_oper_centr_freq_seg0_idx="$(( ${CHANNEL} + 2 ))" + vht_oper_centr_freq_seg0_idx="$(( ${CONFIG["CHANNEL"]} + 2 ))" ;; esac fi @@ -402,19 +402,19 @@ write_config() { vht_oper_chwidth=1 # Compute the channel segment index - if [ "${CHANNEL}" -gt 0 ]; then - case "$(( (${CHANNEL} / 4) % 4 ))" in + if [ "${CONFIG["CHANNEL"]}" -gt 0 ]; then + case "$(( (${CONFIG["CHANNEL"]} / 4) % 4 ))" in 0) - vht_oper_centr_freq_seg0_idx="$(( ${CHANNEL} - 6 ))" + vht_oper_centr_freq_seg0_idx="$(( ${CONFIG["CHANNEL"]} - 6 ))" ;; 1) - vht_oper_centr_freq_seg0_idx="$(( ${CHANNEL} + 6 ))" + vht_oper_centr_freq_seg0_idx="$(( ${CONFIG["CHANNEL"]} + 6 ))" ;; 2) - vht_oper_centr_freq_seg0_idx="$(( ${CHANNEL} + 2 ))" + vht_oper_centr_freq_seg0_idx="$(( ${CONFIG["CHANNEL"]} + 2 ))" ;; 3) - vht_oper_centr_freq_seg0_idx="$(( ${CHANNEL} - 2 ))" + vht_oper_centr_freq_seg0_idx="$(( ${CONFIG["CHANNEL"]} - 2 ))" ;; esac fi @@ -426,8 +426,8 @@ write_config() { vht_oper_chwidth=2 # Compute the channel segment index - if [ "${CHANNEL}" -gt 0 ]; then - case "${CHANNEL}" in + if [ "${CONFIG["CHANNEL"]}" -gt 0 ]; then + case "${CONFIG["CHANNEL"]}" in 36|40|44|48|52|56|60|64) vht_oper_centr_freq_seg0_idx=50 ;; @@ -447,7 +447,7 @@ write_config() { local he_oper_chwidth="${vht_oper_chwidth}" local he_oper_centr_freq_seg0_idx="${vht_oper_centr_freq_seg0_idx}" - case "${MODE}" in + case "${CONFIG["MODE"]}" in HE*|EHT*) enable_ax=1 ;; @@ -458,14 +458,14 @@ write_config() { local eht_oper_chwidth="${he_oper_chwidth}" local eht_oper_centr_freq_seg0_idx="${he_oper_centr_freq_seg0_idx}" - case "${MODE}" in + case "${CONFIG["MODE"]}" in EHT*) enable_be=1 ;; esac # Set hardware mode - case "${BAND}" in + case "${CONFIG["BAND"]}" in 5g) echo "hw_mode=a" ;; @@ -527,15 +527,16 @@ write_config() { fi # Configure antennas - if [ -z "${RX_ANTENNAS}" ]; then - RX_ANTENNAS="0xffffffff" + if [ -z "${CONFIG["RX_ANTENNAS"]}" ]; then + CONFIG["RX_ANTENNAS"]="0xffffffff" fi - if [ -z "${TX_ANTENNAS}" ]; then - TX_ANTENNAS="0xffffffff" + if [ -z "${CONFIG["TX_ANTENNAS"]}" ]; then + CONFIG["TX_ANTENNAS"]="0xffffffff" fi # Set the antennas to use - iw phy "${phy}" set antenna "${TX_ANTENNAS}" "${RX_ANTENNAS}" &>/dev/null + iw phy "${phy}" set antenna \ + "${CONFIG["TX_ANTENNAS"]}" "${CONFIG["RX_ANTENNAS"]}" &>/dev/null # Enable authentication echo "auth_algs=1" @@ -548,28 +549,28 @@ write_config() { echo "disassoc_low_ack=1" # SSID - echo "ssid2=\"${SSID}\"" + echo "ssid2=\"${CONFIG["SSID"]}\"" echo "utf8_ssid=1" # Hide the SSID? - if [ "${HIDESSID}" = "on" ]; then + if [ "${CONFIG["HIDESSID"]}" = "on" ]; then echo "ignore_broadcast_ssid=2" fi # Isolate clients? - if [ "${CLIENTISOLATION}" = "on" ]; then + if [ "${CONFIG["CLIENTISOLATION"]}" = "on" ]; then echo "ap_isolate=1" fi # Disable neighbour scan? - if [ "${NOSCAN}" = "on" ]; then + if [ "${CONFIG["NOSCAN"]}" = "on" ]; then echo "noscan=1" else echo "noscan=0" fi # Management Frame Protection (802.11w) - case "${IEEE80211W}" in + case "${CONFIG["IEEE80211W"]}" in on) echo "ieee80211w=2" @@ -595,35 +596,35 @@ write_config() { esac # Encryption - case "${ENC}" in + case "${CONFIG["ENC"]}" in wpa3) echo "wpa=2" - echo "wpa_passphrase=${PWD}" + echo "wpa_passphrase=${CONFIG["PWD"]}" echo "wpa_key_mgmt=SAE" echo "rsn_pairwise=CCMP" ;; wpa2+3) echo "wpa=2" - echo "wpa_passphrase=${PWD}" + echo "wpa_passphrase=${CONFIG["PWD"]}" echo "wpa_key_mgmt=WPA-PSK WPA-PSK-SHA256 SAE" echo "rsn_pairwise=CCMP" ;; wpa2) echo "wpa=2" - echo "wpa_passphrase=${PWD}" + echo "wpa_passphrase=${CONFIG["PWD"]}" echo "wpa_key_mgmt=WPA-PSK WPA-PSK-SHA256" echo "rsn_pairwise=CCMP" ;; wpa1+2) echo "wpa=3" - echo "wpa_passphrase=${PWD}" + echo "wpa_passphrase=${CONFIG["PWD"]}" echo "wpa_key_mgmt=WPA-PSK WPA-PSK-SHA256" echo "wpa_pairwise=TKIP" echo "rsn_pairwise=CCMP" ;; wpa1) echo "wpa=1" - echo "wpa_passphrase=${PWD}" + echo "wpa_passphrase=${CONFIG["PWD"]}" echo "wpa_key_mgmt=WPA-PSK WPA-PSK-SHA256" echo "wpa_pairwise=TKIP" ;; @@ -631,7 +632,7 @@ write_config() { # Multi-Band Operation - prefer WiFi over mobile networks # This feature requires Management Frame Protection - case "${IEEE80211W}" in + case "${CONFIG["IEEE80211W"]}" in on|optional) echo "mbo=1" echo "mbo_cell_data_conn_pref=1" @@ -665,13 +666,14 @@ write_config() { return 0 } -eval $(/usr/local/bin/readhash /var/ipfire/wlanap/settings) +# Read the configuration +readhash CONFIG "/var/ipfire/wlanap/settings" case "${1}" in start) - interface="$(find_interface "${INTERFACE}")" + interface="$(find_interface "${CONFIG["INTERFACE"]}")" if [ -z "${interface}" ]; then - boot_mesg "Could not find interface with address ${INTERFACE} for wireless access point" + boot_mesg "Could not find interface with address ${CONFIG["INTERFACE"]} for wireless access point" echo_failure exit 1 fi @@ -693,8 +695,8 @@ case "${1}" in ) # Enable debugging? - if [ -n "${DEBUG}" ] && [[ "${DEBUG}" =~ ^[0-9]+$ ]]; then - for (( i = 0; i < DEBUG; i++ )); do + if [ -n "${CONFIG["DEBUG"]}" ] && [[ "${CONFIG["DEBUG"]}" =~ ^[0-9]+$ ]]; then + for (( i = 0; i < CONFIG["DEBUG"]; i++ )); do args+=( "-d" ) done fi @@ -720,9 +722,9 @@ case "${1}" in ;; show-config) - interface="$(find_interface "${INTERFACE}")" + interface="$(find_interface "${CONFIG["INTERFACE"]}")" if [ -z "${interface}" ]; then - boot_mesg "Could not find interface with address ${INTERFACE} for wireless access point" + boot_mesg "Could not find interface with address ${CONFIG["INTERFACE"]} for wireless access point" echo_failure exit 1 fi From patchwork Mon Jan 19 16:21:38 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tremer X-Patchwork-Id: 9409 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail01.haj.ipfire.org", Issuer "R12" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4dvwhV0Dcyz3wk2 for ; Mon, 19 Jan 2026 16:22:02 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail02.haj.ipfire.org", Issuer "E8" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4dvwhT61JXz43v for ; Mon, 19 Jan 2026 16:22:01 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [IPv6:::1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4dvwhT58H1z32fr for ; Mon, 19 Jan 2026 16:22:01 +0000 (UTC) X-Original-To: development@lists.ipfire.org Received: from mail01.ipfire.org (mail01.haj.ipfire.org [IPv6:2001:678:b28::25]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail01.haj.ipfire.org", Issuer "R12" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4dvwhQ6gsrz2yXJ for ; Mon, 19 Jan 2026 16:21:58 +0000 (UTC) Received: from michael.haj.ipfire.org (michael.haj.ipfire.org [172.28.1.242]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "michael.haj.ipfire.org", Issuer "E8" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4dvwhK50VVz45Y; Mon, 19 Jan 2026 16:21:53 +0000 (UTC) Received: by michael.haj.ipfire.org (Postfix, from userid 0) id 4dvwhD42X3zTj3v; Mon, 19 Jan 2026 16:21:48 +0000 (UTC) From: Michael Tremer To: development@lists.ipfire.org Cc: Michael Tremer Subject: [PATCH 3/5] readhash: Fix the quote check Date: Mon, 19 Jan 2026 16:21:38 +0000 Message-ID: <20260119162140.3373757-3-michael.tremer@ipfire.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260119162140.3373757-1-michael.tremer@ipfire.org> References: <20260119162140.3373757-1-michael.tremer@ipfire.org> Precedence: list List-Id: List-Subscribe: , List-Unsubscribe: , List-Post: List-Help: Sender: Mail-Followup-To: MIME-Version: 1.0 The single quotes changed bash's behaviour to interpret the * character literally, but this is not what we wanted here. We need to escape the single quotes. Signed-off-by: Michael Tremer --- src/initscripts/system/functions | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/initscripts/system/functions b/src/initscripts/system/functions index c4b7cb39e..757912eab 100644 --- a/src/initscripts/system/functions +++ b/src/initscripts/system/functions @@ -930,7 +930,7 @@ readhash() { # strip leading and trailing single quotes case "${val}" in - '*') + \'*\') val="${val#\'}" val="${val%\'}" ;; From patchwork Mon Jan 19 16:21:39 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tremer X-Patchwork-Id: 9406 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail01.haj.ipfire.org", Issuer "R12" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4dvwhN6chXz3wjW for ; Mon, 19 Jan 2026 16:21:56 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail02.haj.ipfire.org", Issuer "E8" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4dvwhN5k8zz3v3 for ; Mon, 19 Jan 2026 16:21:56 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [IPv6:::1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4dvwhN4WqBz2yZf for ; Mon, 19 Jan 2026 16:21:56 +0000 (UTC) X-Original-To: development@lists.ipfire.org Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail01.haj.ipfire.org", Issuer "R12" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4dvwhK69ZHz331X for ; Mon, 19 Jan 2026 16:21:53 +0000 (UTC) Received: from michael.haj.ipfire.org (michael.haj.ipfire.org [172.28.1.242]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "michael.haj.ipfire.org", Issuer "E8" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4dvwhK5BKkz440; Mon, 19 Jan 2026 16:21:53 +0000 (UTC) Received: by michael.haj.ipfire.org (Postfix, from userid 0) id 4dvwhD4CV3zTj6V; Mon, 19 Jan 2026 16:21:48 +0000 (UTC) From: Michael Tremer To: development@lists.ipfire.org Cc: Michael Tremer Subject: [PATCH 4/5] initscripts: functions: Permit ! in the value of key/value files Date: Mon, 19 Jan 2026 16:21:39 +0000 Message-ID: <20260119162140.3373757-4-michael.tremer@ipfire.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260119162140.3373757-1-michael.tremer@ipfire.org> References: <20260119162140.3373757-1-michael.tremer@ipfire.org> Precedence: list List-Id: List-Subscribe: , List-Unsubscribe: , List-Post: List-Help: Sender: Mail-Followup-To: MIME-Version: 1.0 Signed-off-by: Michael Tremer --- src/initscripts/system/functions | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/initscripts/system/functions b/src/initscripts/system/functions index 757912eab..c0c40e986 100644 --- a/src/initscripts/system/functions +++ b/src/initscripts/system/functions @@ -923,7 +923,7 @@ readhash() { local val="${line#*=}" # Skip lines with invalid values - if ! [[ ${val} =~ ^[\'][\ A-Za-z0-9=/,.:%_@#+-]*[\']$ ]] && ! [[ ${val} =~ ^[A-Za-z0-9=/,.:%_@#+-]*$ ]]; then + if ! [[ ${val} =~ ^[\'][\ A-Za-z0-9=/,.:%_@#+-\\!]*[\']$ ]] && ! [[ ${val} =~ ^[A-Za-z0-9=/,.:%_@#+-\\!]*$ ]]; then echo "Invalid value '${val}' for key '${key}'" >&2 continue fi From patchwork Mon Jan 19 16:21:40 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Michael Tremer X-Patchwork-Id: 9408 Return-Path: Received: from mail01.ipfire.org (mail01.haj.ipfire.org [172.28.1.202]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail01.haj.ipfire.org", Issuer "R12" (verified OK)) by web04.haj.ipfire.org (Postfix) with ESMTPS id 4dvwhT6jQYz3wjW for ; Mon, 19 Jan 2026 16:22:01 +0000 (UTC) Received: from mail02.haj.ipfire.org (mail02.haj.ipfire.org [172.28.1.201]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail02.haj.ipfire.org", Issuer "E8" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4dvwhT5pw0z41n for ; Mon, 19 Jan 2026 16:22:01 +0000 (UTC) Received: from mail02.haj.ipfire.org (localhost [IPv6:::1]) by mail02.haj.ipfire.org (Postfix) with ESMTP id 4dvwhT4xk3z2yZf for ; Mon, 19 Jan 2026 16:22:01 +0000 (UTC) X-Original-To: development@lists.ipfire.org Received: from mail01.ipfire.org (mail01.haj.ipfire.org [IPv6:2001:678:b28::25]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "mail01.haj.ipfire.org", Issuer "R12" (verified OK)) by mail02.haj.ipfire.org (Postfix) with ESMTPS id 4dvwhQ6h7jz32MW for ; Mon, 19 Jan 2026 16:21:58 +0000 (UTC) Received: from michael.haj.ipfire.org (michael.haj.ipfire.org [172.28.1.242]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519) (Client CN "michael.haj.ipfire.org", Issuer "E8" (verified OK)) by mail01.ipfire.org (Postfix) with ESMTPS id 4dvwhK5QFDz48C; Mon, 19 Jan 2026 16:21:53 +0000 (UTC) Received: by michael.haj.ipfire.org (Postfix, from userid 0) id 4dvwhD4NdxzTj75; Mon, 19 Jan 2026 16:21:48 +0000 (UTC) From: Michael Tremer To: development@lists.ipfire.org Cc: Michael Tremer Subject: [PATCH 5/5] hostapd: Bump package version Date: Mon, 19 Jan 2026 16:21:40 +0000 Message-ID: <20260119162140.3373757-5-michael.tremer@ipfire.org> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20260119162140.3373757-1-michael.tremer@ipfire.org> References: <20260119162140.3373757-1-michael.tremer@ipfire.org> Precedence: list List-Id: List-Subscribe: , List-Unsubscribe: , List-Post: List-Help: Sender: Mail-Followup-To: MIME-Version: 1.0 Signed-off-by: Michael Tremer --- lfs/hostapd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lfs/hostapd b/lfs/hostapd index 1bb77a5e8..27c6006e4 100644 --- a/lfs/hostapd +++ b/lfs/hostapd @@ -33,7 +33,7 @@ DL_FROM = $(URL_IPFIRE) DIR_APP = $(DIR_SRC)/$(THISAPP) TARGET = $(DIR_INFO)/$(THISAPP) PROG = hostapd -PAK_VER = 71 +PAK_VER = 72 DEPS =