From d59f8cfa8e76079bf99a2fcc8e7ce00c0724c4bd Mon Sep 17 00:00:00 2001
From: Jo-Philipp Wich <jow@openwrt.org>
Date: Sun, 12 May 2013 01:12:56 +0000
Subject: [PATCH] iwinfo: only consider joined bss when finding current
 operating frequency, fixes spurious misreporting of frequencies in ad-hoc
 mode

SVN-Revision: 36604
---
 package/network/utils/iwinfo/Makefile             | 2 +-
 package/network/utils/iwinfo/src/iwinfo_nl80211.c | 3 ++-
 2 files changed, 3 insertions(+), 2 deletions(-)

diff --git a/package/network/utils/iwinfo/Makefile b/package/network/utils/iwinfo/Makefile
index e0090e0be5..018832fffc 100644
--- a/package/network/utils/iwinfo/Makefile
+++ b/package/network/utils/iwinfo/Makefile
@@ -7,7 +7,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libiwinfo
-PKG_RELEASE:=44
+PKG_RELEASE:=45
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 PKG_CONFIG_DEPENDS := \
diff --git a/package/network/utils/iwinfo/src/iwinfo_nl80211.c b/package/network/utils/iwinfo/src/iwinfo_nl80211.c
index dd619e2d6f..700410939d 100644
--- a/package/network/utils/iwinfo/src/iwinfo_nl80211.c
+++ b/package/network/utils/iwinfo/src/iwinfo_nl80211.c
@@ -918,13 +918,14 @@ static int nl80211_get_frequency_scan_cb(struct nl_msg *msg, void *arg)
 
 	static struct nla_policy bss_policy[NL80211_BSS_MAX + 1] = {
 		[NL80211_BSS_FREQUENCY] = { .type = NLA_U32 },
+		[NL80211_BSS_STATUS]    = { .type = NLA_U32 },
 	};
 
 	if (attr[NL80211_ATTR_BSS] &&
 	    !nla_parse_nested(binfo, NL80211_BSS_MAX,
 	                      attr[NL80211_ATTR_BSS], bss_policy))
 	{
-		if (binfo[NL80211_BSS_FREQUENCY])
+		if (binfo[NL80211_BSS_STATUS] && binfo[NL80211_BSS_FREQUENCY])
 			*freq = nla_get_u32(binfo[NL80211_BSS_FREQUENCY]);
 	}
 
-- 
GitLab