summaryrefslogtreecommitdiff
path: root/main/network.c
diff options
context:
space:
mode:
Diffstat (limited to 'main/network.c')
-rw-r--r--main/network.c22
1 files changed, 12 insertions, 10 deletions
diff --git a/main/network.c b/main/network.c
index dd877bbd1d..93e0f2bbce 100644
--- a/main/network.c
+++ b/main/network.c
@@ -675,22 +675,24 @@ static size_t php_sockop_read(php_stream *stream, char *buf, size_t count)
return ret;
}
-static int php_sockop_close(php_stream *stream)
+static int php_sockop_close(php_stream *stream, int close_handle)
{
php_netstream_data_t *sock = (php_netstream_data_t*)stream->abstract;
+ if (close_handle) {
#if HAVE_OPENSSL_EXT
- if (sock->ssl_active) {
- SSL_shutdown(sock->ssl_handle);
- sock->ssl_active = 0;
- SSL_free(sock->ssl_handle);
- sock->ssl_handle = NULL;
- }
+ if (sock->ssl_active) {
+ SSL_shutdown(sock->ssl_handle);
+ sock->ssl_active = 0;
+ SSL_free(sock->ssl_handle);
+ sock->ssl_handle = NULL;
+ }
#endif
-
- shutdown(sock->socket, 0);
- closesocket(sock->socket);
+ shutdown(sock->socket, 0);
+ closesocket(sock->socket);
+
+ }
if (sock->readbuf)
pefree(sock->readbuf, php_stream_is_persistent(stream));