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.master
parent
a79a3fc9f6
commit
2b7f62dbd4
2
irc.c
2
irc.c
|
@ -27,6 +27,7 @@
|
||||||
|
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <err.h>
|
#include <err.h>
|
||||||
|
#include <errno.h>
|
||||||
#include <netdb.h>
|
#include <netdb.h>
|
||||||
#include <netinet/in.h>
|
#include <netinet/in.h>
|
||||||
#include <stdarg.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);
|
error = connect(sock, ai->ai_addr, ai->ai_addrlen);
|
||||||
if (!error) break;
|
if (!error) break;
|
||||||
|
if (error && errno == EINTR) break; // connect continues asynchronously
|
||||||
|
|
||||||
close(sock);
|
close(sock);
|
||||||
sock = -1;
|
sock = -1;
|
||||||
|
|
Loading…
Reference in New Issue