|
Packit Service |
d328f3 |
// SPDX-License-Identifier: GPL-2.0+
|
|
Packit Service |
d328f3 |
/* NetworkManager Connection editor -- Connection editor for NetworkManager
|
|
Packit Service |
d328f3 |
*
|
|
Packit Service |
d328f3 |
* Dan Williams <dcbw@redhat.com>
|
|
Packit Service |
d328f3 |
*
|
|
Packit Service |
d328f3 |
* Copyright 2008 - 2014 Red Hat, Inc.
|
|
Packit Service |
d328f3 |
*/
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
#include "nm-default.h"
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
#include <string.h>
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
#include "page-ppp.h"
|
|
Packit Service |
d328f3 |
#include "ppp-auth-methods-dialog.h"
|
|
Packit Service |
d328f3 |
#include "nm-connection-editor.h"
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
G_DEFINE_TYPE (CEPagePpp, ce_page_ppp, CE_TYPE_PAGE)
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
#define CE_PAGE_PPP_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), CE_TYPE_PAGE_PPP, CEPagePppPrivate))
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
#define COL_NAME 0
|
|
Packit Service |
d328f3 |
#define COL_VALUE 1
|
|
Packit Service |
d328f3 |
#define COL_TAG 2
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
#define TAG_EAP 0
|
|
Packit Service |
d328f3 |
#define TAG_PAP 1
|
|
Packit Service |
d328f3 |
#define TAG_CHAP 2
|
|
Packit Service |
d328f3 |
#define TAG_MSCHAP 3
|
|
Packit Service |
d328f3 |
#define TAG_MSCHAPV2 4
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
typedef struct {
|
|
Packit Service |
d328f3 |
NMSettingPpp *setting;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
GtkLabel *auth_methods_label;
|
|
Packit Service |
d328f3 |
GtkButton *auth_methods_button;
|
|
Packit Service |
d328f3 |
gboolean refuse_eap;
|
|
Packit Service |
d328f3 |
gboolean refuse_pap;
|
|
Packit Service |
d328f3 |
gboolean refuse_chap;
|
|
Packit Service |
d328f3 |
gboolean refuse_mschap;
|
|
Packit Service |
d328f3 |
gboolean refuse_mschapv2;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
guint orig_lcp_echo_failure;
|
|
Packit Service |
d328f3 |
guint orig_lcp_echo_interval;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
GtkToggleButton *use_mppe;
|
|
Packit Service |
d328f3 |
GtkToggleButton *mppe_require_128;
|
|
Packit Service |
d328f3 |
GtkToggleButton *use_mppe_stateful;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
GtkToggleButton *allow_bsdcomp;
|
|
Packit Service |
d328f3 |
GtkToggleButton *allow_deflate;
|
|
Packit Service |
d328f3 |
GtkToggleButton *use_vj_comp;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
GtkToggleButton *send_ppp_echo;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
GtkWindowGroup *window_group;
|
|
Packit Service |
d328f3 |
gboolean window_added;
|
|
Packit Service |
d328f3 |
char *connection_id;
|
|
Packit Service |
d328f3 |
} CEPagePppPrivate;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
ppp_private_init (CEPagePpp *self)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
CEPagePppPrivate *priv = CE_PAGE_PPP_GET_PRIVATE (self);
|
|
Packit Service |
d328f3 |
GtkBuilder *builder;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
builder = CE_PAGE (self)->builder;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
priv->auth_methods_label = GTK_LABEL (gtk_builder_get_object (builder, "auth_methods_label"));
|
|
Packit Service |
d328f3 |
priv->auth_methods_button = GTK_BUTTON (gtk_builder_get_object (builder, "auth_methods_button"));
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
priv->use_mppe = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "ppp_use_mppe"));
|
|
Packit Service |
d328f3 |
priv->mppe_require_128 = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "ppp_require_mppe_128"));
|
|
Packit Service |
d328f3 |
priv->use_mppe_stateful = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "ppp_use_stateful_mppe"));
|
|
Packit Service |
d328f3 |
priv->allow_bsdcomp = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "ppp_allow_bsdcomp"));
|
|
Packit Service |
d328f3 |
priv->allow_deflate = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "ppp_allow_deflate"));
|
|
Packit Service |
d328f3 |
priv->use_vj_comp = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "ppp_usevj"));
|
|
Packit Service |
d328f3 |
priv->send_ppp_echo = GTK_TOGGLE_BUTTON (gtk_builder_get_object (builder, "ppp_send_echo_packets"));
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
use_mppe_toggled_cb (GtkToggleButton *widget, CEPagePpp *self)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
CEPagePppPrivate *priv = CE_PAGE_PPP_GET_PRIVATE (self);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
if (gtk_toggle_button_get_active (widget)) {
|
|
Packit Service |
d328f3 |
gtk_widget_set_sensitive (GTK_WIDGET (priv->mppe_require_128), TRUE);
|
|
Packit Service |
d328f3 |
gtk_widget_set_sensitive (GTK_WIDGET (priv->use_mppe_stateful), TRUE);
|
|
Packit Service |
d328f3 |
} else {
|
|
Packit Service |
d328f3 |
gtk_widget_set_sensitive (GTK_WIDGET (priv->mppe_require_128), FALSE);
|
|
Packit Service |
d328f3 |
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->mppe_require_128), FALSE);
|
|
Packit Service |
d328f3 |
gtk_widget_set_sensitive (GTK_WIDGET (priv->use_mppe_stateful), FALSE);
|
|
Packit Service |
d328f3 |
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (priv->use_mppe_stateful), FALSE);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
ce_page_changed (CE_PAGE (self));
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
add_one_auth_method (GString *string, const char *name, gboolean allowed)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
if (allowed) {
|
|
Packit Service |
d328f3 |
if (string->len)
|
|
Packit Service |
d328f3 |
g_string_append (string, ", ");
|
|
Packit Service |
d328f3 |
g_string_append (string, name);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
update_auth_methods_list (CEPagePpp *self)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
CEPagePppPrivate *priv = CE_PAGE_PPP_GET_PRIVATE (self);
|
|
Packit Service |
d328f3 |
GString *list;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
list = g_string_new ("");
|
|
Packit Service |
d328f3 |
add_one_auth_method (list, _("EAP"), !priv->refuse_eap);
|
|
Packit Service |
d328f3 |
add_one_auth_method (list, _("PAP"), !priv->refuse_pap);
|
|
Packit Service |
d328f3 |
add_one_auth_method (list, _("CHAP"), !priv->refuse_chap);
|
|
Packit Service |
d328f3 |
add_one_auth_method (list, _("MSCHAPv2"), !priv->refuse_mschapv2);
|
|
Packit Service |
d328f3 |
add_one_auth_method (list, _("MSCHAP"), !priv->refuse_mschap);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
/* Translators: "none" refers to authentication methods */
|
|
Packit Service |
d328f3 |
gtk_label_set_text (priv->auth_methods_label, list->len ? list->str : _("none"));
|
|
Packit Service |
d328f3 |
g_string_free (list, TRUE);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
auth_methods_dialog_close_cb (GtkWidget *dialog, gpointer user_data)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
gtk_widget_hide (dialog);
|
|
Packit Service |
d328f3 |
/* gtk_widget_destroy() will remove the window from the window group */
|
|
Packit Service |
d328f3 |
gtk_widget_destroy (dialog);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
auth_methods_dialog_response_cb (GtkWidget *dialog, gint response, gpointer user_data)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
CEPagePpp *self = CE_PAGE_PPP (user_data);
|
|
Packit Service |
d328f3 |
CEPagePppPrivate *priv = CE_PAGE_PPP_GET_PRIVATE (self);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
if (response == GTK_RESPONSE_OK) {
|
|
Packit Service |
d328f3 |
ppp_auth_methods_dialog_get_methods (dialog,
|
|
Packit Service |
d328f3 |
&priv->refuse_eap,
|
|
Packit Service |
d328f3 |
&priv->refuse_pap,
|
|
Packit Service |
d328f3 |
&priv->refuse_chap,
|
|
Packit Service |
d328f3 |
&priv->refuse_mschap,
|
|
Packit Service |
d328f3 |
&priv->refuse_mschapv2);
|
|
Packit Service |
d328f3 |
ce_page_changed (CE_PAGE (self));
|
|
Packit Service |
d328f3 |
update_auth_methods_list (self);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
auth_methods_dialog_close_cb (dialog, NULL);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
auth_methods_button_clicked_cb (GtkWidget *button, gpointer user_data)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
CEPagePpp *self = CE_PAGE_PPP (user_data);
|
|
Packit Service |
d328f3 |
CEPagePppPrivate *priv = CE_PAGE_PPP_GET_PRIVATE (self);
|
|
Packit Service |
d328f3 |
GtkWidget *dialog, *toplevel;
|
|
Packit Service |
d328f3 |
char *tmp;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
toplevel = gtk_widget_get_toplevel (CE_PAGE (self)->page);
|
|
Packit Service |
d328f3 |
g_return_if_fail (gtk_widget_is_toplevel (toplevel));
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
dialog = ppp_auth_methods_dialog_new (priv->refuse_eap,
|
|
Packit Service |
d328f3 |
priv->refuse_pap,
|
|
Packit Service |
d328f3 |
priv->refuse_chap,
|
|
Packit Service |
d328f3 |
priv->refuse_mschap,
|
|
Packit Service |
d328f3 |
priv->refuse_mschapv2);
|
|
Packit Service |
d328f3 |
if (!dialog) {
|
|
Packit Service |
d328f3 |
g_warning ("%s: failed to create the PPP authentication methods dialog!", __func__);
|
|
Packit Service |
d328f3 |
return;
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
gtk_window_group_add_window (priv->window_group, GTK_WINDOW (dialog));
|
|
Packit Service |
d328f3 |
if (!priv->window_added) {
|
|
Packit Service |
d328f3 |
gtk_window_group_add_window (priv->window_group, GTK_WINDOW (toplevel));
|
|
Packit Service |
d328f3 |
priv->window_added = TRUE;
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
gtk_window_set_transient_for (GTK_WINDOW (dialog), GTK_WINDOW (toplevel));
|
|
Packit Service |
d328f3 |
tmp = g_strdup_printf (_("Editing PPP authentication methods for %s"), priv->connection_id);
|
|
Packit Service |
d328f3 |
gtk_window_set_title (GTK_WINDOW (dialog), tmp);
|
|
Packit Service |
d328f3 |
g_free (tmp);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
g_signal_connect (G_OBJECT (dialog), "response", G_CALLBACK (auth_methods_dialog_response_cb), self);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
gtk_widget_show_all (dialog);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
populate_ui (CEPagePpp *self, NMConnection *connection)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
CEPagePppPrivate *priv = CE_PAGE_PPP_GET_PRIVATE (self);
|
|
Packit Service |
d328f3 |
NMSettingPpp *setting = priv->setting;
|
|
Packit Service |
d328f3 |
gboolean require_mppe, require_mppe_128, mppe_stateful, nobsdcomp, nodeflate, no_vj_comp;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
g_object_get (setting,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_REFUSE_PAP, &priv->refuse_pap,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_REFUSE_CHAP, &priv->refuse_chap,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_REFUSE_MSCHAPV2, &priv->refuse_mschapv2,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_REFUSE_MSCHAP, &priv->refuse_mschap,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_REFUSE_EAP, &priv->refuse_eap,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_REQUIRE_MPPE, &require_mppe,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_REQUIRE_MPPE_128, &require_mppe_128,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_MPPE_STATEFUL, &mppe_stateful,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_NOBSDCOMP, &nobsdcomp,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_NODEFLATE, &nodeflate,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_NO_VJ_COMP, &no_vj_comp,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_LCP_ECHO_INTERVAL, &priv->orig_lcp_echo_interval,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_LCP_ECHO_FAILURE, &priv->orig_lcp_echo_failure,
|
|
Packit Service |
d328f3 |
NULL);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
update_auth_methods_list (self);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
g_signal_connect (priv->auth_methods_button, "clicked", G_CALLBACK (auth_methods_button_clicked_cb), self);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
gtk_toggle_button_set_active (priv->use_mppe, require_mppe);
|
|
Packit Service |
d328f3 |
g_signal_connect (priv->use_mppe, "toggled", G_CALLBACK (use_mppe_toggled_cb), self);
|
|
Packit Service |
d328f3 |
use_mppe_toggled_cb (priv->use_mppe, self);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
gtk_toggle_button_set_active (priv->mppe_require_128, require_mppe_128);
|
|
Packit Service |
d328f3 |
g_signal_connect_swapped (priv->mppe_require_128, "toggled", G_CALLBACK (ce_page_changed), self);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
gtk_toggle_button_set_active (priv->use_mppe_stateful, mppe_stateful);
|
|
Packit Service |
d328f3 |
g_signal_connect_swapped (priv->use_mppe_stateful, "toggled", G_CALLBACK (ce_page_changed), self);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
gtk_toggle_button_set_active (priv->allow_bsdcomp, !nobsdcomp);
|
|
Packit Service |
d328f3 |
g_signal_connect_swapped (priv->allow_bsdcomp, "toggled", G_CALLBACK (ce_page_changed), self);
|
|
Packit Service |
d328f3 |
gtk_toggle_button_set_active (priv->allow_deflate, !nodeflate);
|
|
Packit Service |
d328f3 |
g_signal_connect_swapped (priv->allow_deflate, "toggled", G_CALLBACK (ce_page_changed), self);
|
|
Packit Service |
d328f3 |
gtk_toggle_button_set_active (priv->use_vj_comp, !no_vj_comp);
|
|
Packit Service |
d328f3 |
g_signal_connect_swapped (priv->use_vj_comp, "toggled", G_CALLBACK (ce_page_changed), self);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
gtk_toggle_button_set_active (priv->send_ppp_echo, (priv->orig_lcp_echo_interval > 0) ? TRUE : FALSE);
|
|
Packit Service |
d328f3 |
g_signal_connect_swapped (priv->send_ppp_echo, "toggled", G_CALLBACK (ce_page_changed), self);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
finish_setup (CEPagePpp *self, gpointer user_data)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
populate_ui (self, CE_PAGE (self)->connection);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
CEPage *
|
|
Packit Service |
d328f3 |
ce_page_ppp_new (NMConnectionEditor *editor,
|
|
Packit Service |
d328f3 |
NMConnection *connection,
|
|
Packit Service |
d328f3 |
GtkWindow *parent_window,
|
|
Packit Service |
d328f3 |
NMClient *client,
|
|
Packit Service |
d328f3 |
const char **out_secrets_setting_name,
|
|
Packit Service |
d328f3 |
GError **error)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
CEPagePpp *self;
|
|
Packit Service |
d328f3 |
CEPagePppPrivate *priv;
|
|
Packit Service |
d328f3 |
NMSettingConnection *s_con;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
self = CE_PAGE_PPP (ce_page_new (CE_TYPE_PAGE_PPP,
|
|
Packit Service |
d328f3 |
editor,
|
|
Packit Service |
d328f3 |
connection,
|
|
Packit Service |
d328f3 |
parent_window,
|
|
Packit Service |
d328f3 |
client,
|
|
Packit Service |
d328f3 |
"/org/gnome/nm_connection_editor/ce-page-ppp.ui",
|
|
Packit Service |
d328f3 |
"PppPage",
|
|
Packit Service |
d328f3 |
_("PPP Settings")));
|
|
Packit Service |
d328f3 |
if (!self) {
|
|
Packit Service |
d328f3 |
g_set_error_literal (error, NMA_ERROR, NMA_ERROR_GENERIC, _("Could not load PPP user interface."));
|
|
Packit Service |
d328f3 |
return NULL;
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
ppp_private_init (self);
|
|
Packit Service |
d328f3 |
priv = CE_PAGE_PPP_GET_PRIVATE (self);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
priv->setting = nm_connection_get_setting_ppp (connection);
|
|
Packit Service |
d328f3 |
if (!priv->setting) {
|
|
Packit Service |
d328f3 |
priv->setting = NM_SETTING_PPP (nm_setting_ppp_new ());
|
|
Packit Service |
d328f3 |
nm_connection_add_setting (connection, NM_SETTING (priv->setting));
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
priv->window_group = gtk_window_group_new ();
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
s_con = nm_connection_get_setting_connection (connection);
|
|
Packit Service |
d328f3 |
g_assert (s_con);
|
|
Packit Service |
d328f3 |
priv->connection_id = g_strdup (nm_setting_connection_get_id (s_con));
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
g_signal_connect (self, CE_PAGE_INITIALIZED, G_CALLBACK (finish_setup), NULL);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
*out_secrets_setting_name = NM_SETTING_PPP_SETTING_NAME;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
return CE_PAGE (self);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
ui_to_setting (CEPagePpp *self)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
CEPagePppPrivate *priv = CE_PAGE_PPP_GET_PRIVATE (self);
|
|
Packit Service |
d328f3 |
gboolean require_mppe;
|
|
Packit Service |
d328f3 |
gboolean require_mppe_128;
|
|
Packit Service |
d328f3 |
gboolean mppe_stateful;
|
|
Packit Service |
d328f3 |
gboolean nobsdcomp;
|
|
Packit Service |
d328f3 |
gboolean nodeflate;
|
|
Packit Service |
d328f3 |
gboolean no_vj_comp;
|
|
Packit Service |
d328f3 |
guint lcp_echo_failure = 0, lcp_echo_interval = 0;
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
require_mppe = gtk_toggle_button_get_active (priv->use_mppe);
|
|
Packit Service |
d328f3 |
require_mppe_128 = gtk_toggle_button_get_active (priv->mppe_require_128);
|
|
Packit Service |
d328f3 |
mppe_stateful = gtk_toggle_button_get_active (priv->use_mppe_stateful);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
nobsdcomp = !gtk_toggle_button_get_active (priv->allow_bsdcomp);
|
|
Packit Service |
d328f3 |
nodeflate = !gtk_toggle_button_get_active (priv->allow_deflate);
|
|
Packit Service |
d328f3 |
no_vj_comp = !gtk_toggle_button_get_active (priv->use_vj_comp);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
if (gtk_toggle_button_get_active (priv->send_ppp_echo)) {
|
|
Packit Service |
d328f3 |
if (priv->orig_lcp_echo_failure && priv->orig_lcp_echo_interval) {
|
|
Packit Service |
d328f3 |
lcp_echo_failure = priv->orig_lcp_echo_failure;
|
|
Packit Service |
d328f3 |
lcp_echo_interval = priv->orig_lcp_echo_interval;
|
|
Packit Service |
d328f3 |
} else {
|
|
Packit Service |
d328f3 |
/* Set defaults */
|
|
Packit Service |
d328f3 |
lcp_echo_failure = 5;
|
|
Packit Service |
d328f3 |
lcp_echo_interval = 30;
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
g_object_set (priv->setting,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_REFUSE_EAP, priv->refuse_eap,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_REFUSE_PAP, priv->refuse_pap,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_REFUSE_CHAP, priv->refuse_chap,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_REFUSE_MSCHAP, priv->refuse_mschap,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_REFUSE_MSCHAPV2, priv->refuse_mschapv2,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_NOBSDCOMP, nobsdcomp,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_NODEFLATE, nodeflate,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_NO_VJ_COMP, no_vj_comp,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_REQUIRE_MPPE, require_mppe,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_REQUIRE_MPPE_128, require_mppe_128,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_MPPE_STATEFUL, mppe_stateful,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_LCP_ECHO_FAILURE, lcp_echo_failure,
|
|
Packit Service |
d328f3 |
NM_SETTING_PPP_LCP_ECHO_INTERVAL, lcp_echo_interval,
|
|
Packit Service |
d328f3 |
NULL);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static gboolean
|
|
Packit Service |
d328f3 |
ce_page_validate_v (CEPage *page, NMConnection *connection, GError **error)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
CEPagePpp *self = CE_PAGE_PPP (page);
|
|
Packit Service |
d328f3 |
CEPagePppPrivate *priv = CE_PAGE_PPP_GET_PRIVATE (self);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
ui_to_setting (self);
|
|
Packit Service |
d328f3 |
return nm_setting_verify (NM_SETTING (priv->setting), NULL, error);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
ce_page_ppp_init (CEPagePpp *self)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
dispose (GObject *object)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
CEPagePppPrivate *priv = CE_PAGE_PPP_GET_PRIVATE (object);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
g_clear_object (&priv->window_group);
|
|
Packit Service |
d328f3 |
g_clear_pointer (&priv->connection_id, g_free);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
G_OBJECT_CLASS (ce_page_ppp_parent_class)->dispose (object);
|
|
Packit Service |
d328f3 |
}
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
static void
|
|
Packit Service |
d328f3 |
ce_page_ppp_class_init (CEPagePppClass *ppp_class)
|
|
Packit Service |
d328f3 |
{
|
|
Packit Service |
d328f3 |
GObjectClass *object_class = G_OBJECT_CLASS (ppp_class);
|
|
Packit Service |
d328f3 |
CEPageClass *parent_class = CE_PAGE_CLASS (ppp_class);
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
g_type_class_add_private (object_class, sizeof (CEPagePppPrivate));
|
|
Packit Service |
d328f3 |
|
|
Packit Service |
d328f3 |
/* virtual methods */
|
|
Packit Service |
d328f3 |
parent_class->ce_page_validate_v = ce_page_validate_v;
|
|
Packit Service |
d328f3 |
object_class->dispose = dispose;
|
|
Packit Service |
d328f3 |
}
|