diff options
author | Dmitry Stogov <dmitry@php.net> | 2007-05-10 15:21:02 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2007-05-10 15:21:02 +0000 |
commit | 6e8438633bdccfbfab896b5c6754fc024edd1eea (patch) | |
tree | f22368247b1dd09706d5b92a8c955ddde6d90674 /sapi/cgi/fastcgi.c | |
parent | fb045249e572c922fc7a2ea50cc8a428ab3607c6 (diff) | |
download | php-git-6e8438633bdccfbfab896b5c6754fc024edd1eea.tar.gz |
Fixed bug #41291 (FastCGI does not set SO_REUSEADDR). (fmajid at kefta dot com)
Diffstat (limited to 'sapi/cgi/fastcgi.c')
-rw-r--r-- | sapi/cgi/fastcgi.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sapi/cgi/fastcgi.c b/sapi/cgi/fastcgi.c index 73f12844d9..950b226790 100644 --- a/sapi/cgi/fastcgi.c +++ b/sapi/cgi/fastcgi.c @@ -345,6 +345,13 @@ int fcgi_listen(const char *path, int backlog) int listen_socket; sa_t sa; socklen_t sock_len; +#ifdef SO_REUSEADDR +# ifdef _WIN32 + BOOL reuse = 1; +# else + int reuse = 1; +# endif +#endif if ((s = strchr(path, ':'))) { port = atoi(s+1); @@ -434,6 +441,9 @@ int fcgi_listen(const char *path, int backlog) /* Create, bind socket and start listen on it */ if ((listen_socket = socket(sa.sa.sa_family, SOCK_STREAM, 0)) < 0 || +#ifdef SO_REUSEADDR + setsockopt(listen_socket, SOL_SOCKET, SO_REUSEADDR, (char*)&reuse, sizeof(reuse)) < 0 || +#endif bind(listen_socket, (struct sockaddr *) &sa, sock_len) < 0 || listen(listen_socket, backlog) < 0) { |