diff options
Diffstat (limited to 'scp.c')
-rw-r--r-- | scp.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -75,7 +75,7 @@ | |||
75 | */ | 75 | */ |
76 | 76 | ||
77 | #include "includes.h" | 77 | #include "includes.h" |
78 | RCSID("$OpenBSD: scp.c,v 1.42 2000/10/14 10:07:21 markus Exp $"); | 78 | RCSID("$OpenBSD: scp.c,v 1.43 2000/10/18 18:23:02 markus Exp $"); |
79 | 79 | ||
80 | #include "ssh.h" | 80 | #include "ssh.h" |
81 | #include "xmalloc.h" | 81 | #include "xmalloc.h" |
@@ -838,8 +838,10 @@ bad: run_err("%s: %s", np, strerror(errno)); | |||
838 | amt = size - i; | 838 | amt = size - i; |
839 | count += amt; | 839 | count += amt; |
840 | do { | 840 | do { |
841 | j = atomicio(read, remin, cp, amt); | 841 | j = read(remin, cp, amt); |
842 | if (j <= 0) { | 842 | if (j == -1 && (errno == EINTR || errno == EAGAIN)) { |
843 | continue; | ||
844 | } else if (j <= 0) { | ||
843 | run_err("%s", j ? strerror(errno) : | 845 | run_err("%s", j ? strerror(errno) : |
844 | "dropped connection"); | 846 | "dropped connection"); |
845 | exit(1); | 847 | exit(1); |