Beniamino Galvani 2019-10-18 06:34:54 +02:00
commit a5f22dbc5d
3 changed files with 29 additions and 3 deletions

View file

@ -9,9 +9,10 @@
#include "nm-sd-adapt-shared.h"
#include "path-util.h"
#include "hexdecoct.h"
#include "dns-domain.h"
#include "hexdecoct.h"
#include "hostname-util.h"
#include "path-util.h"
/*****************************************************************************/
@ -39,7 +40,7 @@ nm_sd_utils_path_startswith (const char *path, const char *prefix)
/*****************************************************************************/
gboolean
int
nm_sd_utils_unbase64char (char ch, gboolean accept_padding_equal)
{
if ( ch == '='
@ -83,3 +84,13 @@ int nm_sd_dns_name_to_wire_format (const char *domain,
{
return dns_name_to_wire_format (domain, buffer, len, canonical);
}
int nm_sd_dns_name_is_valid (const char *s)
{
return dns_name_is_valid (s);
}
gboolean nm_sd_hostname_is_valid (const char *s, bool allow_trailing_dot)
{
return hostname_is_valid (s, allow_trailing_dot);
}

View file

@ -31,4 +31,7 @@ int nm_sd_dns_name_to_wire_format (const char *domain,
size_t len,
gboolean canonical);
int nm_sd_dns_name_is_valid (const char *s);
gboolean nm_sd_hostname_is_valid(const char *s, bool allow_trailing_dot);
#endif /* __NM_SD_UTILS_SHARED_H__ */

View file

@ -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);