Index: libmailwatch-core/mailwatch-net-conn.c =================================================================== --- libmailwatch-core/mailwatch-net-conn.c (revision 5653) +++ libmailwatch-core/mailwatch-net-conn.c (working copy) @@ -798,8 +798,9 @@ return -1; ret = GNUTLS_E_AGAIN; } + } while((GNUTLS_E_INTERRUPTED == ret || GNUTLS_E_AGAIN == ret) - && !TIMER_EXPIRED(RECV_TIMEOUT) && SHOULD_CONTINUE(net_conn)); + && !TIMER_EXPIRED(RECV_TIMEOUT) && SHOULD_CONTINUE(net_conn) && (usleep(50000),1)); if(ret < 0) { if(error) { @@ -829,7 +830,7 @@ do { ret = recv(net_conn->fd, buf, buf_len, MSG_NOSIGNAL); } while(ret < 0 && (EINTR == errno || EAGAIN == errno) - && !TIMER_EXPIRED(RECV_TIMEOUT) && SHOULD_CONTINUE(net_conn)); + && !TIMER_EXPIRED(RECV_TIMEOUT) && SHOULD_CONTINUE(net_conn) && (usleep(50000),1)); if(ret < 0) { if(error) {