about summary refs log tree commit diff
path: root/src/dhcp/nm-dhcp-dhclient-utils.c
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2020-06-28 18:59:08 +0200
committerMichael Biebl <biebl@debian.org>2020-06-28 18:59:08 +0200
commit215112eefc83274273a10d9ddb5e107c9beec548 (patch)
treea16052cef4bb8707d6a906dd784a50c75945d03e /src/dhcp/nm-dhcp-dhclient-utils.c
parent5ed4e66e01b005212aee22c255c9c6b2a4b040a9 (diff)
parenta54ac63bbf9b2c71026ac9028a8ffaf186cf3c82 (diff)
Update upstream source from tag 'upstream/1.25.90'
Update to upstream version '1.25.90'
with Debian dir 16d4caa71e8ba8c27ee163c88f11456b6cdc0490
Diffstat (limited to 'src/dhcp/nm-dhcp-dhclient-utils.c')
-rw-r--r--src/dhcp/nm-dhcp-dhclient-utils.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/dhcp/nm-dhcp-dhclient-utils.c b/src/dhcp/nm-dhcp-dhclient-utils.c
index da28abad..76fc1a89 100644
--- a/src/dhcp/nm-dhcp-dhclient-utils.c
+++ b/src/dhcp/nm-dhcp-dhclient-utils.c
@@ -33,6 +33,13 @@
 #define ALSOREQ_TAG "also request "
 #define REQ_TAG "request "
 
+#define MUDURLv4_DEF    "option mudurl code 161 = text;\n"
+#define MUDURLv4_FMT    "send mudurl \"%s\";\n"
+
+#define MUDURLv6_DEF    "option dhcp6.mudurl code 112 = text;\n"
+#define MUDURLv6_FMT    "send dhcp6.mudurl \"%s\";\n"
+
+
 static void
 add_request (GPtrArray *array, const char *item)
 {
@@ -183,6 +190,19 @@ add_hostname6 (GString *str,
 	}
 }
 
+static void add_mud_url_config(GString *str, const char *mud_url, int addr_family)
+{
+	if (mud_url) {
+		if (addr_family == AF_INET) {
+			g_string_append (str, MUDURLv4_DEF);
+			g_string_append_printf (str, MUDURLv4_FMT, mud_url);
+		} else {
+			g_string_append (str, MUDURLv6_DEF);
+			g_string_append_printf (str, MUDURLv6_FMT, mud_url);
+		}
+	}
+}
+
 static GBytes *
 read_client_id (const char *str)
 {
@@ -286,6 +306,7 @@ nm_dhcp_dhclient_create_config (const char *interface,
                                 guint32 timeout,
                                 gboolean use_fqdn,
                                 NMDhcpHostnameFlags hostname_flags,
+                                const char *mud_url,
                                 const char *orig_path,
                                 const char *orig_contents,
                                 GBytes **out_new_client_id)
@@ -451,6 +472,7 @@ nm_dhcp_dhclient_create_config (const char *interface,
 		g_string_append_printf (new_contents, "timeout %u;\n", timeout);
 	}
 
+	add_mud_url_config (new_contents, mud_url, addr_family);
 	if (addr_family == AF_INET) {
 		add_ip4_config (new_contents, client_id, hostname, use_fqdn, hostname_flags);
 		add_request (reqs, "rfc3442-classless-static-routes");