summaryrefslogtreecommitdiff
path: root/src/network/networkd-wifi.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/network/networkd-wifi.c')
-rw-r--r--src/network/networkd-wifi.c20
1 files changed, 11 insertions, 9 deletions
diff --git a/src/network/networkd-wifi.c b/src/network/networkd-wifi.c
index 877c742280..14a8687458 100644
--- a/src/network/networkd-wifi.c
+++ b/src/network/networkd-wifi.c
@@ -16,7 +16,7 @@
int wifi_get_info(Link *link) {
const char *type;
- int r, s;
+ int r, s = 0;
assert(link);
@@ -33,24 +33,26 @@ int wifi_get_info(Link *link) {
return 0;
_cleanup_free_ char *ssid = NULL;
- r = wifi_get_ssid(link->manager->genl, link->ifindex, &ssid);
+ r = wifi_get_interface(link->manager->genl, link->ifindex, &link->wlan_iftype, &ssid);
if (r < 0)
return r;
if (r > 0 && streq_ptr(link->ssid, ssid))
r = 0;
free_and_replace(link->ssid, ssid);
- struct ether_addr old_bssid = link->bssid;
- s = wifi_get_bssid(link->manager->genl, link->ifindex, &link->bssid);
- if (s < 0)
- return s;
- if (s > 0 && memcmp(&old_bssid, &link->bssid, sizeof old_bssid) == 0)
- s = 0;
+ if (link->wlan_iftype == NL80211_IFTYPE_STATION) {
+ struct ether_addr old_bssid = link->bssid;
+ s = wifi_get_station(link->manager->genl, link->ifindex, &link->bssid);
+ if (s < 0)
+ return s;
+ if (s > 0 && memcmp(&old_bssid, &link->bssid, sizeof old_bssid) == 0)
+ s = 0;
+ }
if (r > 0 || s > 0) {
char buf[ETHER_ADDR_TO_STRING_MAX];
- if (link->ssid)
+ if (link->wlan_iftype == NL80211_IFTYPE_STATION && link->ssid)
log_link_info(link, "Connected WiFi access point: %s (%s)",
link->ssid, ether_addr_to_string(&link->bssid, buf));
return 1;