I applied v2 instead.

> On September 13, 2018 at 2:55 PM Dominik Csapak <d.csa...@proxmox.com> wrote:
> 
> 
> Signed-off-by: Dominik Csapak <d.csa...@proxmox.com>
> ---
> changes from v3:
> * removed digest code (now in api)
>  src/PVE/INotify.pm | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 48 insertions(+)
> 
> diff --git a/src/PVE/INotify.pm b/src/PVE/INotify.pm
> index 8b5544e..bea4821 100644
> --- a/src/PVE/INotify.pm
> +++ b/src/PVE/INotify.pm
> @@ -537,6 +537,54 @@ register_file('hostname', "/etc/hostname",
>             \&read_etc_hostname, 
>             \&write_etc_hostname);
>  
> +sub read_etc_hosts {
> +    my ($filename, $fh) = @_;
> +
> +    my $raw = '';
> +    my $data = '';
> +
> +    while (my $line = <$fh>) {
> +     $raw .= $line;
> +     if ($line =~ m/^\s*#/) {
> +         $line = decode('UTF-8', $line);
> +     }
> +     $data .= $line;
> +    }
> +
> +    return {
> +     raw => $raw,
> +     decoded => $data,
> +    }
> +}
> +
> +sub write_etc_hosts {
> +    my ($filename, $fh, $hosts, @args) = @_;
> +
> +    # check validity of ips/names
> +    for my $line (split("\n", $hosts)) {
> +     next if $line =~ m/^\s*#/; # comments
> +     next if $line =~ m/^\s*$/; # whitespace/empty lines
> +
> +     my ($ip, @names) = split(/\s+/, $line);
> +
> +     raise_param_exc({ 'data' => "Invalid IP '$ip'" })
> +         if $ip !~ m/^$PVE::Tools::IPRE$/;
> +
> +     for my $name (@names) {
> +         raise_param_exc({ 'data' => "Invalid Hostname '$name'" })
> +             if $name !~ m/^[.\-a-zA-Z0-9]+$/;
> +     }
> +    }
> +
> +    die "write failed: $!" if !print $fh encode('UTF-8', $hosts);
> +
> +    return $hosts;
> +}
> +
> +register_file('etchosts', "/etc/hosts",
> +           \&read_etc_hosts,
> +           \&write_etc_hosts);
> +
>  sub read_etc_resolv_conf {
>      my ($filename, $fh) = @_;
>  
> -- 
> 2.11.0
> 
> 
> _______________________________________________
> pve-devel mailing list
> pve-devel@pve.proxmox.com
> https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to