diff --git a/src/netutils.c b/src/netutils.c index 7d5102f3..58dbae6b 100644 --- a/src/netutils.c +++ b/src/netutils.c @@ -91,6 +91,7 @@ int bind_to_address(int socket_fd, const char *host) if (host != NULL) { struct cork_ip ip; struct sockaddr_storage storage; + memset(&storage, 0, sizeof(storage)); if (cork_ip_init(&ip, host) != -1) { if (ip.version == 4) { struct sockaddr_in *addr = (struct sockaddr_in *)&storage; diff --git a/src/server.c b/src/server.c index e1a0eefe..5427b1ea 100644 --- a/src/server.c +++ b/src/server.c @@ -415,6 +415,7 @@ static remote_t *connect_to_remote(struct addrinfo *res, #ifdef SO_NOSIGPIPE setsockopt(sockfd, SOL_SOCKET, SO_NOSIGPIPE, &opt, sizeof(opt)); #endif + setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &opt, sizeof(opt)); remote_t *remote = new_remote(sockfd);