summaryrefslogtreecommitdiff
path: root/src/shared
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2021-01-12 14:18:24 +0900
committerGitHub <noreply@github.com>2021-01-12 14:18:24 +0900
commite2645ca619c670517c7268f43bf084f7e8435833 (patch)
tree9b7adeb210e9098fd0ea77309f05cf21b01c2090 /src/shared
parent5adfb06d5582adf09421d189b5e2fc6b93fa23e8 (diff)
parenta66a402da471f6230ab8674fd2c1df6d918773b5 (diff)
downloadsystemd-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.c18
-rw-r--r--src/shared/wifi-util.h3
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);