summaryrefslogtreecommitdiff
path: root/src/ne_socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/ne_socket.c')
-rw-r--r--src/ne_socket.c13
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;