diff --git a/channels.c b/channels.c index dd7338184..e4c9c9f2e 100644 --- a/channels.c +++ b/channels.c @@ -3686,7 +3686,7 @@ channel_setup_fwd_listener_tcpip(struct ssh *ssh, int type, #ifndef WINDOWS /* Setting the SO_REUSEADDR flag on a socket behaves differently on Windows than on *NIX OS. - On *NIX OS, the flag is used for handling specific edge cases and allows the tag to be reused + On *NIX OS, the flag is used for handling specific edge cases and allows the port to be reused while busy only during TIME_WAIT state in the short period after termination. On Windows, the option allows a socket to forcibly bind to a port in use by another socket in any state. diff --git a/sshd.c b/sshd.c index c209a9c24..0df7e8a69 100644 --- a/sshd.c +++ b/sshd.c @@ -1472,7 +1472,9 @@ listen_on_addrs(struct listenaddr *la) continue; } /* Socket options */ +#ifndef WINDOWS set_reuseaddr(listen_sock); +#endif if (la->rdomain != NULL && set_rdomain(listen_sock, la->rdomain) == -1) { close(listen_sock);