[pve-devel] [PATCH] pve-manager: use domain instead of search in /etc/resolv.conf

Damien PIQUET piqudam at gmail.com
Fri Mar 8 16:41:32 CET 2013


Signed-off-by: Damien PIQUET <piqudam at gmail.com>
---
 data/PVE/INotify.pm |   20 +++++++++++++++-----
 1 file changed, 15 insertions(+), 5 deletions(-)

diff --git a/data/PVE/INotify.pm b/data/PVE/INotify.pm
index 850668a..35c71b9 100644
--- a/data/PVE/INotify.pm
+++ b/data/PVE/INotify.pm
@@ -532,13 +532,18 @@ sub read_etc_resolv_conf {
     my ($filename, $fh) = @_;
 
     my $res = {};
+    my $search;
 
     my $nscount = 0;
     while (my $line = <$fh>) {
 	chomp $line;
-	if ($line =~ m/^(search|domain)\s+(\S+)\s*/) {
-	    $res->{search} = $2;
-	} elsif ($line =~ m/^nameserver\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s*/) {
+	if ($line =~ m/^search\s+(.+)/) {
+	    $search = $1;
+	}
+	elsif ($line =~ m/^domain\s+(.+)/) {
+	    $res->{search} = $1;
+	}
+	elsif ($line =~ m/^nameserver\s+(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\s*/) {
 	    $nscount++;
 	    if ($nscount <= 3) {
 		$res->{"dns$nscount"} = $1;
@@ -546,6 +551,11 @@ sub read_etc_resolv_conf {
 	}
     }
 
+    if (!defined $res->{search} && $search) {
+	$search =~ m/(\S+)/;
+	$res->{search} = $1;
+    }
+
     return $res;
 }
 
@@ -554,7 +564,7 @@ sub update_etc_resolv_conf {
 
     my $data = "";
 
-    $data = "search $resolv->{search}\n"
+    $data = "domain $resolv->{search}\n"
 	if $resolv->{search};
 
     my $written = {};
@@ -567,7 +577,7 @@ sub update_etc_resolv_conf {
     }
 
     while (my $line = <$fh>) {
-	next if $line =~ m/^(search|domain|nameserver)\s+/;
+	next if $line =~ m/^(domain|nameserver)\s+/;
 	$data .= $line
     }
     
-- 
1.7.10.4



More information about the pve-devel mailing list