From dbbb08eb01b750532f3dfabf1b397f0adf01f710 Mon Sep 17 00:00:00 2001 From: Beniamino Galvani Date: Mon, 19 Oct 2015 11:32:18 +0200 Subject: [PATCH] dhcp-manager: strip hostname sent by dhcpcd The dhclient DHCP backend strips the domain part from the hostname option sent to server; for consistency among different backends uniform the dhcpcd client to do the same. --- src/dhcp-manager/nm-dhcp-dhcpcd.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/dhcp-manager/nm-dhcp-dhcpcd.c b/src/dhcp-manager/nm-dhcp-dhcpcd.c index c3cc73a48f..0830792145 100644 --- a/src/dhcp-manager/nm-dhcp-dhcpcd.c +++ b/src/dhcp-manager/nm-dhcp-dhcpcd.c @@ -63,8 +63,9 @@ ip4_start (NMDhcpClient *client, const char *dhcp_anycast_addr, const char *last GPtrArray *argv = NULL; pid_t pid = -1; GError *error = NULL; - char *pid_contents = NULL, *binary_name, *cmd_str; + char *pid_contents = NULL, *binary_name, *cmd_str, *dot; const char *iface, *dhcpcd_path, *hostname; + gs_free char *prefix = NULL; g_return_val_if_fail (priv->pid_file == NULL, FALSE); @@ -113,8 +114,14 @@ ip4_start (NMDhcpClient *client, const char *dhcp_anycast_addr, const char *last hostname = nm_dhcp_client_get_hostname (client); if (hostname) { + prefix = strdup (hostname); + dot = strchr (prefix, '.'); + /* get rid of the domain */ + if (dot) + *dot = '\0'; + g_ptr_array_add (argv, (gpointer) "-h"); /* Send hostname to DHCP server */ - g_ptr_array_add (argv, (gpointer) hostname ); + g_ptr_array_add (argv, (gpointer) prefix); } g_ptr_array_add (argv, (gpointer) iface);