[NetworkManager-openvpn: 1/3] support for remote-random-hostname parameter
- From: Beniamino Galvani <bgalvani src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [NetworkManager-openvpn: 1/3] support for remote-random-hostname parameter
- Date: Tue, 7 Jul 2020 08:05:22 +0000 (UTC)
commit 64c9877db25b2f3c3f77e64693dfb25229917cbf
Author: Alex Forrow <alex forrow com>
Date: Wed May 27 23:16:08 2020 +0100
support for remote-random-hostname parameter
properties/import-export.c | 10 ++++++++++
properties/nm-openvpn-dialog.ui | 29 ++++++++++++++++++++++++-----
properties/nm-openvpn-editor.c | 6 ++++++
shared/nm-service-defines.h | 1 +
shared/utils.h | 1 +
src/nm-openvpn-service.c | 5 +++++
6 files changed, 47 insertions(+), 5 deletions(-)
---
diff --git a/properties/import-export.c b/properties/import-export.c
index 151a223..816cd3d 100644
--- a/properties/import-export.c
+++ b/properties/import-export.c
@@ -1186,6 +1186,13 @@ do_import (const char *path, const char *contents, gsize contents_len, GError **
continue;
}
+ if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_REMOTE_RANDOM_HOSTNAME)) {
+ if (!args_params_check_nargs_n (params, 0, &line_error))
+ goto handle_line_error;
+ setting_vpn_add_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE_RANDOM_HOSTNAME, "yes");
+ continue;
+ }
+
if (NM_IN_STRSET (params[0], NMV_OVPN_TAG_TUN_IPV6)) {
if (!args_params_check_nargs_n (params, 0, &line_error))
goto handle_line_error;
@@ -1948,6 +1955,9 @@ do_export_create (NMConnection *connection, const char *path, GError **error)
if (nm_streq0 (nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE_RANDOM), "yes"))
args_write_line (f, NMV_OVPN_TAG_REMOTE_RANDOM);
+ if (nm_streq0 (nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE_RANDOM_HOSTNAME), "yes"))
+ args_write_line (f, NMV_OVPN_TAG_REMOTE_RANDOM_HOSTNAME);
+
if (nm_streq0 (nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_TUN_IPV6), "yes"))
args_write_line (f, NMV_OVPN_TAG_TUN_IPV6);
diff --git a/properties/nm-openvpn-dialog.ui b/properties/nm-openvpn-dialog.ui
index 98cd828..bd1ad1d 100644
--- a/properties/nm-openvpn-dialog.ui
+++ b/properties/nm-openvpn-dialog.ui
@@ -1316,6 +1316,25 @@ config: remote-random</property>
<property name="position">8</property>
</packing>
</child>
+ <child>
+ <object class="GtkCheckButton" id="remote_random_hostname_checkbutton">
+ <property name="label" translatable="yes">_Prefix remote DNS name with random
string</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="tooltip_text" translatable="yes">Adds a random string to remote DNS name
to avoid DNS caching.
+config: remote-random-hostname</property>
+ <property name="use_underline">True</property>
+ <property name="xalign">0</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">9</property>
+ </packing>
+ </child>
<child>
<object class="GtkCheckButton" id="tun_ipv6_checkbutton">
<property name="label" translatable="yes">IPv6 tun link</property>
@@ -1332,7 +1351,7 @@ config: tun-ipv6</property>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">9</property>
+ <property name="position">10</property>
</packing>
</child>
<child>
@@ -1379,7 +1398,7 @@ config: ping <n></property>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">10</property>
+ <property name="position">11</property>
</packing>
</child>
<child>
@@ -1446,7 +1465,7 @@ config: ping-exit | ping-restart <n></property>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">10</property>
+ <property name="position">12</property>
</packing>
</child>
<child>
@@ -1468,7 +1487,7 @@ config: float</property>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">11</property>
+ <property name="position">13</property>
</packing>
</child>
<child>
@@ -1515,7 +1534,7 @@ config: max-routes <n></property>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
- <property name="position">12</property>
+ <property name="position">14</property>
</packing>
</child>
</object>
diff --git a/properties/nm-openvpn-editor.c b/properties/nm-openvpn-editor.c
index 74c9ddf..d1ebe43 100644
--- a/properties/nm-openvpn-editor.c
+++ b/properties/nm-openvpn-editor.c
@@ -677,6 +677,7 @@ static const char *const advanced_keys[] = {
NM_OPENVPN_KEY_PUSH_PEER_INFO,
NM_OPENVPN_KEY_REMOTE_CERT_TLS,
NM_OPENVPN_KEY_REMOTE_RANDOM,
+ NM_OPENVPN_KEY_REMOTE_RANDOM_HOSTNAME,
NM_OPENVPN_KEY_RENEG_SECONDS,
NM_OPENVPN_KEY_TA,
NM_OPENVPN_KEY_TAP_DEV,
@@ -1600,6 +1601,7 @@ advanced_dialog_new (GHashTable *hash, const char *contype)
_builder_init_toggle_button (builder, "remote_random_checkbutton", _hash_get_boolean (hash,
NM_OPENVPN_KEY_REMOTE_RANDOM));
+ _builder_init_toggle_button (builder, "remote_random_hostname_checkbutton", _hash_get_boolean (hash,
NM_OPENVPN_KEY_REMOTE_RANDOM_HOSTNAME));
_builder_init_toggle_button (builder, "tun_ipv6_checkbutton", _hash_get_boolean (hash,
NM_OPENVPN_KEY_TUN_IPV6));
widget = GTK_WIDGET (gtk_builder_get_object (builder, "cipher_combo"));
@@ -1955,6 +1957,10 @@ advanced_dialog_new_hash_from_dialog (GtkWidget *dialog)
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
g_hash_table_insert (hash, NM_OPENVPN_KEY_REMOTE_RANDOM, g_strdup ("yes"));
+ widget = GTK_WIDGET (gtk_builder_get_object (builder, "remote_random_hostname_checkbutton"));
+ if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
+ g_hash_table_insert (hash, NM_OPENVPN_KEY_REMOTE_RANDOM_HOSTNAME, g_strdup ("yes"));
+
widget = GTK_WIDGET (gtk_builder_get_object (builder, "tun_ipv6_checkbutton"));
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (widget)))
g_hash_table_insert (hash, NM_OPENVPN_KEY_TUN_IPV6, g_strdup ("yes"));
diff --git a/shared/nm-service-defines.h b/shared/nm-service-defines.h
index 08337f8..4a858b4 100644
--- a/shared/nm-service-defines.h
+++ b/shared/nm-service-defines.h
@@ -67,6 +67,7 @@
#define NM_OPENVPN_KEY_REMOTE_CERT_TLS "remote-cert-tls"
#define NM_OPENVPN_KEY_REMOTE_IP "remote-ip"
#define NM_OPENVPN_KEY_REMOTE_RANDOM "remote-random"
+#define NM_OPENVPN_KEY_REMOTE_RANDOM_HOSTNAME "remote-random-hostname"
#define NM_OPENVPN_KEY_RENEG_SECONDS "reneg-seconds"
#define NM_OPENVPN_KEY_STATIC_KEY "static-key"
#define NM_OPENVPN_KEY_STATIC_KEY_DIRECTION "static-key-direction"
diff --git a/shared/utils.h b/shared/utils.h
index f2882cf..b4f0294 100644
--- a/shared/utils.h
+++ b/shared/utils.h
@@ -65,6 +65,7 @@
#define NMV_OVPN_TAG_REMOTE "remote"
#define NMV_OVPN_TAG_REMOTE_CERT_TLS "remote-cert-tls"
#define NMV_OVPN_TAG_REMOTE_RANDOM "remote-random"
+#define NMV_OVPN_TAG_REMOTE_RANDOM_HOSTNAME "remote-random-hostname"
#define NMV_OVPN_TAG_RENEG_SEC "reneg-sec"
#define NMV_OVPN_TAG_ROUTE "route"
#define NMV_OVPN_TAG_RPORT "rport"
diff --git a/src/nm-openvpn-service.c b/src/nm-openvpn-service.c
index cf0436d..1e86014 100644
--- a/src/nm-openvpn-service.c
+++ b/src/nm-openvpn-service.c
@@ -171,6 +171,7 @@ static const ValidProperty valid_properties[] = {
{ NM_OPENVPN_KEY_HTTP_PROXY_USERNAME, G_TYPE_STRING, 0, 0, FALSE },
{ NM_OPENVPN_KEY_REMOTE, G_TYPE_STRING, 0, 0, FALSE },
{ NM_OPENVPN_KEY_REMOTE_RANDOM, G_TYPE_BOOLEAN, 0, 0, FALSE },
+ { NM_OPENVPN_KEY_REMOTE_RANDOM_HOSTNAME, G_TYPE_BOOLEAN, 0, 0, FALSE },
{ NM_OPENVPN_KEY_REMOTE_IP, G_TYPE_STRING, 0, 0, TRUE },
{ NM_OPENVPN_KEY_RENEG_SECONDS, G_TYPE_INT, 0, G_MAXINT, FALSE },
{ NM_OPENVPN_KEY_STATIC_KEY, G_TYPE_STRING, 0, 0, FALSE },
@@ -1447,6 +1448,10 @@ nm_openvpn_start_openvpn_binary (NMOpenvpnPlugin *plugin,
if (nm_streq0 (tmp, "yes"))
args_add_strv (args, "--remote-random");
+ tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_REMOTE_RANDOM_HOSTNAME);
+ if (nm_streq0 (tmp, "yes"))
+ args_add_strv (args, "--remote-random-hostname");
+
tmp = nm_setting_vpn_get_data_item (s_vpn, NM_OPENVPN_KEY_TUN_IPV6);
if (nm_streq0 (tmp, "yes"))
args_add_strv (args, "--tun-ipv6");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]