diff options
Diffstat (limited to 'src/plugins')
-rw-r--r-- | src/plugins/xfer/xfer-dcc.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/plugins/xfer/xfer-dcc.c b/src/plugins/xfer/xfer-dcc.c index 4ea5e43bf..24821d7e1 100644 --- a/src/plugins/xfer/xfer-dcc.c +++ b/src/plugins/xfer/xfer-dcc.c @@ -368,9 +368,14 @@ xfer_dcc_recv_file_child (struct t_xfer *xfer) ready = poll (&poll_fd, 1, -1); if (ready <= 0) { - xfer_network_write_pipe (xfer, XFER_STATUS_FAILED, - XFER_ERROR_RECV_BLOCK); - return; + if ((errno == EINTR) || (errno == EAGAIN)) + continue; + else + { + xfer_network_write_pipe (xfer, XFER_STATUS_FAILED, + XFER_ERROR_RECV_BLOCK); + return; + } } /* read maximum data on socket (until nothing is available) */ |