pass proxied to node to proxy_request

in addition to proxied to IP
This commit is contained in:
Fabian Grünbichler 2016-11-16 14:24:14 +01:00 committed by Dietmar Maurer
parent c817f7da98
commit b51c9f454b
2 changed files with 6 additions and 5 deletions

View File

@ -564,7 +564,7 @@ sub websocket_proxy {
}
sub proxy_request {
my ($self, $reqstate, $clientip, $host, $method, $uri, $ticket, $token, $params) = @_;
my ($self, $reqstate, $clientip, $host, $node, $method, $uri, $ticket, $token, $params) = @_;
eval {
my $target;
@ -738,8 +738,8 @@ sub handle_api2_request {
$res->{proxy_params}->{tmpfilename} = $reqstate->{tmpfilename} if $upload_state;
$self->proxy_request($reqstate, $clientip, $host, $method,
$r->uri, $auth->{ticket}, $auth->{token}, $res->{proxy_params});
$self->proxy_request($reqstate, $clientip, $host, $res->{proxynode}, $method,
$r->uri, $auth->{ticket}, $auth->{token}, $res->{proxy_params}, $res->{proxynode});
return;
} elsif ($upgrade && ($method eq 'GET') && ($path =~ m|websocket$|)) {

View File

@ -155,9 +155,10 @@ sub rest_handler {
if ($info->{proxyto}) {
my $remip;
my $node;
eval {
my $pn = $info->{proxyto};
my $node = $uri_param->{$pn};
$node = $uri_param->{$pn};
die "proxy parameter '$pn' does not exists" if !$node;
if ($node ne 'localhost' && $node ne PVE::INotify::nodename()) {
@ -169,7 +170,7 @@ sub rest_handler {
return &$exc_to_res($info, $err);
}
if ($remip) {
return { proxy => $remip, proxy_params => $params };
return { proxy => $remip, proxynode => $node, proxy_params => $params };
}
}