diff options
author | Jakub Zelenka <bukka@php.net> | 2017-03-14 18:47:51 +0000 |
---|---|---|
committer | Jakub Zelenka <bukka@php.net> | 2017-03-14 18:47:51 +0000 |
commit | 117d6a9a14c28968485247fdbc53128e46b98ab3 (patch) | |
tree | da0994a6740078618b0559c263ecee72f00e7665 /ext/openssl/xp_ssl.c | |
parent | 131fd3baa07b1cdec5fac0d46d59bfbbaf92d9a5 (diff) | |
parent | b4f0174e5caded1aecfd5231dd84c02b4c6bbd91 (diff) | |
download | php-git-117d6a9a14c28968485247fdbc53128e46b98ab3.tar.gz |
Merge branch 'PHP-7.1'
Diffstat (limited to 'ext/openssl/xp_ssl.c')
-rw-r--r-- | ext/openssl/xp_ssl.c | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/ext/openssl/xp_ssl.c b/ext/openssl/xp_ssl.c index 63934fe22a..65693c23c7 100644 --- a/ext/openssl/xp_ssl.c +++ b/ext/openssl/xp_ssl.c @@ -1627,21 +1627,8 @@ int php_openssl_setup_crypto(php_stream *stream, } #ifdef SSL_MODE_RELEASE_BUFFERS - do { - long mode = SSL_get_mode(sslsock->ssl_handle); - SSL_set_mode(sslsock->ssl_handle, mode | SSL_MODE_RELEASE_BUFFERS); - } while (0); + SSL_set_mode(sslsock->ssl_handle, SSL_get_mode(sslsock->ssl_handle) | SSL_MODE_RELEASE_BUFFERS); #endif - - do { - long mode = SSL_get_mode(sslsock->ssl_handle); - SSL_set_mode(sslsock->ssl_handle, mode | SSL_MODE_ENABLE_PARTIAL_WRITE); - } while (0); - - do { - long mode = SSL_get_mode(sslsock->ssl_handle); - SSL_set_mode(sslsock->ssl_handle, mode | SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER); - } while (0); if (cparam->inputs.session) { if (cparam->inputs.session->ops != &php_openssl_socket_ops) { @@ -1776,6 +1763,16 @@ static int php_openssl_enable_crypto(php_stream *stream, if (SUCCESS == php_set_sock_blocking(sslsock->s.socket, 0)) { sslsock->s.is_blocked = 0; + /* The following mode are added only if we are able to change socket + * to non blocking mode which is also used for read and write */ + SSL_set_mode( + sslsock->ssl_handle, + ( + SSL_get_mode(sslsock->ssl_handle) | + SSL_MODE_ENABLE_PARTIAL_WRITE | + SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER + ) + ); } timeout = sslsock->is_client ? &sslsock->connect_timeout : &sslsock->s.timeout; |