diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-01-12 14:18:24 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-12 14:18:24 +0900 |
commit | e2645ca619c670517c7268f43bf084f7e8435833 (patch) | |
tree | 9b7adeb210e9098fd0ea77309f05cf21b01c2090 /src/shared | |
parent | 5adfb06d5582adf09421d189b5e2fc6b93fa23e8 (diff) | |
parent | a66a402da471f6230ab8674fd2c1df6d918773b5 (diff) | |
download | systemd-e2645ca619c670517c7268f43bf084f7e8435833.tar.gz |
Merge pull request #18204 from yuwata/wifi-util-fix-18059
wifi-util: do not ignore wifi iftype when the interface does not have SSID
Diffstat (limited to 'src/shared')
-rw-r--r-- | src/shared/wifi-util.c | 18 | ||||
-rw-r--r-- | src/shared/wifi-util.h | 3 |
2 files changed, 10 insertions, 11 deletions
diff --git a/src/shared/wifi-util.c b/src/shared/wifi-util.c index ae5cecc25d..2ac8846004 100644 --- a/src/shared/wifi-util.c +++ b/src/shared/wifi-util.c @@ -1,12 +1,6 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ -#include <net/ethernet.h> -#include <linux/nl80211.h> - -#include "sd-bus.h" - #include "log.h" -#include "netlink-util.h" #include "wifi-util.h" int wifi_get_interface(sd_netlink *genl, int ifindex, enum nl80211_iftype *iftype, char **ssid) { @@ -35,8 +29,10 @@ int wifi_get_interface(sd_netlink *genl, int ifindex, enum nl80211_iftype *iftyp } if (r < 0) return log_debug_errno(r, "Failed to request information about wifi interface %d: %m", ifindex); - if (!reply) + if (!reply) { + log_debug_errno(r, "No reply received to request for information about wifi interface %d, ignoring.", ifindex); goto nodata; + } r = sd_netlink_message_get_errno(reply); if (r < 0) @@ -62,8 +58,8 @@ int wifi_get_interface(sd_netlink *genl, int ifindex, enum nl80211_iftype *iftyp if (ssid) { r = sd_netlink_message_read_string_strdup(reply, NL80211_ATTR_SSID, ssid); if (r == -ENODATA) - goto nodata; - if (r < 0) + *ssid = NULL; + else if (r < 0) return log_debug_errno(r, "Failed to get NL80211_ATTR_SSID attribute: %m"); } @@ -101,8 +97,10 @@ int wifi_get_station(sd_netlink *genl, int ifindex, struct ether_addr *bssid) { r = sd_netlink_call(genl, m, 0, &reply); if (r < 0) return log_debug_errno(r, "Failed to request information about wifi station: %m"); - if (!reply) + if (!reply) { + log_debug_errno(r, "No reply received to request for information about wifi station, ignoring."); goto nodata; + } r = sd_netlink_message_get_errno(reply); if (r < 0) diff --git a/src/shared/wifi-util.h b/src/shared/wifi-util.h index 01b0c3c635..0ce41372e2 100644 --- a/src/shared/wifi-util.h +++ b/src/shared/wifi-util.h @@ -3,8 +3,9 @@ #pragma once #include <linux/nl80211.h> +#include <net/ethernet.h> -#include "netlink-util.h" +#include "sd-netlink.h" int wifi_get_interface(sd_netlink *genl, int ifindex, enum nl80211_iftype *iftype, char **ssid); int wifi_get_station(sd_netlink *genl, int ifindex, struct ether_addr *bssid); |