diff options
Diffstat (limited to 'scp.c')
-rw-r--r-- | scp.c | 36 |
1 files changed, 18 insertions, 18 deletions
@@ -71,7 +71,7 @@ | |||
71 | */ | 71 | */ |
72 | 72 | ||
73 | #include "includes.h" | 73 | #include "includes.h" |
74 | RCSID("$OpenBSD: scp.c,v 1.106 2003/06/12 15:34:09 nino Exp $"); | 74 | RCSID("$OpenBSD: scp.c,v 1.107 2003/06/28 16:23:06 deraadt Exp $"); |
75 | 75 | ||
76 | #include "xmalloc.h" | 76 | #include "xmalloc.h" |
77 | #include "atomicio.h" | 77 | #include "atomicio.h" |
@@ -549,7 +549,7 @@ syserr: run_err("%s: %s", name, strerror(errno)); | |||
549 | (void) snprintf(buf, sizeof buf, "T%lu 0 %lu 0\n", | 549 | (void) snprintf(buf, sizeof buf, "T%lu 0 %lu 0\n", |
550 | (u_long) stb.st_mtime, | 550 | (u_long) stb.st_mtime, |
551 | (u_long) stb.st_atime); | 551 | (u_long) stb.st_atime); |
552 | (void) atomicio(write, remout, buf, strlen(buf)); | 552 | (void) atomicio(vwrite, remout, buf, strlen(buf)); |
553 | if (response() < 0) | 553 | if (response() < 0) |
554 | goto next; | 554 | goto next; |
555 | } | 555 | } |
@@ -560,7 +560,7 @@ syserr: run_err("%s: %s", name, strerror(errno)); | |||
560 | if (verbose_mode) { | 560 | if (verbose_mode) { |
561 | fprintf(stderr, "Sending file modes: %s", buf); | 561 | fprintf(stderr, "Sending file modes: %s", buf); |
562 | } | 562 | } |
563 | (void) atomicio(write, remout, buf, strlen(buf)); | 563 | (void) atomicio(vwrite, remout, buf, strlen(buf)); |
564 | if (response() < 0) | 564 | if (response() < 0) |
565 | goto next; | 565 | goto next; |
566 | if ((bp = allocbuf(&buffer, fd, 2048)) == NULL) { | 566 | if ((bp = allocbuf(&buffer, fd, 2048)) == NULL) { |
@@ -580,9 +580,9 @@ next: (void) close(fd); | |||
580 | haderr = result >= 0 ? EIO : errno; | 580 | haderr = result >= 0 ? EIO : errno; |
581 | } | 581 | } |
582 | if (haderr) | 582 | if (haderr) |
583 | (void) atomicio(write, remout, bp->buf, amt); | 583 | (void) atomicio(vwrite, remout, bp->buf, amt); |
584 | else { | 584 | else { |
585 | result = atomicio(write, remout, bp->buf, amt); | 585 | result = atomicio(vwrite, remout, bp->buf, amt); |
586 | if (result != amt) | 586 | if (result != amt) |
587 | haderr = result >= 0 ? EIO : errno; | 587 | haderr = result >= 0 ? EIO : errno; |
588 | statbytes += result; | 588 | statbytes += result; |
@@ -596,7 +596,7 @@ next: (void) close(fd); | |||
596 | if (close(fd) < 0 && !haderr) | 596 | if (close(fd) < 0 && !haderr) |
597 | haderr = errno; | 597 | haderr = errno; |
598 | if (!haderr) | 598 | if (!haderr) |
599 | (void) atomicio(write, remout, "", 1); | 599 | (void) atomicio(vwrite, remout, "", 1); |
600 | else | 600 | else |
601 | run_err("%s: %s", name, strerror(haderr)); | 601 | run_err("%s: %s", name, strerror(haderr)); |
602 | (void) response(); | 602 | (void) response(); |
@@ -623,7 +623,7 @@ rsource(char *name, struct stat *statp) | |||
623 | (void) snprintf(path, sizeof(path), "T%lu 0 %lu 0\n", | 623 | (void) snprintf(path, sizeof(path), "T%lu 0 %lu 0\n", |
624 | (u_long) statp->st_mtime, | 624 | (u_long) statp->st_mtime, |
625 | (u_long) statp->st_atime); | 625 | (u_long) statp->st_atime); |
626 | (void) atomicio(write, remout, path, strlen(path)); | 626 | (void) atomicio(vwrite, remout, path, strlen(path)); |
627 | if (response() < 0) { | 627 | if (response() < 0) { |
628 | closedir(dirp); | 628 | closedir(dirp); |
629 | return; | 629 | return; |
@@ -633,7 +633,7 @@ rsource(char *name, struct stat *statp) | |||
633 | (u_int) (statp->st_mode & FILEMODEMASK), 0, last); | 633 | (u_int) (statp->st_mode & FILEMODEMASK), 0, last); |
634 | if (verbose_mode) | 634 | if (verbose_mode) |
635 | fprintf(stderr, "Entering directory: %s", path); | 635 | fprintf(stderr, "Entering directory: %s", path); |
636 | (void) atomicio(write, remout, path, strlen(path)); | 636 | (void) atomicio(vwrite, remout, path, strlen(path)); |
637 | if (response() < 0) { | 637 | if (response() < 0) { |
638 | closedir(dirp); | 638 | closedir(dirp); |
639 | return; | 639 | return; |
@@ -652,7 +652,7 @@ rsource(char *name, struct stat *statp) | |||
652 | source(1, vect); | 652 | source(1, vect); |
653 | } | 653 | } |
654 | (void) closedir(dirp); | 654 | (void) closedir(dirp); |
655 | (void) atomicio(write, remout, "E\n", 2); | 655 | (void) atomicio(vwrite, remout, "E\n", 2); |
656 | (void) response(); | 656 | (void) response(); |
657 | } | 657 | } |
658 | 658 | ||
@@ -742,7 +742,7 @@ sink(int argc, char **argv) | |||
742 | if (targetshouldbedirectory) | 742 | if (targetshouldbedirectory) |
743 | verifydir(targ); | 743 | verifydir(targ); |
744 | 744 | ||
745 | (void) atomicio(write, remout, "", 1); | 745 | (void) atomicio(vwrite, remout, "", 1); |
746 | if (stat(targ, &stb) == 0 && S_ISDIR(stb.st_mode)) | 746 | if (stat(targ, &stb) == 0 && S_ISDIR(stb.st_mode)) |
747 | targisdir = 1; | 747 | targisdir = 1; |
748 | for (first = 1;; first = 0) { | 748 | for (first = 1;; first = 0) { |
@@ -760,7 +760,7 @@ sink(int argc, char **argv) | |||
760 | 760 | ||
761 | if (buf[0] == '\01' || buf[0] == '\02') { | 761 | if (buf[0] == '\01' || buf[0] == '\02') { |
762 | if (iamremote == 0) | 762 | if (iamremote == 0) |
763 | (void) atomicio(write, STDERR_FILENO, | 763 | (void) atomicio(vwrite, STDERR_FILENO, |
764 | buf + 1, strlen(buf + 1)); | 764 | buf + 1, strlen(buf + 1)); |
765 | if (buf[0] == '\02') | 765 | if (buf[0] == '\02') |
766 | exit(1); | 766 | exit(1); |
@@ -768,7 +768,7 @@ sink(int argc, char **argv) | |||
768 | continue; | 768 | continue; |
769 | } | 769 | } |
770 | if (buf[0] == 'E') { | 770 | if (buf[0] == 'E') { |
771 | (void) atomicio(write, remout, "", 1); | 771 | (void) atomicio(vwrite, remout, "", 1); |
772 | return; | 772 | return; |
773 | } | 773 | } |
774 | if (ch == '\n') | 774 | if (ch == '\n') |
@@ -790,7 +790,7 @@ sink(int argc, char **argv) | |||
790 | atime.tv_usec = strtol(cp, &cp, 10); | 790 | atime.tv_usec = strtol(cp, &cp, 10); |
791 | if (!cp || *cp++ != '\0') | 791 | if (!cp || *cp++ != '\0') |
792 | SCREWUP("atime.usec not delimited"); | 792 | SCREWUP("atime.usec not delimited"); |
793 | (void) atomicio(write, remout, "", 1); | 793 | (void) atomicio(vwrite, remout, "", 1); |
794 | continue; | 794 | continue; |
795 | } | 795 | } |
796 | if (*cp != 'C' && *cp != 'D') { | 796 | if (*cp != 'C' && *cp != 'D') { |
@@ -875,7 +875,7 @@ sink(int argc, char **argv) | |||
875 | bad: run_err("%s: %s", np, strerror(errno)); | 875 | bad: run_err("%s: %s", np, strerror(errno)); |
876 | continue; | 876 | continue; |
877 | } | 877 | } |
878 | (void) atomicio(write, remout, "", 1); | 878 | (void) atomicio(vwrite, remout, "", 1); |
879 | if ((bp = allocbuf(&buffer, ofd, 4096)) == NULL) { | 879 | if ((bp = allocbuf(&buffer, ofd, 4096)) == NULL) { |
880 | (void) close(ofd); | 880 | (void) close(ofd); |
881 | continue; | 881 | continue; |
@@ -912,7 +912,7 @@ bad: run_err("%s: %s", np, strerror(errno)); | |||
912 | if (count == bp->cnt) { | 912 | if (count == bp->cnt) { |
913 | /* Keep reading so we stay sync'd up. */ | 913 | /* Keep reading so we stay sync'd up. */ |
914 | if (wrerr == NO) { | 914 | if (wrerr == NO) { |
915 | j = atomicio(write, ofd, bp->buf, count); | 915 | j = atomicio(vwrite, ofd, bp->buf, count); |
916 | if (j != count) { | 916 | if (j != count) { |
917 | wrerr = YES; | 917 | wrerr = YES; |
918 | wrerrno = j >= 0 ? EIO : errno; | 918 | wrerrno = j >= 0 ? EIO : errno; |
@@ -925,7 +925,7 @@ bad: run_err("%s: %s", np, strerror(errno)); | |||
925 | if (showprogress) | 925 | if (showprogress) |
926 | stop_progress_meter(); | 926 | stop_progress_meter(); |
927 | if (count != 0 && wrerr == NO && | 927 | if (count != 0 && wrerr == NO && |
928 | (j = atomicio(write, ofd, bp->buf, count)) != count) { | 928 | (j = atomicio(vwrite, ofd, bp->buf, count)) != count) { |
929 | wrerr = YES; | 929 | wrerr = YES; |
930 | wrerrno = j >= 0 ? EIO : errno; | 930 | wrerrno = j >= 0 ? EIO : errno; |
931 | } | 931 | } |
@@ -970,7 +970,7 @@ bad: run_err("%s: %s", np, strerror(errno)); | |||
970 | run_err("%s: %s", np, strerror(wrerrno)); | 970 | run_err("%s: %s", np, strerror(wrerrno)); |
971 | break; | 971 | break; |
972 | case NO: | 972 | case NO: |
973 | (void) atomicio(write, remout, "", 1); | 973 | (void) atomicio(vwrite, remout, "", 1); |
974 | break; | 974 | break; |
975 | case DISPLAYED: | 975 | case DISPLAYED: |
976 | break; | 976 | break; |
@@ -1005,7 +1005,7 @@ response(void) | |||
1005 | } while (cp < &rbuf[sizeof(rbuf) - 1] && ch != '\n'); | 1005 | } while (cp < &rbuf[sizeof(rbuf) - 1] && ch != '\n'); |
1006 | 1006 | ||
1007 | if (!iamremote) | 1007 | if (!iamremote) |
1008 | (void) atomicio(write, STDERR_FILENO, rbuf, cp - rbuf); | 1008 | (void) atomicio(vwrite, STDERR_FILENO, rbuf, cp - rbuf); |
1009 | ++errs; | 1009 | ++errs; |
1010 | if (resp == 1) | 1010 | if (resp == 1) |
1011 | return (-1); | 1011 | return (-1); |