libiwinfo: ensure that country names are ascii, return txpower list even when no...
authorJo-Philipp Wich <jow@openwrt.org>
Tue, 12 Oct 2010 02:27:13 +0000 (02:27 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Tue, 12 Oct 2010 02:27:13 +0000 (02:27 +0000)
contrib/package/iwinfo/Makefile
contrib/package/iwinfo/src/iwinfo_lualib.c
contrib/package/iwinfo/src/iwinfo_nl80211.c

index 0f24945..82c5482 100644 (file)
@@ -7,7 +7,7 @@
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libiwinfo
 include $(TOPDIR)/rules.mk
 
 PKG_NAME:=libiwinfo
-PKG_RELEASE:=4
+PKG_RELEASE:=5
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 
 
 PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
 
@@ -58,4 +58,3 @@ define Package/libiwinfo/install
 endef
 
 $(eval $(call BuildPackage,libiwinfo))
 endef
 
 $(eval $(call BuildPackage,libiwinfo))
-
index 29706e3..1377ffe 100644 (file)
@@ -51,7 +51,7 @@ struct iwinfo_iso3166_label ISO3166_Names[] = {
        { 0x4248 /* BH */, "Bahrain" },
        { 0x4249 /* BI */, "Burundi" },
        { 0x424A /* BJ */, "Benin" },
        { 0x4248 /* BH */, "Bahrain" },
        { 0x4249 /* BI */, "Burundi" },
        { 0x424A /* BJ */, "Benin" },
-       { 0x424C /* BL */, "Saint Barthélemy" },
+       { 0x424C /* BL */, "Saint Barthelemy" },
        { 0x424D /* BM */, "Bermuda" },
        { 0x424E /* BN */, "Brunei Darussalam" },
        { 0x424F /* BO */, "Bolivia" },
        { 0x424D /* BM */, "Bermuda" },
        { 0x424E /* BN */, "Brunei Darussalam" },
        { 0x424F /* BO */, "Bolivia" },
index 7f27e25..7d2a96a 100644 (file)
@@ -131,14 +131,14 @@ static int nl80211_msg_response(struct nl_msg *msg, void *arg)
 
 static void nl80211_free(struct nl80211_msg_conveyor *cv)
 {
 
 static void nl80211_free(struct nl80211_msg_conveyor *cv)
 {
-       if( cv && cv->cb )
-               nl_cb_put(cv->cb);
-
-       if( cv && cv->msg )
-               nlmsg_free(cv->msg);
-
        if( cv )
        {
        if( cv )
        {
+               if( cv->cb )
+                       nl_cb_put(cv->cb);
+
+               if( cv->msg )
+                       nlmsg_free(cv->msg);
+
                cv->cb  = NULL;
                cv->msg = NULL;
        }
                cv->cb  = NULL;
                cv->msg = NULL;
        }
@@ -924,7 +924,7 @@ int nl80211_get_txpwrlist(const char *ifname, char *buf, int *len)
        };
 
        if( nl80211_get_channel(ifname, &ch_cur) )
        };
 
        if( nl80211_get_channel(ifname, &ch_cur) )
-               return -1;
+               ch_cur = 0;
 
        req = nl80211_msg(ifname, NL80211_CMD_GET_WIPHY, 0);
        if( req )
 
        req = nl80211_msg(ifname, NL80211_CMD_GET_WIPHY, 0);
        if( req )
@@ -947,7 +947,7 @@ int nl80211_get_txpwrlist(const char *ifname, char *buf, int *len)
                                        ch_cmp = nl80211_freq2channel(
                                                nla_get_u32(freqs[NL80211_FREQUENCY_ATTR_FREQ]));
 
                                        ch_cmp = nl80211_freq2channel(
                                                nla_get_u32(freqs[NL80211_FREQUENCY_ATTR_FREQ]));
 
-                                       if( (ch_cmp == ch_cur) &&
+                                       if( (!ch_cur || (ch_cmp == ch_cur)) &&
                                            freqs[NL80211_FREQUENCY_ATTR_MAX_TX_POWER] )
                                        {
                                                dbm_max = (int)(0.01 * nla_get_u32(
                                            freqs[NL80211_FREQUENCY_ATTR_MAX_TX_POWER] )
                                        {
                                                dbm_max = (int)(0.01 * nla_get_u32(