Blame src/wireless-security/ws-wpa-eap.c

Packit Service d328f3
// SPDX-License-Identifier: GPL-2.0+
Packit Service d328f3
/* NetworkManager Applet -- allow user control over networking
Packit Service d328f3
 *
Packit Service d328f3
 * Dan Williams <dcbw@redhat.com>
Packit Service d328f3
 *
Packit Service d328f3
 * Copyright 2007 - 2014 Red Hat, Inc.
Packit Service d328f3
 */
Packit Service d328f3
Packit Service d328f3
#include "nm-default.h"
Packit Service d328f3
Packit Service d328f3
#include <ctype.h>
Packit Service d328f3
#include <string.h>
Packit Service d328f3
Packit Service d328f3
#include "wireless-security.h"
Packit Service d328f3
#include "eap-method.h"
Packit Service d328f3
Packit Service d328f3
struct _WirelessSecurityWPAEAP {
Packit Service d328f3
	WirelessSecurity parent;
Packit Service d328f3
Packit Service d328f3
	GtkSizeGroup *size_group;
Packit Service d328f3
};
Packit Service d328f3
Packit Service d328f3
Packit Service d328f3
static void
Packit Service d328f3
destroy (WirelessSecurity *parent)
Packit Service d328f3
{
Packit Service d328f3
	WirelessSecurityWPAEAP *sec = (WirelessSecurityWPAEAP *) parent;
Packit Service d328f3
Packit Service d328f3
	if (sec->size_group)
Packit Service d328f3
		g_object_unref (sec->size_group);
Packit Service d328f3
}
Packit Service d328f3
Packit Service d328f3
static gboolean
Packit Service d328f3
validate (WirelessSecurity *parent, GError **error)
Packit Service d328f3
{
Packit Service d328f3
	return ws_802_1x_validate (parent, "wpa_eap_auth_combo", error);
Packit Service d328f3
}
Packit Service d328f3
Packit Service d328f3
static void
Packit Service d328f3
add_to_size_group (WirelessSecurity *parent, GtkSizeGroup *group)
Packit Service d328f3
{
Packit Service d328f3
	WirelessSecurityWPAEAP *sec = (WirelessSecurityWPAEAP *) parent;
Packit Service d328f3
Packit Service d328f3
	if (sec->size_group)
Packit Service d328f3
		g_object_unref (sec->size_group);
Packit Service d328f3
	sec->size_group = g_object_ref (group);
Packit Service d328f3
Packit Service d328f3
	ws_802_1x_add_to_size_group (parent,
Packit Service d328f3
	                             sec->size_group,
Packit Service d328f3
	                             "wpa_eap_auth_label",
Packit Service d328f3
	                             "wpa_eap_auth_combo");
Packit Service d328f3
}
Packit Service d328f3
Packit Service d328f3
static void
Packit Service d328f3
fill_connection (WirelessSecurity *parent, NMConnection *connection)
Packit Service d328f3
{
Packit Service d328f3
	NMSettingWirelessSecurity *s_wireless_sec;
Packit Service d328f3
Packit Service d328f3
	ws_802_1x_fill_connection (parent, "wpa_eap_auth_combo", connection);
Packit Service d328f3
Packit Service d328f3
	s_wireless_sec = nm_connection_get_setting_wireless_security (connection);
Packit Service d328f3
	g_assert (s_wireless_sec);
Packit Service d328f3
Packit Service d328f3
	g_object_set (s_wireless_sec, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "wpa-eap", NULL);
Packit Service d328f3
}
Packit Service d328f3
Packit Service d328f3
static void
Packit Service d328f3
auth_combo_changed_cb (GtkWidget *combo, gpointer user_data)
Packit Service d328f3
{
Packit Service d328f3
	WirelessSecurity *parent = WIRELESS_SECURITY (user_data);
Packit Service d328f3
	WirelessSecurityWPAEAP *sec = (WirelessSecurityWPAEAP *) parent;
Packit Service d328f3
Packit Service d328f3
	ws_802_1x_auth_combo_changed (combo,
Packit Service d328f3
	                              parent,
Packit Service d328f3
	                              "wpa_eap_method_vbox",
Packit Service d328f3
	                              sec->size_group);
Packit Service d328f3
}
Packit Service d328f3
Packit Service d328f3
static void
Packit Service d328f3
update_secrets (WirelessSecurity *parent, NMConnection *connection)
Packit Service d328f3
{
Packit Service d328f3
	ws_802_1x_update_secrets (parent, "wpa_eap_auth_combo", connection);
Packit Service d328f3
}
Packit Service d328f3
Packit Service d328f3
WirelessSecurityWPAEAP *
Packit Service d328f3
ws_wpa_eap_new (NMConnection *connection,
Packit Service d328f3
                gboolean is_editor,
Packit Service d328f3
                gboolean secrets_only,
Packit Service d328f3
                const char *const*secrets_hints)
Packit Service d328f3
{
Packit Service d328f3
	WirelessSecurity *parent;
Packit Service d328f3
	GtkWidget *widget;
Packit Service d328f3
Packit Service d328f3
	parent = wireless_security_init (sizeof (WirelessSecurityWPAEAP),
Packit Service d328f3
	                                 validate,
Packit Service d328f3
	                                 add_to_size_group,
Packit Service d328f3
	                                 fill_connection,
Packit Service d328f3
	                                 update_secrets,
Packit Service d328f3
	                                 destroy,
Packit Service d328f3
	                                 "/org/freedesktop/network-manager-applet/ws-wpa-eap.ui",
Packit Service d328f3
	                                 "wpa_eap_notebook",
Packit Service d328f3
	                                 NULL);
Packit Service d328f3
	if (!parent)
Packit Service d328f3
		return NULL;
Packit Service d328f3
Packit Service d328f3
	parent->adhoc_compatible = FALSE;
Packit Service d328f3
	parent->hotspot_compatible = FALSE;
Packit Service d328f3
Packit Service d328f3
	widget = ws_802_1x_auth_combo_init (parent,
Packit Service d328f3
	                                    "wpa_eap_auth_combo",
Packit Service d328f3
	                                    "wpa_eap_auth_label",
Packit Service d328f3
	                                    (GCallback) auth_combo_changed_cb,
Packit Service d328f3
	                                    connection,
Packit Service d328f3
	                                    is_editor,
Packit Service d328f3
	                                    secrets_only,
Packit Service d328f3
	                                    secrets_hints);
Packit Service d328f3
	auth_combo_changed_cb (widget, parent);
Packit Service d328f3
Packit Service d328f3
	return (WirelessSecurityWPAEAP *) parent;
Packit Service d328f3
}
Packit Service d328f3