diff options
Diffstat (limited to 'ssl/s3_both.c')
-rw-r--r-- | ssl/s3_both.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/ssl/s3_both.c b/ssl/s3_both.c index 0a259b1f4f..beef06f96b 100644 --- a/ssl/s3_both.c +++ b/ssl/s3_both.c @@ -695,7 +695,7 @@ int ssl3_setup_read_buffer(SSL *s) len += SSL3_RT_MAX_EXTRA; } #ifndef OPENSSL_NO_COMP - if (!(s->options & SSL_OP_NO_COMPRESSION)) + if (ssl_allow_compression(s)) len += SSL3_RT_MAX_COMPRESSED_OVERHEAD; #endif if ((p=freelist_extract(s->ctx, 1, len)) == NULL) @@ -732,7 +732,7 @@ int ssl3_setup_write_buffer(SSL *s) + SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD + headerlen + align; #ifndef OPENSSL_NO_COMP - if (!(s->options & SSL_OP_NO_COMPRESSION)) + if (ssl_allow_compression(s)) len += SSL3_RT_MAX_COMPRESSED_OVERHEAD; #endif if (!(s->options & SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS)) @@ -782,3 +782,10 @@ int ssl3_release_read_buffer(SSL *s) return 1; } +int ssl_allow_compression(SSL *s) + { + if (s->options & SSL_OP_NO_COMPRESSION) + return 0; + return ssl_security(s, SSL_SECOP_COMPRESSION, 0, 0, NULL); + } + |