diff options
author | Damien Miller <djm@mindrot.org> | 2008-07-04 23:10:49 +1000 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 2008-07-04 23:10:49 +1000 |
commit | d8968adb5faef58508bb5e7dab7cdbaf5b0e90d5 (patch) | |
tree | 33357b9d71f2d3e72b8383e2b3771773914425f4 /sftp-client.c | |
parent | b01bac109bd2fc6b3093fe4aeb31a125be8f2a4e (diff) |
- (djm) [atomicio.c channels.c clientloop.c defines.h includes.h]
[packet.c scp.c serverloop.c sftp-client.c ssh-agent.c ssh-keyscan.c]
[sshd.c] Explicitly handle EWOULDBLOCK wherever we handle EAGAIN, on
some platforms (HP nonstop) it is a distinct errno;
bz#1467 reported by sconeu AT yahoo.com; ok dtucker@
Diffstat (limited to 'sftp-client.c')
-rw-r--r-- | sftp-client.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/sftp-client.c b/sftp-client.c index 42bf0c813..5e39aa7d2 100644 --- a/sftp-client.c +++ b/sftp-client.c | |||
@@ -1223,7 +1223,8 @@ do_upload(struct sftp_conn *conn, char *local_path, char *remote_path, | |||
1223 | len = 0; | 1223 | len = 0; |
1224 | else do | 1224 | else do |
1225 | len = read(local_fd, data, conn->transfer_buflen); | 1225 | len = read(local_fd, data, conn->transfer_buflen); |
1226 | while ((len == -1) && (errno == EINTR || errno == EAGAIN)); | 1226 | while ((len == -1) && |
1227 | (errno == EINTR || errno == EAGAIN || errno == EWOULDBLOCK)); | ||
1227 | 1228 | ||
1228 | if (len == -1) | 1229 | if (len == -1) |
1229 | fatal("Couldn't read from \"%s\": %s", local_path, | 1230 | fatal("Couldn't read from \"%s\": %s", local_path, |