]> andersk Git - openssh.git/blobdiff - scp.c
- (djm) Use printf %lld instead of %qd in sftp-server.c. Fix from
[openssh.git] / scp.c
diff --git a/scp.c b/scp.c
index d2e4224bbee4d1b43cd4c6811688d906642a1db5..79c310c5ecae215df51fa138f2ad924b68a111cf 100644 (file)
--- a/scp.c
+++ b/scp.c
@@ -1,14 +1,42 @@
 /*
+ * scp - secure remote copy.  This is basically patched BSD rcp which
+ * uses ssh to do the data transfer (instead of using rcmd).
  *
- * scp - secure remote copy.  This is basically patched BSD rcp which uses ssh
- * to do the data transfer (instead of using rcmd).
- *
- * NOTE: This version should NOT be suid root.  (This uses ssh to do the transfer
- * and ssh has the necessary privileges.)
+ * NOTE: This version should NOT be suid root.  (This uses ssh to
+ * do the transfer and ssh has the necessary privileges.)
  *
  * 1995 Timo Rinne <tri@iki.fi>, Tatu Ylonen <ylo@cs.hut.fi>
  *
-*/
+ * As far as I am concerned, the code I have written for this software
+ * can be used freely for any purpose.  Any derived versions of this
+ * software must be clearly marked as such, and if the derived work is
+ * incompatible with the protocol description in the RFC file, it must be
+ * called by a name other than "ssh" or "Secure Shell".
+ */
+/*
+ * Copyright (c) 1999 Theo de Raadt. All rights reserved.
+ * Copyright (c) 1999 Aaron Campbell. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
 
 /*
  * Parts from:
@@ -47,7 +75,7 @@
  */
 
 #include "includes.h"
-RCSID("$OpenBSD: scp.c,v 1.35 2000/08/19 02:50:07 deraadt Exp $");
+RCSID("$OpenBSD: scp.c,v 1.39 2000/09/07 20:53:00 markus Exp $");
 
 #include "ssh.h"
 #include "xmalloc.h"
@@ -262,7 +290,7 @@ main(argc, argv)
        extern int optind;
 
        fflag = tflag = 0;
-       while ((ch = getopt(argc, argv, "dfprtvBCc:i:P:q46S")) != EOF)
+       while ((ch = getopt(argc, argv, "dfprtvBCc:i:P:q46S:")) != EOF)
                switch (ch) {
                /* User-visible flags. */
                case '4':
@@ -680,7 +708,8 @@ sink(argc, argv)
        BUF *bp;
        off_t i, j;
        int amt, count, exists, first, mask, mode, ofd, omode;
-       int setimes, size, targisdir, wrerrno = 0;
+       off_t size;
+       int setimes, targisdir, wrerrno = 0;
        char ch, *cp, *np, *targ, *why, *vect[1], buf[2048];
        struct utimbuf ut;
        int dummy_usec;
@@ -1116,8 +1145,17 @@ foregroundproc()
        if (pgrp == -1)
                pgrp = getpgrp();
 
+#ifdef HAVE_CYGWIN
+       /*
+        * Cygwin only supports tcgetpgrp() for getting the controlling tty
+         * currently.
+        */
+       return ((ctty_pgrp = tcgetpgrp(STDOUT_FILENO)) != -1 &&
+               ctty_pgrp == pgrp);
+#else
        return ((ioctl(STDOUT_FILENO, TIOCGPGRP, &ctty_pgrp) != -1 &&
                 ctty_pgrp == pgrp));
+#endif
 }
 
 void
@@ -1211,7 +1249,7 @@ progressmeter(int flag)
        if (flag == -1) {
                struct sigaction sa;
                sa.sa_handler = updateprogressmeter;
-               sigemptyset(&sa.sa_mask);
+               sigemptyset((sigset_t *)&sa.sa_mask);
 #ifdef SA_RESTART
                sa.sa_flags = SA_RESTART;
 #endif
This page took 0.23348 seconds and 4 git commands to generate.