diff options
author | Kevin Daudt <kdaudt@alpinelinux.org> | 2023-01-28 19:25:41 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2023-01-30 19:23:16 +0000 |
commit | 6c9955efa34ebd415d7a490c893264427b249757 (patch) | |
tree | b335afd0836afe3639dda510af0d0fd64e1e116d /setup-interfaces.in | |
parent | b527b1b2eea9a9ed11a11dcb8c50fb0a28d36120 (diff) | |
download | alpine-conf-6c9955efa34ebd415d7a490c893264427b249757.zip |
setup-interfaces: find essids when SSID List capability present
When a essid has the 'SSID List' extended capibility, the `find_essids`
function will not return that ssid. That's because the `$1 ~ /SSID/` awk
pattern will match that line. The ssid variable then is set to an empty
value because there is no `:` (field separate) in that line, so `$2` is
empty.
The terminator of the statemachine then skips this essid, because it
checks if the `ssid` variable is not empty.
We can fix this by making sure the field ends with `SSID`, which is not
the case with the `SSID List` line.
Partial output of `iw dev wlan0 scan`:
```
Extended capabilities:
* Extended Channel Switching
* TFS
* WNM-Sleep Mode
* TIM Broadcast
* BSS Transition
* SSID List
* Operating Mode Notification
* 6
* Max Number Of MSDUs In A-MSDU is unlimited
```
Reported-by: invoked
Fixes: #10546
Diffstat (limited to 'setup-interfaces.in')
-rw-r--r-- | setup-interfaces.in | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/setup-interfaces.in b/setup-interfaces.in index a5cc9ed..6ffcdd5 100644 --- a/setup-interfaces.in +++ b/setup-interfaces.in @@ -124,7 +124,7 @@ find_essids() { $MOCK ip link set dev "$iface" up (iw dev wlan0 scan; echo BSS) | awk -F": " ' /^BSS/ { if (ssid) { print ssid "/" auth }; ssid=""; auth="" } - $1 ~ /SSID/ { ssid=$2 } + $1 ~ /SSID$/ { ssid=$2 } $1 ~ /Authentication suites/ { auth=$2 }' \ | grep -E -v '(802.1x|\\x00)' | sort -u >"$essids_list" if [ -s "$essids_list" ]; then |