From 7d88babb6f33b528eb8410c7e496448f2657d9c2 Mon Sep 17 00:00:00 2001 From: Fredrik Tolf Date: Mon, 12 May 2025 17:37:31 +0200 Subject: [PATCH] call[fs]cgi: Fix handler connect blocking bug. --- src/callfcgi.c | 2 +- src/callscgi.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/callfcgi.c b/src/callfcgi.c index 8d33eef..83a6c7c 100644 --- a/src/callfcgi.c +++ b/src/callfcgi.c @@ -253,7 +253,7 @@ static int sconnect(void) fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_NONBLOCK); while(1) { if(connect(fd, curaddr, caddrlen)) { - if(errno == EINPROGRESS) { + if((errno == EINPROGRESS) || (errno == EAGAIN)) { block(fd, EV_WRITE, 30); errlen = sizeof(err); if(getsockopt(fd, SOL_SOCKET, SO_ERROR, &err, &errlen) || ((errno = err) != 0)) { diff --git a/src/callscgi.c b/src/callscgi.c index 2483c49..60c72ac 100644 --- a/src/callscgi.c +++ b/src/callscgi.c @@ -240,7 +240,7 @@ static int sconnect(void) fcntl(fd, F_SETFL, fcntl(fd, F_GETFL) | O_NONBLOCK); while(1) { if(connect(fd, curaddr, caddrlen)) { - if(errno == EINPROGRESS) { + if((errno == EINPROGRESS) || (errno == EAGAIN)) { block(fd, EV_WRITE, 30); errlen = sizeof(err); if(getsockopt(fd, SOL_SOCKET, SO_ERROR, &err, &errlen) || ((errno = err) != 0)) { -- 2.11.0