This version uses the first entry of search if no domain is found. When edited, it creates or replaces domain entry. It does not update search entries at all.
I still have to change the field name in the interface and limit input to only one domain, but I'll send another patch for this. 2013/3/8 Damien PIQUET <piqu...@gmail.com>: > > Signed-off-by: Damien PIQUET <piqu...@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 > _______________________________________________ pve-devel mailing list pve-devel@pve.proxmox.com http://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel