close socket on error

This commit is contained in:
Frank Morgner
2015-02-02 19:26:52 +01:00
parent 1449699908
commit 832e4110f9

View File

@@ -97,11 +97,11 @@ static int opensock(unsigned short port)
return -1; return -1;
if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void *) &yes, sizeof yes) != 0) if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void *) &yes, sizeof yes) != 0)
return -1; goto err;
#if HAVE_DECL_SO_NOSIGPIPE #if HAVE_DECL_SO_NOSIGPIPE
if (setsockopt(sock, SOL_SOCKET, SO_NOSIGPIPE, (void *) &yes, sizeof yes) != 0) if (setsockopt(sock, SOL_SOCKET, SO_NOSIGPIPE, (void *) &yes, sizeof yes) != 0)
return -1; goto err;
#endif #endif
memset(&server_sockaddr, 0, sizeof server_sockaddr); memset(&server_sockaddr, 0, sizeof server_sockaddr);
@@ -110,17 +110,18 @@ static int opensock(unsigned short port)
server_sockaddr.sin_addr.s_addr = htonl(INADDR_ANY); server_sockaddr.sin_addr.s_addr = htonl(INADDR_ANY);
if (bind(sock, (struct sockaddr *) &server_sockaddr, if (bind(sock, (struct sockaddr *) &server_sockaddr,
sizeof server_sockaddr) != 0) { sizeof server_sockaddr) != 0)
close(sock); goto err;
return -1;
}
if (listen(sock, 0) != 0) { if (listen(sock, 0) != 0)
close(sock); goto err;
return -1;
}
return sock; return sock;
err:
close(sock);
return -1;
} }
static int connectsock(const char *hostname, unsigned short port) static int connectsock(const char *hostname, unsigned short port)