[network-manager-libreswan/lr/ikev2: 3/3] properties: add IKEv2 selector



commit 90ba7561aba457dd3b5da5c0f9283e78a597c6a7
Author: Lubomir Rintel <lkundrak v3 sk>
Date:   Mon Jan 25 19:49:07 2016 +0100

    properties: add IKEv2 selector

 properties/nm-libreswan-dialog.ui |   55 ++++++++++++++++++++++++++----------
 properties/nm-libreswan.c         |   57 +++++++++++++++++++++++++++++++++---
 2 files changed, 92 insertions(+), 20 deletions(-)
---
diff --git a/properties/nm-libreswan-dialog.ui b/properties/nm-libreswan-dialog.ui
index b1bb64d..5fbff6f 100644
--- a/properties/nm-libreswan-dialog.ui
+++ b/properties/nm-libreswan-dialog.ui
@@ -52,21 +52,6 @@
               </packing>
             </child>
             <child>
-              <object class="GtkCheckButton" id="show_passwords_checkbutton">
-                <property name="label" translatable="yes">Show passwords</property>
-                <property name="use_action_appearance">False</property>
-                <property name="visible">True</property>
-                <property name="can_focus">True</property>
-                <property name="receives_default">False</property>
-                <property name="xalign">0</property>
-                <property name="draw_indicator">True</property>
-              </object>
-              <packing>
-                <property name="left_attach">1</property>
-                <property name="top_attach">5</property>
-              </packing>
-            </child>
-            <child>
               <object class="GtkEntry" id="secret_entry">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
@@ -177,6 +162,46 @@
               </packing>
             </child>
             <child>
+              <object class="GtkSwitch" id="ikev2_switch">
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="halign">start</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="top_attach">5</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkCheckButton" id="show_passwords_checkbutton">
+                <property name="label" translatable="yes">Show passwords</property>
+                <property name="use_action_appearance">False</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">False</property>
+                <property name="halign">start</property>
+                <property name="xalign">0</property>
+                <property name="draw_indicator">True</property>
+              </object>
+              <packing>
+                <property name="left_attach">1</property>
+                <property name="top_attach">6</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkLabel" id="label6">
+                <property name="visible">True</property>
+                <property name="can_focus">False</property>
+                <property name="label" translatable="yes">IKEv_2:</property>
+                <property name="use_underline">True</property>
+                <property name="xalign">0</property>
+              </object>
+              <packing>
+                <property name="left_attach">0</property>
+                <property name="top_attach">5</property>
+              </packing>
+            </child>
+            <child>
               <placeholder/>
             </child>
           </object>
diff --git a/properties/nm-libreswan.c b/properties/nm-libreswan.c
index c3dc988..262afc8 100644
--- a/properties/nm-libreswan.c
+++ b/properties/nm-libreswan.c
@@ -167,12 +167,43 @@ show_toggled_cb (GtkCheckButton *button, LibreswanEditor *self)
        g_assert (widget);
        gtk_entry_set_visibility (GTK_ENTRY (widget), visible);
 
-       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "group_password_entry"));
+       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "secret_entry"));
        g_assert (widget);
        gtk_entry_set_visibility (GTK_ENTRY (widget), visible);
 }
 
 static void
+ikev2_toggled_cb (GtkSwitch *swtch, gboolean state, LibreswanEditor *self)
+{
+       LibreswanEditorPrivate *priv = LIBRESWAN_EDITOR_GET_PRIVATE (self);
+       GtkWidget *widget;
+
+       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "group_label"));
+       g_assert (widget);
+       gtk_widget_set_sensitive (widget, !state);
+
+       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "group_entry"));
+       g_assert (widget);
+       gtk_widget_set_sensitive (widget, !state);
+
+       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "user_label"));
+       g_assert (widget);
+       gtk_widget_set_sensitive (widget, !state);
+
+       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "user_entry"));
+       g_assert (widget);
+       gtk_widget_set_sensitive (widget, !state);
+
+       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "user_password_label"));
+       g_assert (widget);
+       gtk_widget_set_sensitive (widget, !state);
+
+       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "user_password_entry"));
+       g_assert (widget);
+       gtk_widget_set_sensitive (widget, !state);
+}
+
+static void
 password_storage_changed_cb (GObject *entry,
                             GParamSpec *pspec,
                             gpointer user_data)
@@ -276,7 +307,7 @@ init_editor_plugin (LibreswanEditor *self,
                               NM_LIBRESWAN_XAUTH_PASSWORD,
                               new_connection);
        setup_password_widget (self,
-                              "group_password_entry",
+                              "secret_entry",
                               s_vpn,
                               NM_LIBRESWAN_PSK_VALUE,
                               new_connection);
@@ -290,7 +321,7 @@ init_editor_plugin (LibreswanEditor *self,
                            s_vpn,
                            NM_LIBRESWAN_PSK_VALUE,
                            NM_LIBRESWAN_PSK_INPUT_MODES,
-                           "group_password_entry");
+                           "secret_entry");
 
        widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "user_entry"));
        g_return_val_if_fail (widget != NULL, FALSE);
@@ -340,6 +371,17 @@ init_editor_plugin (LibreswanEditor *self,
                          (GCallback) show_toggled_cb,
                          self);
 
+       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "ikev2_switch"));
+       g_return_val_if_fail (widget != NULL, FALSE);
+       g_signal_connect (G_OBJECT (widget), "state-set",
+                         (GCallback) ikev2_toggled_cb,
+                         self);
+       if (s_vpn) {
+               value = nm_setting_vpn_get_data_item (s_vpn, NM_LIBRESWAN_IKEV2);
+               gtk_switch_set_state (GTK_SWITCH (widget), g_strcmp0 (value, "yes") == 0);
+       }
+       g_signal_connect (G_OBJECT (widget), "changed", G_CALLBACK (stuff_changed_cb), self);
+
        if (s_vpn) {
                const char *type = nm_setting_vpn_get_service_type (s_vpn);
                priv->openswan = (g_strcmp0 (type, NM_VPN_SERVICE_TYPE_OPENSWAN) == 0);
@@ -448,6 +490,11 @@ update_connection (NMVpnEditor *iface,
        if (str && strlen (str))
                nm_setting_vpn_add_data_item (s_vpn, NM_LIBRESWAN_DOMAIN, str);
 
+       /* IKEv2 */
+       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "ikev2_switch"));
+       if (gtk_switch_get_state (GTK_SWITCH (widget)))
+               nm_setting_vpn_add_data_item (s_vpn, NM_LIBRESWAN_IKEV2, "yes");
+
        save_one_password (s_vpn,
                           priv->builder,
                           "user_password_entry",
@@ -455,7 +502,7 @@ update_connection (NMVpnEditor *iface,
                           NM_LIBRESWAN_XAUTH_PASSWORD_INPUT_MODES);
        save_one_password (s_vpn,
                           priv->builder,
-                          "group_password_entry",
+                          "secret_entry",
                           NM_LIBRESWAN_PSK_VALUE,
                           NM_LIBRESWAN_PSK_INPUT_MODES);
 
@@ -542,7 +589,7 @@ dispose (GObject *object)
        g_signal_handlers_disconnect_by_func (G_OBJECT (widget),
                                              (GCallback) password_storage_changed_cb,
                                              plugin);
-       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "group_password_entry"));
+       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "secret_entry"));
        g_signal_handlers_disconnect_by_func (G_OBJECT (widget),
                                              (GCallback) password_storage_changed_cb,
                                              plugin);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]