commit 20d2d786a08eff2fabb7addf495c55753db0614f from: Omar Polo date: Tue Mar 16 19:38:14 2021 UTC yield_w after a failed connect commit - e0e26735232e1d664b3ccb49856f754d05015d0c commit + 20d2d786a08eff2fabb7addf495c55753db0614f blob - fe9fdd24ee551c9f088d78a9f8353545bab5ba39 blob + 2c742f36201aae6a61f3cf3937a503cee37d3a28 --- gemini.c +++ gemini.c @@ -161,14 +161,15 @@ try_to_connect(int fd, short ev, void *d) } req->fd = socket(req->p->ai_family, req->p->ai_socktype, req->p->ai_protocol); - if (req->fd == -1) + if (req->fd == -1) { req->p = req->p->ai_next; - else { + try_to_connect(fd, ev, req); + } else { mark_nonblock(req->fd); if (connect(req->fd, req->p->ai_addr, req->p->ai_addrlen) == 0) goto done; + yield_w(req, try_to_connect, NULL); } - try_to_connect(fd, ev, req); return; err: