diff options
author | Dmitry Shmidt <dimitrysh@google.com> | 2014-04-14 16:29:21 -0700 |
---|---|---|
committer | Dmitry Shmidt <dimitrysh@google.com> | 2014-04-14 16:29:21 -0700 |
commit | 2489c14af3ee6d017baeab3dae4d0b37cfab8319 (patch) | |
tree | 9e994478568d27440bda8137086ff110067f5bf3 /qcwcn/wpa_supplicant_8_lib | |
parent | 8f3b37283956345196b51357b9b833b16632a57d (diff) | |
download | wlan-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.c | 27 |
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; |