fix(network): show missing WPA3-only networks
This commit is contained in:
parent
1139e34928
commit
f5f6d3e8f0
3 changed files with 11 additions and 11 deletions
|
|
@ -447,7 +447,7 @@ impl Page {
|
||||||
let escaped_ssid = escape_wifi_qr_string(ssid.as_ref());
|
let escaped_ssid = escape_wifi_qr_string(ssid.as_ref());
|
||||||
let qr_string = if let Some(ref pass) = password {
|
let qr_string = if let Some(ref pass) = password {
|
||||||
let security = match security_type {
|
let security = match security_type {
|
||||||
NetworkType::PSK => "WPA",
|
NetworkType::PskOrSae => "WPA",
|
||||||
NetworkType::EAP => "WPA",
|
NetworkType::EAP => "WPA",
|
||||||
NetworkType::Open => "",
|
NetworkType::Open => "",
|
||||||
};
|
};
|
||||||
|
|
@ -921,7 +921,7 @@ fn devices_view() -> Section<crate::pages::Message> {
|
||||||
}))
|
}))
|
||||||
.any(|known| known == network.ssid.as_ref());
|
.any(|known| known == network.ssid.as_ref());
|
||||||
|
|
||||||
let is_encrypted = network.network_type != NetworkType::Open;
|
let needs_password = network.network_type != NetworkType::Open;
|
||||||
|
|
||||||
let (connect_txt, connect_msg) = if is_connected {
|
let (connect_txt, connect_msg) = if is_connected {
|
||||||
(§ion.descriptions[connected_txt], None)
|
(§ion.descriptions[connected_txt], None)
|
||||||
|
|
@ -930,7 +930,7 @@ fn devices_view() -> Section<crate::pages::Message> {
|
||||||
} else {
|
} else {
|
||||||
(
|
(
|
||||||
§ion.descriptions[connect_txt],
|
§ion.descriptions[connect_txt],
|
||||||
Some(if is_known || !is_encrypted {
|
Some(if is_known || !needs_password {
|
||||||
Message::Connect(network.ssid.clone())
|
Message::Connect(network.ssid.clone())
|
||||||
} else {
|
} else {
|
||||||
Message::PasswordRequest(network.ssid.clone())
|
Message::PasswordRequest(network.ssid.clone())
|
||||||
|
|
@ -941,7 +941,7 @@ fn devices_view() -> Section<crate::pages::Message> {
|
||||||
let identifier = widget::row::with_capacity(3)
|
let identifier = widget::row::with_capacity(3)
|
||||||
.push(widget::icon::from_name(wifi_icon(network.strength)))
|
.push(widget::icon::from_name(wifi_icon(network.strength)))
|
||||||
.push_maybe(
|
.push_maybe(
|
||||||
is_encrypted
|
needs_password
|
||||||
.then(|| widget::icon::from_name("connection-secure-symbolic")),
|
.then(|| widget::icon::from_name("connection-secure-symbolic")),
|
||||||
)
|
)
|
||||||
.push(
|
.push(
|
||||||
|
|
|
||||||
|
|
@ -56,9 +56,9 @@ pub async fn handle_wireless_device(
|
||||||
};
|
};
|
||||||
let network_type = if flags.intersects(ApSecurityFlags::KEY_MGMT_802_1X) {
|
let network_type = if flags.intersects(ApSecurityFlags::KEY_MGMT_802_1X) {
|
||||||
NetworkType::EAP
|
NetworkType::EAP
|
||||||
} else if flags.intersects(ApSecurityFlags::KEY_MGMTPSK) {
|
} else if flags.intersects(ApSecurityFlags::KEY_MGMTPSK | ApSecurityFlags::KEY_MGMT_SAE) {
|
||||||
NetworkType::PSK
|
NetworkType::PskOrSae
|
||||||
} else if flags.is_empty() {
|
} else if flags.intersects(ApSecurityFlags::KEY_MGMT_OWE) || flags.is_empty() {
|
||||||
NetworkType::Open
|
NetworkType::Open
|
||||||
} else {
|
} else {
|
||||||
continue;
|
continue;
|
||||||
|
|
@ -111,6 +111,6 @@ pub struct AccessPoint {
|
||||||
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
||||||
pub enum NetworkType {
|
pub enum NetworkType {
|
||||||
Open,
|
Open,
|
||||||
PSK,
|
PskOrSae,
|
||||||
EAP,
|
EAP,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -311,7 +311,7 @@ async fn start_listening(
|
||||||
if identity.is_some() {
|
if identity.is_some() {
|
||||||
NetworkType::EAP
|
NetworkType::EAP
|
||||||
} else {
|
} else {
|
||||||
NetworkType::PSK
|
NetworkType::PskOrSae
|
||||||
},
|
},
|
||||||
interface.clone(),
|
interface.clone(),
|
||||||
)
|
)
|
||||||
|
|
@ -490,12 +490,12 @@ async fn start_listening(
|
||||||
}
|
}
|
||||||
t => {
|
t => {
|
||||||
let (tx, rx) = tokio::sync::oneshot::channel();
|
let (tx, rx) = tokio::sync::oneshot::channel();
|
||||||
let setting_name = if matches!(t, NetworkType::PSK) {
|
let setting_name = if matches!(t, NetworkType::PskOrSae) {
|
||||||
"802-11-wireless-security"
|
"802-11-wireless-security"
|
||||||
} else {
|
} else {
|
||||||
"802-1x"
|
"802-1x"
|
||||||
};
|
};
|
||||||
let pw_key = if matches!(t, NetworkType::PSK) {
|
let pw_key = if matches!(t, NetworkType::PskOrSae) {
|
||||||
"psk"
|
"psk"
|
||||||
} else {
|
} else {
|
||||||
"password"
|
"password"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue