diff options
author | Andrew Zaborowski <andrew.zaborowski@intel.com> | 2020-11-17 16:17:13 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2020-11-19 13:38:06 +0100 |
commit | e5a2520069c21a533554f493db11af072eb56071 (patch) | |
tree | 5e881fdd6a04d3c5162944514a51526234b53f9b /src/platform/nm-linux-platform.c | |
parent | f37db2c2a56a7b3f68203f0c4f09eb197bf444bf (diff) | |
download | NetworkManager-e5a2520069c21a533554f493db11af072eb56071.tar.gz |
platform: Add a wifi_get_station utility
Merge nm_platform_wifi_get_bssid, nm_platform_wifi_get_quality,
nm_platform_wifi_get_rate into one utility, nm_platform_wifi_get_station
that uses the single NL80211_CMD_GET_STATION command dump when the
nl80211 driver is used. With wext each function mapped to one ioctl
while with nl80211 all three can be obtained with one netlink command.
The new function should use the minimum number of calls with either
driver.
Diffstat (limited to 'src/platform/nm-linux-platform.c')
-rw-r--r-- | src/platform/nm-linux-platform.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/platform/nm-linux-platform.c b/src/platform/nm-linux-platform.c index b377c85e7a..5f8ca938ae 100644 --- a/src/platform/nm-linux-platform.c +++ b/src/platform/nm-linux-platform.c @@ -8309,6 +8309,17 @@ wifi_get_rate(NMPlatform *platform, int ifindex) return nm_wifi_utils_get_rate(wifi_data); } +static gboolean +wifi_get_station(NMPlatform *platform, + int ifindex, + guint8 * out_bssid, + int * out_quality, + guint32 * out_rate) +{ + WIFI_GET_WIFI_DATA_NETNS(wifi_data, platform, ifindex, FALSE); + return nm_wifi_utils_get_station(wifi_data, out_bssid, out_quality, out_rate); +} + static NM80211Mode wifi_get_mode(NMPlatform *platform, int ifindex) { @@ -9673,6 +9684,7 @@ nm_linux_platform_class_init(NMLinuxPlatformClass *klass) platform_class->wifi_get_frequency = wifi_get_frequency; platform_class->wifi_get_quality = wifi_get_quality; platform_class->wifi_get_rate = wifi_get_rate; + platform_class->wifi_get_station = wifi_get_station; platform_class->wifi_get_mode = wifi_get_mode; platform_class->wifi_set_mode = wifi_set_mode; platform_class->wifi_set_powersave = wifi_set_powersave; |