Add chan_switch to ctrl interface of wpa_supplicant and hostapd
Add chan_switch to the control interface of wpa_supplicant and hostapd, and also to wpa_cli and hostapd_cli. Signed-hostap: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
This commit is contained in:
parent
bf281c129f
commit
334bf36ac5
8 changed files with 133 additions and 0 deletions
|
@ -380,3 +380,46 @@ int hostapd_ctrl_iface_status(struct hostapd_data *hapd, char *buf,
|
|||
|
||||
return len;
|
||||
}
|
||||
|
||||
|
||||
int hostapd_parse_csa_settings(const char *pos,
|
||||
struct csa_settings *settings)
|
||||
{
|
||||
char *end;
|
||||
|
||||
if (!settings)
|
||||
return -1;
|
||||
|
||||
os_memset(settings, 0, sizeof(*settings));
|
||||
settings->cs_count = strtol(pos, &end, 10);
|
||||
if (pos == end) {
|
||||
wpa_printf(MSG_ERROR, "chanswitch: invalid cs_count provided");
|
||||
return -1;
|
||||
}
|
||||
|
||||
settings->freq_params.freq = atoi(end);
|
||||
if (settings->freq_params.freq == 0) {
|
||||
wpa_printf(MSG_ERROR, "chanswitch: invalid freq provided");
|
||||
return -1;
|
||||
}
|
||||
|
||||
#define SET_CSA_SETTING(str) \
|
||||
do { \
|
||||
const char *pos2 = os_strstr(pos, " " #str "="); \
|
||||
if (pos2) { \
|
||||
pos2 += sizeof(" " #str "=") - 1; \
|
||||
settings->freq_params.str = atoi(pos2); \
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
SET_CSA_SETTING(center_freq1);
|
||||
SET_CSA_SETTING(center_freq2);
|
||||
SET_CSA_SETTING(bandwidth);
|
||||
SET_CSA_SETTING(sec_channel_offset);
|
||||
settings->freq_params.ht_enabled = !!os_strstr(pos, " ht");
|
||||
settings->freq_params.vht_enabled = !!os_strstr(pos, " vht");
|
||||
settings->block_tx = !!os_strstr(pos, " blocktx");
|
||||
#undef SET_CSA_SETTING
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -21,5 +21,8 @@ int hostapd_ctrl_iface_disassociate(struct hostapd_data *hapd,
|
|||
const char *txtaddr);
|
||||
int hostapd_ctrl_iface_status(struct hostapd_data *hapd, char *buf,
|
||||
size_t buflen);
|
||||
int hostapd_parse_csa_settings(const char *pos,
|
||||
struct csa_settings *settings);
|
||||
|
||||
|
||||
#endif /* CTRL_IFACE_AP_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue