diff --git a/ext/socket/ipsocket.c b/ext/socket/ipsocket.c index dadf10f6a5..4a444b3680 100644 --- a/ext/socket/ipsocket.c +++ b/ext/socket/ipsocket.c @@ -99,6 +99,11 @@ init_inetsock_internal(struct inetsock_arg *arg) } else { if (lres) { +#if !defined(_WIN32) && !defined(__CYGWIN__) + status = 1; + setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, + (char*)&status, (socklen_t)sizeof(status)); +#endif status = bind(fd, lres->ai_addr, lres->ai_addrlen); local = status; syscall = "bind(2)";