]>
git.proxmox.com Git - pve-http-server.git/blob - PVE/APIServer/Utils.pm
36b9c1fa27077dd486125b3b766f7b0570b9dcdd
1 package PVE
::APIServer
::Utils
;
8 sub read_proxy_config
{
11 my $conffile = "/etc/default/$proxy_name";
13 # Note: evaluate with bash
14 my $shcmd = ". $conffile;\n";
15 $shcmd .= 'echo \"ALLOW_FROM:\$ALLOW_FROM\";';
16 $shcmd .= 'echo \"DENY_FROM:\$DENY_FROM\";';
17 $shcmd .= 'echo \"POLICY:\$POLICY\";';
18 $shcmd .= 'echo \"CIPHERS:\$CIPHERS\";';
19 $shcmd .= 'echo \"DHPARAMS:\$DHPARAMS\";';
20 $shcmd .= 'echo \"HONOR_CIPHER_ORDER:\$HONOR_CIPHER_ORDER\";';
21 $shcmd .= 'echo \"COMPRESSION:\$COMPRESSION\";';
23 my $data = -f
$conffile ?
`bash -c "$shcmd"` : '';
27 while ($data =~ s/^(.*)\n//) {
28 my ($key, $value) = split(/:/, $1, 2);
29 next if !defined($value) || $value eq '';
30 if ($key eq 'ALLOW_FROM' || $key eq 'DENY_FROM') {
32 foreach my $ip (split(/,/, $value)) {
33 $ip = "0/0" if $ip eq 'all';
34 push @$ips, Net
::IP-
>new($ip) || die Net
::IP
::Error
() . "\n";
37 } elsif ($key eq 'POLICY') {
38 die "unknown policy '$value'\n" if $value !~ m/^(allow|deny)$/;
39 $res->{$key} = $value;
40 } elsif ($key eq 'CIPHERS') {
41 $res->{$key} = $value;
42 } elsif ($key eq 'DHPARAMS') {
43 $res->{$key} = $value;
44 } elsif ($key eq 'HONOR_CIPHER_ORDER' || $key eq 'COMPRESSION') {
45 die "unknown value '$value' - use 0 or 1\n" if $value !~ m/^(0|1)$/;
46 $res->{$key} = $value;
48 # silently skip everythin else?