|
|
|
@ -679,6 +679,29 @@ static int wlc_wdsmac(wlc_param param, void *data, void *value)
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static int wlc_pmk(wlc_param param, void *data, void *value)
|
|
|
|
|
{
|
|
|
|
|
int ret = -1;
|
|
|
|
|
char *str = (char *) value;
|
|
|
|
|
wsec_pmk_t pmk;
|
|
|
|
|
|
|
|
|
|
/* driver doesn't support GET */
|
|
|
|
|
|
|
|
|
|
if ((param & PARAM_MODE) == SET) {
|
|
|
|
|
strncpy(pmk.key, value, WSEC_MAX_PSK_LEN);
|
|
|
|
|
pmk.key_len = strlen(value);
|
|
|
|
|
|
|
|
|
|
if (pmk.key_len > WSEC_MAX_PSK_LEN)
|
|
|
|
|
pmk.key_len = WSEC_MAX_PSK_LEN;
|
|
|
|
|
|
|
|
|
|
pmk.flags = WSEC_PASSPHRASE;
|
|
|
|
|
|
|
|
|
|
ret = wl_ioctl(interface, WLC_SET_WSEC_PMK, &pmk, sizeof(pmk));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return ret;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static const struct wlc_call wlc_calls[] = {
|
|
|
|
|
{
|
|
|
|
|
.name = "version",
|
|
|
|
@ -864,6 +887,12 @@ static const struct wlc_call wlc_calls[] = {
|
|
|
|
|
.data.str = "sup_wpa",
|
|
|
|
|
.desc = "Built-in WPA supplicant"
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.name = "passphrase",
|
|
|
|
|
.param = STRING,
|
|
|
|
|
.handler = wlc_pmk,
|
|
|
|
|
.desc = "Passphrase for built-in WPA supplicant",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
.name = "maxassoc",
|
|
|
|
|
.param = INT,
|
|
|
|
|