]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
ml80211: Put wiphy idx to obtain correct country code
authorChenming Huang <quic_chenhuan@quicinc.com>
Wed, 8 Mar 2023 07:39:22 +0000 (15:39 +0800)
committerJouni Malinen <j@w1.fi>
Thu, 9 Mar 2023 18:59:20 +0000 (20:59 +0200)
If wiphy idx not provided, kernel returns global reg domain when
processing NL80211_CMD_GET_REG. To obtain the correct country code for
the self-managed regulatory cases, put wiphy idx into nl_msg when
sending this command to kernel.

Signed-off-by: Jouni Malinen <quic_jouni@quicinc.com>
src/drivers/driver_nl80211.c

index c32822cc90bb8b4f6b644910cb950bcc535bf89d..db1d73f2f6a7eab29c596278921b1269a97c2702 100644 (file)
@@ -1900,6 +1900,16 @@ static int wpa_driver_nl80211_get_country(void *priv, char *alpha2)
                return -ENOMEM;
 
        nl80211_cmd(drv, msg, 0, NL80211_CMD_GET_REG);
+
+       if (drv->capa.flags & WPA_DRIVER_FLAGS_SELF_MANAGED_REGULATORY) {
+               /* put wiphy idx to get the interface specific country code
+                * instead of the global one. */
+               if (nla_put_u32(msg, NL80211_ATTR_WIPHY, drv->wiphy_idx)) {
+                       nlmsg_free(msg);
+                       return -1;
+               }
+       }
+
        alpha2[0] = '\0';
        ret = send_and_recv_msgs(drv, msg, nl80211_get_country, alpha2,
                                 NULL, NULL);