From ed8d2557ae46b70dd660bd9bff97a98a741688d8 Mon Sep 17 00:00:00 2001 From: Dietmar Maurer Date: Wed, 6 Jun 2018 17:30:40 +0200 Subject: [PATCH] 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. --- PVE/APIServer/AnyEvent.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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) = @_; -- 2.39.2