summaryrefslogtreecommitdiff
path: root/src/dhcp/nm-dhcp-manager.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/dhcp/nm-dhcp-manager.c')
-rw-r--r--src/dhcp/nm-dhcp-manager.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/dhcp/nm-dhcp-manager.c b/src/dhcp/nm-dhcp-manager.c
index a27f5572bb..2458f6c616 100644
--- a/src/dhcp/nm-dhcp-manager.c
+++ b/src/dhcp/nm-dhcp-manager.c
@@ -17,6 +17,7 @@
#include <stdio.h>
#include "nm-glib-aux/nm-dedup-multi.h"
+#include "systemd/nm-sd-utils-shared.h"
#include "nm-config.h"
#include "NetworkManagerUtils.h"
@@ -252,6 +253,17 @@ client_start (NMDhcpManager *self,
g_return_val_if_reached (NULL) ;
}
+ if (hostname) {
+ if ( (hostname_use_fqdn && !nm_sd_dns_name_is_valid (hostname))
+ || (!hostname_use_fqdn && !nm_sd_hostname_is_valid (hostname, FALSE))) {
+ nm_log_warn (LOGD_DHCP , "dhcp%c: %s '%s' is invalid, will be ignored",
+ nm_utils_addr_family_to_char (addr_family),
+ hostname_use_fqdn ? "FQDN" : "hostname",
+ hostname);
+ hostname = NULL;
+ }
+ }
+
nm_assert (g_bytes_get_size (hwaddr) == g_bytes_get_size (bcast_hwaddr));
priv = NM_DHCP_MANAGER_GET_PRIVATE (self);