diff --git a/src/mod_fastcgi.c b/src/mod_fastcgi.c index 48934061..1eed6637 100644 --- a/src/mod_fastcgi.c +++ b/src/mod_fastcgi.c @@ -1001,7 +1001,10 @@ static int fcgi_spawn_connection(server *srv, return -1; } - if (-1 == connect(fcgi_fd, fcgi_addr, servlen)) { + do { + status = connect(fcgi_fd, fcgi_addr, servlen); + } while (-1 == status && errno == EINTR); + if (-1 == status) { /* server is not up, spawn it */ pid_t child; int val; diff --git a/src/mod_scgi.c b/src/mod_scgi.c index 47d9ca17..5660b69f 100644 --- a/src/mod_scgi.c +++ b/src/mod_scgi.c @@ -771,7 +771,10 @@ static int scgi_spawn_connection(server *srv, return -1; } - if (-1 == connect(scgi_fd, scgi_addr, servlen)) { + do { + status = connect(scgi_fd, scgi_addr, servlen); + } while (-1 == status && errno == EINTR); + if (-1 == status) { /* server is not up, spawn in */ pid_t child; int val;