Mercurial > hg > nnchat
diff network.c @ 490:9141f13be70c dev-1_0_3
Don't set conn->err if we are handling EINTR and it isn't supposed to get to
higher level. Fixes NNChat quitting unexpectedly when resizing a terminal
window causes EINTR for select() in the network polling.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Sun, 27 May 2012 09:23:12 +0300 |
parents | ba48840b8525 |
children | 6e5789cbb4d4 |
line wrap: on
line diff
--- a/network.c Sun May 27 03:31:35 2012 +0300 +++ b/network.c Sun May 27 09:23:12 2012 +0300 @@ -406,9 +406,10 @@ if ((result = select(conn->socket + 1, &tmpfds, NULL, NULL, &socktv)) == -1) { - conn->err = nn_get_socket_errno(); - if (conn->err != EINTR) + int err = nn_get_socket_errno(); + if (err != EINTR) { + conn->err = err; nn_conn_err(conn, "Error occured in select(%d, sockfds): %d, %s\n", socket, conn->err, nn_get_socket_errstr(conn->err)); return -1;