|
|
|
@ -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, |
|
|
|
|