summaryrefslogtreecommitdiff
path: root/qcwcn/wpa_supplicant_8_lib
diff options
context:
space:
mode:
authorDmitry Shmidt <dimitrysh@google.com>2014-04-14 16:29:21 -0700
committerDmitry Shmidt <dimitrysh@google.com>2014-04-14 16:29:21 -0700
commit2489c14af3ee6d017baeab3dae4d0b37cfab8319 (patch)
tree9e994478568d27440bda8137086ff110067f5bf3 /qcwcn/wpa_supplicant_8_lib
parent8f3b37283956345196b51357b9b833b16632a57d (diff)
downloadwlan-2489c14af3ee6d017baeab3dae4d0b37cfab8319.tar.gz
qcwcn: Fix EVENT_CHANNEL_LIST_CHANGED message
Bug: 14061861 Change-Id: Id4022c78fc8bafedee794ec29e03406a1c732d06 Signed-off-by: Dmitry Shmidt <dimitrysh@google.com>
Diffstat (limited to 'qcwcn/wpa_supplicant_8_lib')
-rw-r--r--qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211.c27
1 files changed, 22 insertions, 5 deletions
diff --git a/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211.c b/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211.c
index 17369ef..7911cd2 100644
--- a/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211.c
+++ b/qcwcn/wpa_supplicant_8_lib/driver_cmd_nl80211.c
@@ -36,6 +36,27 @@ static void wpa_driver_send_hang_msg(struct wpa_driver_nl80211_data *drv)
}
}
+static void wpa_driver_notify_country_change(void *ctx, char *cmd)
+{
+ if ((os_strncasecmp(cmd, "COUNTRY", 7) == 0) ||
+ (os_strncasecmp(cmd, "SETBAND", 7) == 0)) {
+ union wpa_event_data event;
+
+ os_memset(&event, 0, sizeof(event));
+ event.channel_list_changed.initiator = REGDOM_SET_BY_USER;
+ if (os_strncasecmp(cmd, "COUNTRY", 7) == 0) {
+ event.channel_list_changed.type = REGDOM_TYPE_COUNTRY;
+ if (os_strlen(cmd) > 9) {
+ event.channel_list_changed.alpha2[0] = cmd[8];
+ event.channel_list_changed.alpha2[1] = cmd[9];
+ }
+ } else {
+ event.channel_list_changed.type = REGDOM_TYPE_UNKNOWN;
+ }
+ wpa_supplicant_event(ctx, EVENT_CHANNEL_LIST_CHANGED, &event);
+ }
+}
+
int wpa_driver_nl80211_driver_cmd(void *priv, char *cmd, char *buf,
size_t buf_len )
{
@@ -78,11 +99,6 @@ int wpa_driver_nl80211_driver_cmd(void *priv, char *cmd, char *buf,
(os_strcasecmp(cmd, "RSSI") == 0) ||
(os_strcasecmp(cmd, "GETBAND") == 0) )
ret = strlen(buf);
- else if (os_strcasecmp(cmd, "COUNTRY") == 0)
- wpa_supplicant_event(drv->ctx,
- EVENT_CHANNEL_LIST_CHANGED, NULL);
- else if (os_strncasecmp(cmd, "SETBAND", 7) == 0)
- wpa_printf(MSG_DEBUG, "%s: %s ", __func__, cmd);
else if (os_strcasecmp(cmd, "P2P_DEV_ADDR") == 0)
wpa_printf(MSG_DEBUG, "%s: P2P: Device address ("MACSTR")",
__func__, MAC2STR(buf));
@@ -92,6 +108,7 @@ int wpa_driver_nl80211_driver_cmd(void *priv, char *cmd, char *buf,
wpa_printf(MSG_DEBUG, "%s: P2P: %s ", __func__, buf);
else
wpa_printf(MSG_DEBUG, "%s %s len = %d, %d", __func__, buf, ret, strlen(buf));
+ wpa_driver_notify_country_change(drv->ctx, cmd);
}
}
return ret;