mirror of
https://git.proxmox.com/git/pve-manager
synced 2025-06-14 22:03:37 +00:00
pass proxied to node to proxy_request
in addition to proxied to IP
This commit is contained in:
parent
c817f7da98
commit
b51c9f454b
@ -564,7 +564,7 @@ sub websocket_proxy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub proxy_request {
|
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 {
|
eval {
|
||||||
my $target;
|
my $target;
|
||||||
@ -738,8 +738,8 @@ sub handle_api2_request {
|
|||||||
|
|
||||||
$res->{proxy_params}->{tmpfilename} = $reqstate->{tmpfilename} if $upload_state;
|
$res->{proxy_params}->{tmpfilename} = $reqstate->{tmpfilename} if $upload_state;
|
||||||
|
|
||||||
$self->proxy_request($reqstate, $clientip, $host, $method,
|
$self->proxy_request($reqstate, $clientip, $host, $res->{proxynode}, $method,
|
||||||
$r->uri, $auth->{ticket}, $auth->{token}, $res->{proxy_params});
|
$r->uri, $auth->{ticket}, $auth->{token}, $res->{proxy_params}, $res->{proxynode});
|
||||||
return;
|
return;
|
||||||
|
|
||||||
} elsif ($upgrade && ($method eq 'GET') && ($path =~ m|websocket$|)) {
|
} elsif ($upgrade && ($method eq 'GET') && ($path =~ m|websocket$|)) {
|
||||||
|
@ -155,9 +155,10 @@ sub rest_handler {
|
|||||||
|
|
||||||
if ($info->{proxyto}) {
|
if ($info->{proxyto}) {
|
||||||
my $remip;
|
my $remip;
|
||||||
|
my $node;
|
||||||
eval {
|
eval {
|
||||||
my $pn = $info->{proxyto};
|
my $pn = $info->{proxyto};
|
||||||
my $node = $uri_param->{$pn};
|
$node = $uri_param->{$pn};
|
||||||
die "proxy parameter '$pn' does not exists" if !$node;
|
die "proxy parameter '$pn' does not exists" if !$node;
|
||||||
|
|
||||||
if ($node ne 'localhost' && $node ne PVE::INotify::nodename()) {
|
if ($node ne 'localhost' && $node ne PVE::INotify::nodename()) {
|
||||||
@ -169,7 +170,7 @@ sub rest_handler {
|
|||||||
return &$exc_to_res($info, $err);
|
return &$exc_to_res($info, $err);
|
||||||
}
|
}
|
||||||
if ($remip) {
|
if ($remip) {
|
||||||
return { proxy => $remip, proxy_params => $params };
|
return { proxy => $remip, proxynode => $node, proxy_params => $params };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user