On Mon, 2014-09-29 at 10:27 +0200, Christian Hesse wrote:
> By default interface name is 'tun' with an incrementing number (tun0,
> tun1, ...). By specifying 'Interface name' in vpnc config you can change
> the name to something more descriptice.

Pushed this, thanks!  After some consideration though, I moved the
interface name UI widget to the Advanced dialog, since I don't think
most users would need to enter anything in there.  Hopefully that's OK
with you :)

Dan

> ---
>  properties/nm-vpnc-dialog.ui | 89 
> +++++++++++++++++++++++++++++---------------
>  properties/nm-vpnc.c         | 43 ++++++++++++++++++++-
>  src/nm-vpnc-service.c        | 13 ++++++-
>  3 files changed, 114 insertions(+), 31 deletions(-)
> 
> diff --git a/properties/nm-vpnc-dialog.ui b/properties/nm-vpnc-dialog.ui
> index 168782e..6c46785 100644
> --- a/properties/nm-vpnc-dialog.ui
> +++ b/properties/nm-vpnc-dialog.ui
> @@ -555,7 +555,7 @@ config: DPD idle timeout (our side) 0</property>
>                <object class="GtkTable" id="table2">
>                  <property name="visible">True</property>
>                  <property name="can_focus">False</property>
> -                <property name="n_rows">8</property>
> +                <property name="n_rows">9</property>
>                  <property name="n_columns">3</property>
>                  <property name="column_spacing">6</property>
>                  <property name="row_spacing">6</property>
> @@ -574,8 +574,8 @@ config: DPD idle timeout (our side) 0</property>
>                    <packing>
>                      <property name="left_attach">2</property>
>                      <property name="right_attach">3</property>
> -                    <property name="top_attach">4</property>
> -                    <property name="bottom_attach">5</property>
> +                    <property name="top_attach">5</property>
> +                    <property name="bottom_attach">6</property>
>                    </packing>
>                  </child>
>                  <child>
> @@ -593,8 +593,8 @@ config: DPD idle timeout (our side) 0</property>
>                    <packing>
>                      <property name="left_attach">2</property>
>                      <property name="right_attach">3</property>
> -                    <property name="top_attach">2</property>
> -                    <property name="bottom_attach">3</property>
> +                    <property name="top_attach">3</property>
> +                    <property name="bottom_attach">4</property>
>                    </packing>
>                  </child>
>                  <child>
> @@ -611,8 +611,8 @@ config: DPD idle timeout (our side) 0</property>
>                    <packing>
>                      <property name="left_attach">1</property>
>                      <property name="right_attach">2</property>
> -                    <property name="top_attach">5</property>
> -                    <property name="bottom_attach">6</property>
> +                    <property name="top_attach">6</property>
> +                    <property name="bottom_attach">7</property>
>                    </packing>
>                  </child>
>                  <child>
> @@ -626,8 +626,8 @@ config: IPSec secret &lt;group_password&gt;</property>
>                    <packing>
>                      <property name="left_attach">1</property>
>                      <property name="right_attach">2</property>
> -                    <property name="top_attach">4</property>
> -                    <property name="bottom_attach">5</property>
> +                    <property name="top_attach">5</property>
> +                    <property name="bottom_attach">6</property>
>                      <property name="y_options"></property>
>                    </packing>
>                  </child>
> @@ -641,8 +641,8 @@ config: IPSec secret &lt;group_password&gt;</property>
>                      <property 
> name="mnemonic_widget">group_password_entry</property>
>                    </object>
>                    <packing>
> -                    <property name="top_attach">4</property>
> -                    <property name="bottom_attach">5</property>
> +                    <property name="top_attach">5</property>
> +                    <property name="bottom_attach">6</property>
>                      <property name="x_options">GTK_FILL</property>
>                      <property name="y_options"></property>
>                    </packing>
> @@ -657,6 +657,8 @@ config: IPSec secret &lt;group_password&gt;</property>
>                      <property name="mnemonic_widget">gateway_entry</property>
>                    </object>
>                    <packing>
> +                    <property name="top_attach">1</property>
> +                    <property name="bottom_attach">2</property>
>                      <property name="x_options">GTK_FILL</property>
>                      <property name="y_options"></property>
>                    </packing>
> @@ -666,13 +668,27 @@ config: IPSec secret &lt;group_password&gt;</property>
>                      <property name="visible">True</property>
>                      <property name="can_focus">False</property>
>                      <property name="xalign">0</property>
> +                    <property name="label" translatable="yes">_Interface 
> name:</property>
> +                    <property name="use_underline">True</property>
> +                    <property 
> name="mnemonic_widget">interface_name_entry</property>
> +                  </object>
> +                  <packing>
> +                    <property name="x_options">GTK_FILL</property>
> +                    <property name="y_options"></property>
> +                  </packing>
> +                </child>
> +                <child>
> +                  <object class="GtkLabel" id="label25">
> +                    <property name="visible">True</property>
> +                    <property name="can_focus">False</property>
> +                    <property name="xalign">0</property>
>                      <property name="label" translatable="yes">G_roup 
> name:</property>
>                      <property name="use_underline">True</property>
>                      <property name="mnemonic_widget">group_entry</property>
>                    </object>
>                    <packing>
> -                    <property name="top_attach">3</property>
> -                    <property name="bottom_attach">4</property>
> +                    <property name="top_attach">4</property>
> +                    <property name="bottom_attach">5</property>
>                      <property name="x_options">GTK_FILL</property>
>                      <property name="y_options"></property>
>                    </packing>
> @@ -687,6 +703,21 @@ config: IPSec gateway &lt;gateway&gt;</property>
>                    <packing>
>                      <property name="left_attach">1</property>
>                      <property name="right_attach">2</property>
> +                    <property name="top_attach">1</property>
> +                    <property name="bottom_attach">2</property>
> +                    <property name="y_options"></property>
> +                  </packing>
> +                </child>
> +                <child>
> +                  <object class="GtkEntry" id="interface_name_entry">
> +                    <property name="visible">True</property>
> +                    <property name="can_focus">True</property>
> +                 <property name="tooltip_text" translatable="yes">Name of 
> the tun/tap
> +network interface</property>
> +                  </object>
> +                  <packing>
> +                    <property name="left_attach">1</property>
> +                    <property name="right_attach">2</property>
>                      <property name="y_options"></property>
>                    </packing>
>                  </child>
> @@ -700,8 +731,8 @@ config: IPSec ID &lt;group_name&gt;</property>
>                    <packing>
>                      <property name="left_attach">1</property>
>                      <property name="right_attach">2</property>
> -                    <property name="top_attach">3</property>
> -                    <property name="bottom_attach">4</property>
> +                    <property name="top_attach">4</property>
> +                    <property name="bottom_attach">5</property>
>                      <property name="y_options"></property>
>                    </packing>
>                  </child>
> @@ -715,8 +746,8 @@ config: IPSec ID &lt;group_name&gt;</property>
>                      <property 
> name="mnemonic_widget">user_password_entry</property>
>                    </object>
>                    <packing>
> -                    <property name="top_attach">2</property>
> -                    <property name="bottom_attach">3</property>
> +                    <property name="top_attach">3</property>
> +                    <property name="bottom_attach">4</property>
>                      <property name="x_options">GTK_FILL</property>
>                      <property name="y_options"></property>
>                    </packing>
> @@ -732,8 +763,8 @@ config: Xauth password &lt;password&gt;</property>
>                    <packing>
>                      <property name="left_attach">1</property>
>                      <property name="right_attach">2</property>
> -                    <property name="top_attach">2</property>
> -                    <property name="bottom_attach">3</property>
> +                    <property name="top_attach">3</property>
> +                    <property name="bottom_attach">4</property>
>                      <property name="y_options"></property>
>                    </packing>
>                  </child>
> @@ -749,8 +780,8 @@ config: Xauth username &lt;user_name&gt;</property>
>                    <packing>
>                      <property name="left_attach">1</property>
>                      <property name="right_attach">2</property>
> -                    <property name="top_attach">1</property>
> -                    <property name="bottom_attach">2</property>
> +                    <property name="top_attach">2</property>
> +                    <property name="bottom_attach">3</property>
>                      <property name="y_options"></property>
>                    </packing>
>                  </child>
> @@ -764,8 +795,8 @@ config: Xauth username &lt;user_name&gt;</property>
>                      <property name="mnemonic_widget">user_entry</property>
>                    </object>
>                    <packing>
> -                    <property name="top_attach">1</property>
> -                    <property name="bottom_attach">2</property>
> +                    <property name="top_attach">2</property>
> +                    <property name="bottom_attach">3</property>
>                      <property name="x_options">GTK_FILL</property>
>                      <property name="y_options"></property>
>                    </packing>
> @@ -785,8 +816,8 @@ config: IKE Authmode hybrid</property>
>                    </object>
>                    <packing>
>                      <property name="right_attach">3</property>
> -                    <property name="top_attach">6</property>
> -                    <property name="bottom_attach">7</property>
> +                    <property name="top_attach">7</property>
> +                    <property name="bottom_attach">8</property>
>                    </packing>
>                  </child>
>                  <child>
> @@ -806,8 +837,8 @@ config: IKE Authmode hybrid</property>
>                      </child>
>                    </object>
>                    <packing>
> -                    <property name="top_attach">7</property>
> -                    <property name="bottom_attach">8</property>
> +                    <property name="top_attach">8</property>
> +                    <property name="bottom_attach">9</property>
>                    </packing>
>                  </child>
>                  <child>
> @@ -820,8 +851,8 @@ config: CA-File</property>
>                    <packing>
>                      <property name="left_attach">1</property>
>                      <property name="right_attach">2</property>
> -                    <property name="top_attach">7</property>
> -                    <property name="bottom_attach">8</property>
> +                    <property name="top_attach">8</property>
> +                    <property name="bottom_attach">9</property>
>                    </packing>
>                  </child>
>                  <child>
> diff --git a/properties/nm-vpnc.c b/properties/nm-vpnc.c
> index 7e7dcb3..170bd5e 100644
> --- a/properties/nm-vpnc.c
> +++ b/properties/nm-vpnc.c
> @@ -453,6 +453,7 @@ init_plugin_ui (VpncPluginUiWidget *self,
>                  GError **error)
>  {
>       VpncPluginUiWidgetPrivate *priv = VPNC_PLUGIN_UI_WIDGET_GET_PRIVATE 
> (self);
> +     NMSettingConnection *s_con = NULL;
>       NMSettingVPN *s_vpn = NULL;
>       GtkWidget *widget;
>       GtkListStore *store;
> @@ -466,11 +467,23 @@ init_plugin_ui (VpncPluginUiWidget *self,
>       gboolean enabled = FALSE;
>       GtkFileFilter *filter;
>  
> -     if (connection)
> +     if (connection) {
> +             s_con = nm_connection_get_setting_connection (connection);
>               s_vpn = nm_connection_get_setting_vpn (connection);
> +     }
>  
>       priv->group = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
>  
> +     widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, 
> "interface_name_entry"));
> +     g_return_val_if_fail (widget != NULL, FALSE);
> +     gtk_size_group_add_widget (priv->group, GTK_WIDGET (widget));
> +     if (s_con) {
> +             value = nm_setting_connection_get_interface_name (s_con);
> +             if (value && strlen (value))
> +                     gtk_entry_set_text (GTK_ENTRY (widget), value);
> +     }
> +     g_signal_connect (G_OBJECT (widget), "changed", G_CALLBACK 
> (stuff_changed_cb), self);
> +
>       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, 
> "gateway_entry"));
>       g_return_val_if_fail (widget != NULL, FALSE);
>       gtk_size_group_add_widget (priv->group, GTK_WIDGET (widget));
> @@ -892,6 +905,7 @@ update_connection (NMVpnPluginUiWidgetInterface *iface,
>  {
>       VpncPluginUiWidget *self = VPNC_PLUGIN_UI_WIDGET (iface);
>       VpncPluginUiWidgetPrivate *priv = VPNC_PLUGIN_UI_WIDGET_GET_PRIVATE 
> (self);
> +     NMSettingConnection *s_con;
>       NMSettingVPN *s_vpn;
>       GtkWidget *widget;
>       char *str;
> @@ -902,9 +916,18 @@ update_connection (NMVpnPluginUiWidgetInterface *iface,
>       if (!check_validity (self, error))
>               return FALSE;
>  
> +     s_con = nm_connection_get_setting_connection (connection);
> +
>       s_vpn = NM_SETTING_VPN (nm_setting_vpn_new ());
>       g_object_set (s_vpn, NM_SETTING_VPN_SERVICE_TYPE, NM_DBUS_SERVICE_VPNC, 
> NULL);
>  
> +     /* Interface name */
> +     widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, 
> "interface_name_entry"));
> +     str = (char *) gtk_entry_get_text (GTK_ENTRY (widget));
> +     if (str && strlen (str))
> +             g_object_set (G_OBJECT (s_con),
> +                             NM_SETTING_CONNECTION_INTERFACE_NAME, str, 
> NULL);
> +
>       /* Gateway */
>       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, 
> "gateway_entry"));
>       str = (char *) gtk_entry_get_text (GTK_ENTRY (widget));
> @@ -1343,6 +1366,14 @@ import (NMVpnPluginUiInterface *iface, const char 
> *path, GError **error)
>       s_ip4 = NM_SETTING_IP4_CONFIG (nm_setting_ip4_config_new ());
>       nm_connection_add_setting (connection, NM_SETTING (s_ip4));
>  
> +     /* Interface Name */
> +     buf = key_file_get_string_helper (keyfile, "main", "InterfaceName", 
> NULL);
> +     if (buf) {
> +             g_object_set (G_OBJECT (s_con),
> +                             NM_SETTING_CONNECTION_INTERFACE_NAME, buf, 
> NULL);
> +             g_free (buf);
> +     }
> +
>       /* Gateway */
>       buf = key_file_get_string_helper (keyfile, "main", "Host", NULL);
>       if (buf) {
> @@ -1582,6 +1613,7 @@ export (NMVpnPluginUiInterface *iface,
>       FILE *f;
>       const char *value;
>       const char *gateway = NULL;
> +     GString *interface_name = NULL;
>       gboolean enablenat = TRUE;
>       gboolean singledes = FALSE;
>       const char *groupname = NULL;
> @@ -1614,6 +1646,11 @@ export (NMVpnPluginUiInterface *iface,
>               return FALSE;
>       }
>  
> +     interface_name = g_string_new("");
> +     value = nm_setting_connection_get_interface_name (s_con);
> +     if (value && strlen (value))
> +             g_string_printf (interface_name, "InterfaceName=%s\n", value);
> +
>       value = nm_setting_vpn_get_data_item (s_vpn, NM_VPNC_KEY_GATEWAY);
>       if (value && strlen (value))
>               gateway = value;
> @@ -1729,6 +1766,7 @@ export (NMVpnPluginUiInterface *iface,
>       fprintf (f, 
>                "[main]\n"
>                "Description=%s\n"
> +              "%s"
>                "Host=%s\n"
>                "AuthType=1\n"
>                "GroupName=%s\n"
> @@ -1770,6 +1808,7 @@ export (NMVpnPluginUiInterface *iface,
>                "X-NM-SaveGroupPassword=%s\n"
>                "%s\n",
>                /* Description */   nm_setting_connection_get_id (s_con),
> +              /* InterfaceName */ (interface_name->len) ? 
> interface_name->str : "",
>                /* Host */          gateway,
>                /* GroupName */     groupname,
>                /* GroupPassword */ group_pw ? group_pw : "",
> @@ -1789,6 +1828,8 @@ export (NMVpnPluginUiInterface *iface,
>       success = TRUE;
>  
>  done:
> +     if (interface_name)
> +             g_string_free (interface_name, TRUE);
>       if (routes)
>               g_string_free (routes, TRUE);
>       if (uselegacyikeport)
> diff --git a/src/nm-vpnc-service.c b/src/nm-vpnc-service.c
> index d5bee61..0e0e0bc 100644
> --- a/src/nm-vpnc-service.c
> +++ b/src/nm-vpnc-service.c
> @@ -460,6 +460,7 @@ write_one_property (const char *key, const char *value, 
> gpointer user_data)
>  
>  static gboolean
>  nm_vpnc_config_write (gint vpnc_fd,
> +                      NMSettingConnection *s_con,
>                        NMSettingVPN *s_vpn,
>                        GError **error)
>  {
> @@ -469,13 +470,19 @@ nm_vpnc_config_write (gint vpnc_fd,
>       const char *default_username;
>       const char *pw_type;
>       const char *local_port;
> +     const char *interface_name;
>       NMSettingSecretFlags secret_flags = NM_SETTING_SECRET_FLAG_NONE;
>  
> +     interface_name = nm_setting_connection_get_interface_name(s_con);
> +
>       default_username = nm_setting_vpn_get_user_name (s_vpn);
>  
>       if (debug)
>               write_config_option (vpnc_fd, "Debug 3\n");
>  
> +     if (interface_name && strlen(interface_name) > 0)
> +             write_config_option (vpnc_fd, "Interface name %s\n", 
> interface_name);
> +
>       write_config_option (vpnc_fd, "Script " NM_VPNC_HELPER_PATH "\n");
>  
>       write_config_option (vpnc_fd,
> @@ -553,9 +560,13 @@ real_connect (NMVPNPlugin   *plugin,
>  {
>       NMVPNCPluginPrivate *priv = NM_VPNC_PLUGIN_GET_PRIVATE (plugin);
>       NMSettingVPN *s_vpn;
> +     NMSettingConnection *s_con;
>       gint vpnc_fd = -1;
>       gboolean success = FALSE;
>  
> +     s_con = NM_SETTING_CONNECTION (nm_connection_get_setting (connection, 
> NM_TYPE_SETTING_CONNECTION));
> +     g_assert (s_con);
> +
>       s_vpn = NM_SETTING_VPN (nm_connection_get_setting (connection, 
> NM_TYPE_SETTING_VPN));
>       g_assert (s_vpn);
>  
> @@ -573,7 +584,7 @@ real_connect (NMVPNPlugin   *plugin,
>       if (getenv ("NM_VPNC_DUMP_CONNECTION") || debug)
>               nm_connection_dump (connection);
>  
> -     if (!nm_vpnc_config_write (vpnc_fd, s_vpn, error))
> +     if (!nm_vpnc_config_write (vpnc_fd, s_con, s_vpn, error))
>               goto out;
>  
>       success = TRUE;


_______________________________________________
networkmanager-list mailing list
networkmanager-list@gnome.org
https://mail.gnome.org/mailman/listinfo/networkmanager-list

Reply via email to