diff options
author | Wez Furlong <wez@php.net> | 2002-03-16 14:39:51 +0000 |
---|---|---|
committer | Wez Furlong <wez@php.net> | 2002-03-16 14:39:51 +0000 |
commit | bed04279c3f8ef7dbb3aa0c0543d50f72248cb2c (patch) | |
tree | 7db0b1720fc4d859b4cc95e9ab6af672c7b78cb1 /main/network.c | |
parent | 6abd7c6f93c4ec981219745ac8882d99741fe50b (diff) | |
download | php-git-bed04279c3f8ef7dbb3aa0c0543d50f72248cb2c.tar.gz |
Hopefully fix resource usage so that we have no leaks and don't segfault.
Diffstat (limited to 'main/network.c')
-rw-r--r-- | main/network.c | 22 |
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)); |