diff options
| author | Dag-Erling Smørgrav <des@FreeBSD.org> | 2026-02-21 01:18:15 +0000 |
|---|---|---|
| committer | Dag-Erling Smørgrav <des@FreeBSD.org> | 2026-02-21 01:18:15 +0000 |
| commit | afbdcd402bb439bd3d487baaad63b68e95929265 (patch) | |
| tree | 1051bdf3805829e2d051b5d7dc796c17d8867f25 /lib/libfetch | |
| parent | 1b7c4d29fdfc975facdc43f6da50947cf3bb8e4a (diff) | |
Diffstat (limited to 'lib/libfetch')
| -rw-r--r-- | lib/libfetch/common.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/lib/libfetch/common.c b/lib/libfetch/common.c index 825b1960208c..b3250940becc 100644 --- a/lib/libfetch/common.c +++ b/lib/libfetch/common.c @@ -651,7 +651,13 @@ fetch_connect(const char *host, int port, int af, int verbose) goto syserr; } /* attempt to connect to server address */ - if ((err = connect(sd, sai->ai_addr, sai->ai_addrlen)) == 0) + while ((err = connect(sd, sai->ai_addr, sai->ai_addrlen)) < 0) { + if (errno == EINTR && fetchRestartCalls) + continue; + break; + } + /* success? */ + if (err == 0) break; /* clean up before next attempt */ close(sd); |
