[pve-devel] applied: [PATCH pve-http-server v2] websocket: set $max_payload_size = 128*1024; (131072)

Dietmar Maurer dietmar at proxmox.com
Thu Jun 7 11:58:21 CEST 2018


applied

> On June 7, 2018 at 10:12 AM Dietmar Maurer <dietmar at proxmox.com> wrote:
> 
> 
> 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.
> 
> Signed-off-by: Dietmar Maurer <dietmar at proxmox.com>
> ---
>  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.11.0
> 
> 



More information about the pve-devel mailing list