diff options
author | Klemens Nanni | 2021-06-20 22:18:33 +0000 |
---|---|---|
committer | C. McEnroe | 2021-06-21 17:58:28 -0400 |
commit | 2b7f62dbd486172de70bd740005af538e46567f7 (patch) | |
tree | 3b731cf3c25c18cd786e9f9082fae22668c1fd79 | |
parent | a79a3fc9f6d508f93a76fb3fd1bc64e0f51378ea (diff) |
Handle EINTR from connect(2) gracefully
Resizing the window early on may return early due to SIGWINCH. Continue asynchronously in that case instead of exiting.
-rw-r--r-- | irc.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/irc.c b/irc.c index 3f0de3c..41739a3 100644 --- a/irc.c +++ b/irc.c @@ -27,6 +27,7 @@ #include <assert.h> #include <err.h> +#include <errno.h> #include <netdb.h> #include <netinet/in.h> #include <stdarg.h> @@ -148,6 +149,7 @@ int ircConnect(const char *bindHost, const char *host, const char *port) { error = connect(sock, ai->ai_addr, ai->ai_addrlen); if (!error) break; + if (error && errno == EINTR) break; // connect continues asynchronously close(sock); sock = -1; |