/* * Arguments: * argv[2] - interface name * argv[3] - AP or P2P or STA */ int SoftapController::fwReloadSoftap(int argc, char *argv[]) { int i = 0; char *fwpath = NULL; if (argc < 4) { ALOGE("SoftAP fwreload is missing arguments. Please use: softap <wlan iface> <AP|P2P|STA>"); return ResponseCode::CommandSyntaxError; } if (strcmp(argv[3], "AP") == 0) { fwpath = (char *)wifi_get_fw_path(WIFI_GET_FW_PATH_AP); } else if (strcmp(argv[3], "P2P") == 0) { fwpath = (char *)wifi_get_fw_path(WIFI_GET_FW_PATH_P2P); } else if (strcmp(argv[3], "STA") == 0) { fwpath = (char *)wifi_get_fw_path(WIFI_GET_FW_PATH_STA); } if (!fwpath) return ResponseCode::CommandParameterError; if (wifi_change_fw_path((const char *)fwpath)) { ALOGE("Softap fwReload failed"); return ResponseCode::OperationFailed; } else { ALOGD("Softap fwReload - Ok"); } return ResponseCode::SoftapStatusResult; }
/* * Arguments: * argv[2] - interface name * argv[3] - AP or P2P or STA */ int SoftapController::fwReloadSoftap(int argc, char *argv[]) { int i = 0; char *iface; char *fwpath = NULL; if (mSock < 0) { ALOGE("Softap fwrealod - failed to open socket"); return ResponseCode::OperationFailed; } if (argc < 4) { ALOGE("SoftAP fwreload is missing arguments. Please use: softap <wlan iface> <AP|P2P|STA>"); return ResponseCode::CommandSyntaxError; } iface = argv[2]; if (strcmp(argv[3], "AP") == 0) { fwpath = (char *)wifi_get_fw_path(WIFI_GET_FW_PATH_AP); } else if (strcmp(argv[3], "P2P") == 0) { fwpath = (char *)wifi_get_fw_path(WIFI_GET_FW_PATH_P2P); } else if (strcmp(argv[3], "STA") == 0) { fwpath = (char *)wifi_get_fw_path(WIFI_GET_FW_PATH_STA); } if (!fwpath) return ResponseCode::CommandParameterError; #ifdef HAVE_HOSTAPD if (wifi_change_fw_path((const char *)fwpath)) { #else sprintf(mBuf, "FW_PATH=%s", fwpath); if (setCommand(iface, "WL_FW_RELOAD")) { #endif ALOGE("Softap fwReload failed"); return ResponseCode::OperationFailed; } else { ALOGD("Softap fwReload - Ok"); } return ResponseCode::SoftapStatusResult; } void SoftapController::generatePsk(char *ssid, char *passphrase, char *psk_str) { unsigned char psk[SHA256_DIGEST_LENGTH]; int j; // Use the PKCS#5 PBKDF2 with 4096 iterations PKCS5_PBKDF2_HMAC_SHA1(passphrase, strlen(passphrase), reinterpret_cast<const unsigned char *>(ssid), strlen(ssid), 4096, SHA256_DIGEST_LENGTH, psk); for (j=0; j < SHA256_DIGEST_LENGTH; j++) { sprintf(&psk_str[j*2], "%02x", psk[j]); } }
/* * Arguments: * argv[2] - interface name * argv[3] - AP or STA */ int SoftapController::fwReloadSoftap(int argc, char *argv[]) { int ret, i = 0; char *iface; char *fwpath; if (mSock < 0) { LOGE("Softap fwrealod - failed to open socket"); return -1; } if (argc < 4) { LOGE("Softap fwreload - missing arguments"); return -1; } iface = argv[2]; if (strcmp(argv[3], "AP") == 0) { fwpath = (char *)wifi_get_fw_path(WIFI_GET_FW_PATH_AP); } else if (strcmp(argv[3], "P2P") == 0) { fwpath = (char *)wifi_get_fw_path(WIFI_GET_FW_PATH_P2P); } else { fwpath = (char *)wifi_get_fw_path(WIFI_GET_FW_PATH_STA); } if (!fwpath) return -1; #ifdef HAVE_HOSTAPD if(strcmp(argv[3],"AP") == 0) wifi_unload_driver(); ret = wifi_change_fw_path((const char *)fwpath); if(strcmp(argv[3],"AP") == 0) wifi_load_driver(); #else sprintf(mBuf, "FW_PATH=%s", fwpath); ret = setCommand(iface, "WL_FW_RELOAD"); #endif if (ret) { LOGE("Softap fwReload - failed: %d", ret); } else { LOGD("Softap fwReload - Ok"); } return ret; }