From: Dietmar Maurer Date: Wed, 6 Jun 2018 15:30:40 +0000 (+0200) Subject: websocket: set $max_payload_size = 128*1024; (131072) X-Git-Url: https://git.proxmox.com/?p=pve-http-server.git;a=commitdiff_plain;h=ed8d2557ae46b70dd660bd9bff97a98a741688d8 websocket: set $max_payload_size = 128*1024; (131072) AnyEvent checks rbuf_max after calling the callback (too late), so we can receive larger data, because AnyEvent uses MAX_READ_SIZE=131072 to fill the buffer. So a more elegant solution is to set $max_payload_size=128*1024. At least I am not able to receive rbuf larger than 128*1024 now. But I keep the protection from the previous patch - just to be sure. --- diff --git a/PVE/APIServer/AnyEvent.pm b/PVE/APIServer/AnyEvent.pm index 9efd662..190471a 100755 --- a/PVE/APIServer/AnyEvent.pm +++ b/PVE/APIServer/AnyEvent.pm @@ -345,7 +345,7 @@ sub websocket_proxy { my $remhost; my $remport; - my $max_payload_size = 65536; + my $max_payload_size = 128*1024; my $binary; if ($wsproto eq 'binary') { @@ -375,7 +375,7 @@ sub websocket_proxy { $reqstate->{proxyhdl} = AnyEvent::Handle->new( fh => $fh, rbuf_max => $max_payload_size, - wbuf_max => $max_payload_size*10, + wbuf_max => $max_payload_size*5, timeout => 5, on_eof => sub { my ($hdl) = @_;