diff options
author | Damien Miller <djm@mindrot.org> | 1999-12-15 01:04:25 +0100 |
---|---|---|
committer | Damien Miller <djm@mindrot.org> | 1999-12-15 01:04:25 +0100 |
commit | 864ea59da63b4941575e95f7dbbb361f88ee53ef (patch) | |
tree | 457cb7b63b7f5fbe40da5df875290d12ea4ef5cb /scp.c | |
parent | - Added better test for inline functions compiler support from (diff) | |
download | openssh-864ea59da63b4941575e95f7dbbb361f88ee53ef.tar.xz openssh-864ea59da63b4941575e95f7dbbb361f88ee53ef.zip |
- Integrated patchs from Juergen Keil <jk@tools.de>
- Fix SIGIO error in scp
- Simplify status line printing in scp
Diffstat (limited to 'scp.c')
-rw-r--r-- | scp.c | 16 |
1 files changed, 10 insertions, 6 deletions
@@ -45,7 +45,7 @@ */ #include "includes.h" -RCSID("$Id: scp.c,v 1.12 1999/12/07 04:38:32 damien Exp $"); +RCSID("$Id: scp.c,v 1.13 1999/12/15 00:04:25 damien Exp $"); #include "ssh.h" #include "xmalloc.h" @@ -548,7 +548,7 @@ next: (void) close(fd); if (haderr) (void) write(remout, bp->buf, amt); else { - result = write(remout, bp->buf, amt); + result = atomicio(write, remout, bp->buf, amt); if (result != amt) haderr = result >= 0 ? EIO : errno; statbytes += result; @@ -974,7 +974,7 @@ run_err(const char *fmt,...) * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: scp.c,v 1.12 1999/12/07 04:38:32 damien Exp $ + * $Id: scp.c,v 1.13 1999/12/15 00:04:25 damien Exp $ */ char * @@ -1145,8 +1145,8 @@ progressmeter(int flag) i++; abbrevsize >>= 10; } - snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), " %5qd %c%c ", - (quad_t) abbrevsize, prefixes[i], prefixes[i] == ' ' ? ' ' : + snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), " %5d %c%c ", + (int) abbrevsize, prefixes[i], prefixes[i] == ' ' ? ' ' : 'B'); timersub(&now, &lastupdate, &wait); @@ -1184,7 +1184,11 @@ progressmeter(int flag) atomicio(write, fileno(stdout), buf, strlen(buf)); if (flag == -1) { - signal(SIGALRM, (void *) updateprogressmeter); + struct sigaction sa; + sa.sa_handler = updateprogressmeter; + sigemptyset(&sa.sa_mask); + sa.sa_flags = SA_RESTART; + sigaction(SIGALRM, &sa, NULL); alarmtimer(1); } else if (flag == 1) { alarmtimer(0); |