mirror of
https://git.proxmox.com/git/pve-http-server
synced 2025-05-03 20:35:39 +00:00
move read_proxy_conf from PVE::API2Tools to new Utils module
move the read_proxy_conf method into a new perl module 'PVE::APIServer::Utils'. It now takes the proxy_name (e.g. pveproxy, pmgproxy) as variable to be used for the configfile location (/etc/default/$proxy_name) This serves as preparation to make pmgproxy configurable in the same way as pveproxy. Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com> Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
fac83ab296
commit
c610c8597c
1
Makefile
1
Makefile
@ -57,6 +57,7 @@ install: ${BTDATA}
|
||||
install -d -m 755 ${PERL5DIR}/PVE/APIServer
|
||||
install -m 0644 PVE/APIServer/AnyEvent.pm ${PERL5DIR}/PVE/APIServer
|
||||
install -m 0644 PVE/APIServer/Formatter.pm ${PERL5DIR}/PVE/APIServer
|
||||
install -m 0644 PVE/APIServer/Utils.pm ${PERL5DIR}/PVE/APIServer
|
||||
install -d -m 755 ${PERL5DIR}/PVE/APIServer/Formatter
|
||||
install -m 0644 PVE/APIServer/Formatter/Standard.pm ${PERL5DIR}/PVE/APIServer/Formatter
|
||||
install -m 0644 PVE/APIServer/Formatter/Bootstrap.pm ${PERL5DIR}/PVE/APIServer/Formatter
|
||||
|
0
PVE/APIServer/AnyEvent.pm
Executable file → Normal file
0
PVE/APIServer/AnyEvent.pm
Executable file → Normal file
55
PVE/APIServer/Utils.pm
Normal file
55
PVE/APIServer/Utils.pm
Normal file
@ -0,0 +1,55 @@
|
||||
package PVE::APIServer::Utils;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
use Net::IP;
|
||||
|
||||
sub read_proxy_config {
|
||||
my ($proxy_name) = @_;
|
||||
|
||||
my $conffile = "/etc/default/$proxy_name";
|
||||
|
||||
# Note: evaluate with bash
|
||||
my $shcmd = ". $conffile;\n";
|
||||
$shcmd .= 'echo \"ALLOW_FROM:\$ALLOW_FROM\";';
|
||||
$shcmd .= 'echo \"DENY_FROM:\$DENY_FROM\";';
|
||||
$shcmd .= 'echo \"POLICY:\$POLICY\";';
|
||||
$shcmd .= 'echo \"CIPHERS:\$CIPHERS\";';
|
||||
$shcmd .= 'echo \"DHPARAMS:\$DHPARAMS\";';
|
||||
$shcmd .= 'echo \"HONOR_CIPHER_ORDER:\$HONOR_CIPHER_ORDER\";';
|
||||
$shcmd .= 'echo \"COMPRESSION:\$COMPRESSION\";';
|
||||
|
||||
my $data = -f $conffile ? `bash -c "$shcmd"` : '';
|
||||
|
||||
my $res = {};
|
||||
|
||||
while ($data =~ s/^(.*)\n//) {
|
||||
my ($key, $value) = split(/:/, $1, 2);
|
||||
next if !defined($value) || $value eq '';
|
||||
if ($key eq 'ALLOW_FROM' || $key eq 'DENY_FROM') {
|
||||
my $ips = [];
|
||||
foreach my $ip (split(/,/, $value)) {
|
||||
$ip = "0/0" if $ip eq 'all';
|
||||
push @$ips, Net::IP->new($ip) || die Net::IP::Error() . "\n";
|
||||
}
|
||||
$res->{$key} = $ips;
|
||||
} elsif ($key eq 'POLICY') {
|
||||
die "unknown policy '$value'\n" if $value !~ m/^(allow|deny)$/;
|
||||
$res->{$key} = $value;
|
||||
} elsif ($key eq 'CIPHERS') {
|
||||
$res->{$key} = $value;
|
||||
} elsif ($key eq 'DHPARAMS') {
|
||||
$res->{$key} = $value;
|
||||
} elsif ($key eq 'HONOR_CIPHER_ORDER' || $key eq 'COMPRESSION') {
|
||||
die "unknown value '$value' - use 0 or 1\n" if $value !~ m/^(0|1)$/;
|
||||
$res->{$key} = $value;
|
||||
} else {
|
||||
# silently skip everythin else?
|
||||
}
|
||||
}
|
||||
|
||||
return $res;
|
||||
}
|
||||
|
||||
1;
|
Loading…
Reference in New Issue
Block a user