diff --git a/html/cgi-bin/dns.cgi b/html/cgi-bin/dns.cgi
index a66b1ed08..a878f1786 100755
--- a/html/cgi-bin/dns.cgi
+++ b/html/cgi-bin/dns.cgi
@@ -795,10 +795,6 @@ sub check_nameserver($$$$) {
my $output = join("", @output);
my $status = 0;
- if ($output =~ m/WARNING: (.*)/) {
- return $1;
-
- }
if ($output =~ m/status: (\w+)/) {
$status = ($1 eq "NOERROR");
@@ -806,6 +802,18 @@ sub check_nameserver($$$$) {
if (!$status) {
return -1;
}
+ } else {
+ my $warning;
+
+ while ($output =~ m/WARNING: (.*)/g) {
+ # Add the current grabbed warning to the warning string.
+ $warning .= "$1\; ";
+ }
+
+ # Return the warning string, if we grabbed at least one.
+ if ($warning) {
+ return $warning;
+ }
}
my @flags = ();