Example #1
0
static void __popup_ok_cb(void *data, Evas_Object *obj, void *event_info)
{
	__COMMON_FUNC_ENTER__;

	wifi_ap_h ap = NULL;
	int password_len = 0;
	const char* password = NULL;
	wifi_security_type_e sec_type = WIFI_SECURITY_TYPE_NONE;

	if (devpkr_app_state->passpopup == NULL) {
		return;
	}

	ap = passwd_popup_get_ap(devpkr_app_state->passpopup);
	password = passwd_popup_get_txt(devpkr_app_state->passpopup);
	password_len = strlen(password);

	wifi_ap_get_security_type(ap, &sec_type);

	switch (sec_type) {
	case WIFI_SECURITY_TYPE_WEP:
		if (password_len != 5 && password_len != 13 &&
				password_len != 26 && password_len != 10) {
			view_alerts_popup_show(sc(PACKAGE, I18N_TYPE_Wrong_Password));
			goto popup_ok_exit;
		}
		break;

	case WIFI_SECURITY_TYPE_WPA_PSK:
	case WIFI_SECURITY_TYPE_WPA2_PSK:
		if (password_len < 8 || password_len > 64) {
			view_alerts_popup_show(sc(PACKAGE, I18N_TYPE_Wrong_Password));
			goto popup_ok_exit;
		}
		break;

	default:
		ERROR_LOG(SP_NAME_ERR, "Wrong security mode: %d", sec_type);
		passwd_popup_free(devpkr_app_state->passpopup);
		break;
	}

	wlan_manager_connect_with_password(ap, password);

	passwd_popup_free(devpkr_app_state->passpopup);
	devpkr_app_state->passpopup = NULL;

popup_ok_exit:
	g_free((gpointer)password);

	__COMMON_FUNC_EXIT__;
}
static void _popup_ok_cb(void *data, Evas_Object *obj, void *event_info)
{
	__COMMON_FUNC_ENTER__;
	if (!ug_app_state->passpopup || !data) {
		return;
	}

	char *profile_name = (char *)data;
	wlan_security_mode_type_t sec_mode;
	view_datamodel_basic_info_t *basic_data_model = view_basic_detail_datamodel_create(profile_name);
	if (!basic_data_model) {
		common_pswd_popup_destroy(ug_app_state->passpopup);
		ug_app_state->passpopup = NULL;
		g_free(profile_name);
		return;
	}
	int ret = WLAN_MANAGER_ERR_NONE;
	int nLen = 0;
	const char* szPassword = common_pswd_popup_get_txt(ug_app_state->passpopup);
	nLen = strlen(szPassword);
	INFO_LOG(UG_NAME_NORMAL, "password = [%s]", szPassword);

	sec_mode = view_detail_datamodel_sec_mode_get(basic_data_model);
	switch (sec_mode) {
	case WLAN_SEC_MODE_WEP:

		if (nLen != 5 && nLen != 13 && nLen != 26 && nLen != 10) {
			winset_popup_mode_set(ug_app_state->popup_manager, POPUP_OPTION_WEP_PSWD_LEN_ERROR, NULL);
			goto popup_ok_cb_exit;
		}

		break;

	case WLAN_SEC_MODE_WPA_PSK:
	case WLAN_SEC_MODE_WPA2_PSK:

		if (nLen < 8 || nLen > 63) {
			winset_popup_mode_set(ug_app_state->popup_manager, POPUP_OPTION_WPA_PSWD_LEN_ERROR, NULL);
			goto popup_ok_cb_exit;
		}
		break;

	default:
		ERROR_LOG(UG_NAME_SCAN, "Fatal: Wrong security mode : %d", sec_mode);
		common_pswd_popup_destroy(ug_app_state->passpopup);
		ug_app_state->passpopup = NULL;
		g_free(profile_name);
		goto popup_ok_cb_exit;
	}

	common_pswd_popup_destroy(ug_app_state->passpopup);
	ug_app_state->passpopup = NULL;

	INFO_LOG(UG_NAME_SCAN, "connect with password comp");
	wlan_manager_password_data param;
	memset(&param, 0, sizeof(wlan_manager_password_data));
	param.wlan_eap_type = WLAN_MANAGER_EAP_TYPE_NONE;
	param.password = szPassword;
	ret = wlan_manager_connect_with_password(profile_name, sec_mode, &param);
	if (WLAN_MANAGER_ERR_NONE == ret) {
		viewer_manager_header_mode_set(HEADER_MODE_CONNECTING);
	} else {
		ERROR_LOG(UG_NAME_SCAN, "wlan error %d", ret);
		viewer_manager_header_mode_set(HEADER_MODE_ON);
	}

	g_free(profile_name);

popup_ok_cb_exit:
	g_free((gpointer)szPassword);
	view_basic_detail_datamodel_destroy(basic_data_model);

	__COMMON_FUNC_EXIT__;
}