int set_passphrase_cmd_cb(int numParam, char* buf, void* ctx) { struct wl_network_t net; char pass[64]; wl_err_t err = WL_SUCCESS; tParam* params = (tParam*) buf; INFO_SPI("%s params=%d\n", __FUNCTION__, numParam); memset(&net, 0, sizeof net); memset(net.bssid.octet, 0xFF, sizeof net.bssid.octet); net.enc_type = ENC_TYPE_AUTO; // SSID if (params->paramLen < WL_SSID_MAX_LENGTH) { memcpy(net.ssid.ssid, ¶ms->param, params->paramLen); net.ssid.len = params->paramLen; INFO_SPI("%s %d\n", net.ssid.ssid, net.ssid.len); } else { //printk("SSID len out of range"); RETURN_ERR(WL_FAILURE) } params = (tParam*)((char*)buf+PARAM_LEN_SIZE+params->paramLen); // PASSPHRASE strncpy(pass, (const char*)¶ms->param, params->paramLen); pass[(uint8_t)params->paramLen]='\0'; INFO_SPI("Pass: %s %d\n", pass, params->paramLen); if (wl_set_passphrase(&net, pass, params->paramLen, ENC_TYPE_AUTO, AUTH_MODE_AUTO) != WL_SUCCESS) { WARN("%s : Failed to add passphrase\n", __func__); RETURN_ERR(WL_FAILURE) }
cmd_state_t cmd_setpass(int argc, char* argv[], void* ctx) { const char *usage = "usage: wpass <ssid> <passphrase>\n"; struct wl_network_t net; char desired_ssid[WL_SSID_MAX_LENGTH]; int len = 0; if (argc < 3) { printk(usage); return CMD_DONE; } /* Not really kosher, an ssid may legally contain 0-bytes but * the console interface does not deal with that. */ memset(&net, 0, sizeof net); memset(net.bssid.octet, 0xFF, sizeof net.bssid.octet); len = join_argv(desired_ssid, sizeof desired_ssid, argc - 2, argv + 1); if (0 == len) { return CMD_DONE; } memcpy(net.ssid.ssid, desired_ssid, len); net.ssid.len = len; net.enc_type = ENC_TYPE_AUTO; if (wl_set_passphrase(&net, argv[argc - 1], strlen(argv[argc - 1]), ENC_TYPE_AUTO, AUTH_MODE_AUTO) != WL_SUCCESS) { printk("%s : Failed to add passphrase\n", __func__); } return CMD_DONE; }