diff --git a/src/etc/inc/util.inc b/src/etc/inc/util.inc index 3cf06152f..bc918e13b 100644 --- a/src/etc/inc/util.inc +++ b/src/etc/inc/util.inc @@ -744,16 +744,17 @@ function is_hostname($hostname) } /* returns true if $domain is a valid domain name */ -function is_domain($domain) +function is_domain($domain, $allow_root = false) { if (!is_string($domain)) { return false; - } - if (preg_match('/^(?:(?:[a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])\.)*(?:[a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])$/i', $domain)) { + } elseif (preg_match('/^(?:(?:[a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])\.)*(?:[a-z0-9]|[a-z0-9][a-z0-9\-]*[a-z0-9])$/i', $domain)) { + return true; + } elseif ($allow_root && $domain == '.') { return true; - } else { - return false; } + + return false; } /* returns true if $macaddr is a valid MAC address */ diff --git a/src/www/services_router_advertisements.php b/src/www/services_router_advertisements.php index d19bfcc3c..7faca9773 100644 --- a/src/www/services_router_advertisements.php +++ b/src/www/services_router_advertisements.php @@ -118,7 +118,7 @@ if ($_SERVER['REQUEST_METHOD'] === 'GET') { if (!empty($pconfig['radomainsearchlist'])) { $domain_array=preg_split("/[ ;]+/",$pconfig['radomainsearchlist']); foreach ($domain_array as $curdomain) { - if (!is_domain($curdomain)) { + if (!is_domain($curdomain, true)) { $input_errors[] = gettext("A valid domain search list must be specified."); break; }