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