X-Git-Url: https://git.proxmox.com/?a=blobdiff_plain;f=PVE%2FAPIServer%2FAnyEvent.pm;h=502b8245a9c7c4f4c2304637c3958c48b679c553;hb=404175ada21a27547dd761c8c62d76bb9f94c04a;hp=14e46fa0cdf6e7bb4347c9182616b83a30e094f3;hpb=6c31d13ebc35c33e7e11e0b65bb71169faef6e3f;p=pve-http-server.git diff --git a/PVE/APIServer/AnyEvent.pm b/PVE/APIServer/AnyEvent.pm index 14e46fa..502b824 100755 --- a/PVE/APIServer/AnyEvent.pm +++ b/PVE/APIServer/AnyEvent.pm @@ -184,6 +184,7 @@ sub response { $reqstate->{hdl}->timeout_reset(); $reqstate->{hdl}->timeout($self->{timeout}); + $nocomp //= !$self->{compression}; $nocomp = 1 if !$reqstate->{accept_gzip}; my $code = $resp->code; @@ -552,7 +553,7 @@ sub proxy_request { $headers->{'cookie'} = PVE::APIServer::Formatter::create_auth_cookie($ticket, $self->{cookie_name}) if $ticket; $headers->{'CSRFPreventionToken'} = $token if $token; - $headers->{'Accept-Encoding'} = 'gzip' if $reqstate->{accept_gzip}; + $headers->{'Accept-Encoding'} = 'gzip' if ($reqstate->{accept_gzip} && $self->{compression}); my $content; @@ -1611,6 +1612,7 @@ sub new { $self->{base_uri} //= "/api2"; $self->{dirs} //= {}; $self->{title} //= 'API Inspector'; + $self->{compression} //= 1; # formatter_config: we pass some configuration values to the Formatter $self->{formatter_config} = {}; @@ -1644,8 +1646,13 @@ sub new { $self->{end_cond} = AnyEvent->condvar; if ($self->{ssl}) { + my $tls_ctx_flags = &Net::SSLeay::OP_NO_COMPRESSION | &Net::SSLeay::OP_SINGLE_ECDH_USE | &Net::SSLeay::OP_SINGLE_DH_USE; + if ( delete $self->{ssl}->{honor_cipher_order} ) { + $tls_ctx_flags |= &Net::SSLeay::OP_CIPHER_SERVER_PREFERENCE; + } + $self->{tls_ctx} = AnyEvent::TLS->new(%{$self->{ssl}}); - Net::SSLeay::CTX_set_options($self->{tls_ctx}->{ctx}, &Net::SSLeay::OP_NO_COMPRESSION | &Net::SSLeay::OP_SINGLE_ECDH_USE | &Net::SSLeay::OP_SINGLE_DH_USE); + Net::SSLeay::CTX_set_options($self->{tls_ctx}->{ctx}, $tls_ctx_flags); } if ($self->{spiceproxy}) {