diff options
Diffstat (limited to 'src/ne_socket.c')
-rw-r--r-- | src/ne_socket.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/src/ne_socket.c b/src/ne_socket.c index 0492431..a86e41a 100644 --- a/src/ne_socket.c +++ b/src/ne_socket.c @@ -2087,7 +2087,12 @@ int ne_sock_shutdown(ne_socket *sock, unsigned int flags) int ne_sock_close(ne_socket *sock) { - int ret = ne_sock_shutdown(sock, NE_SOCK_SEND); + int ret; + + if (sock->fd != -1) { + /* Ignore errors. */ + (void) ne_sock_shutdown(sock, NE_SOCK_SEND); + } #if defined(HAVE_OPENSSL) if (sock->ssl) { @@ -2099,11 +2104,7 @@ int ne_sock_close(ne_socket *sock) } #endif - if (sock->fd < 0) - ret = 0; - else - ret = ne_close(sock->fd); - sock->fd = -1; + ret = sock->fd < 0 ? 0 : ne_close(sock->fd); ne_free(sock); return ret; |