]> andersk Git - openssh.git/commitdiff
- djm@cvs.openbsd.org 2009/11/20 00:54:01
authordtucker <dtucker>
Fri, 8 Jan 2010 06:10:36 +0000 (06:10 +0000)
committerdtucker <dtucker>
Fri, 8 Jan 2010 06:10:36 +0000 (06:10 +0000)
     [sftp.c]
     bz#1588 change "Connecting to host..." message to "Connected to host."
     and delay it until after the sftp protocol connection has been established.
     Avoids confusing sequence of messages when the underlying ssh connection
     experiences problems. ok dtucker@

ChangeLog
sftp.c

index 16b9c133a887bf2a53094a90fbfe4a9cff85f42c..6494edc0f52bfb069892fffaeb772feeb2349429 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
      Warn but do not fail if stat()ing the subsystem binary fails.  This helps
      with chrootdirectory+forcecommand=sftp-server and restricted shells.
      bz #1599, ok djm.
+   - djm@cvs.openbsd.org 2009/11/20 00:54:01
+     [sftp.c]
+     bz#1588 change "Connecting to host..." message to "Connected to host."
+     and delay it until after the sftp protocol connection has been established.
+     Avoids confusing sequence of messages when the underlying ssh connection
+     experiences problems. ok dtucker@
 
 20091226
  - (tim) [contrib/cygwin/Makefile] Install ssh-copy-id and ssh-copy-id.1
diff --git a/sftp.c b/sftp.c
index 75b16b27ef254ffbfce83e6cced0651b736959af..85e5505b5be38da141d82ff64647c2505ac0e1cd 100644 (file)
--- a/sftp.c
+++ b/sftp.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: sftp.c,v 1.111 2009/08/18 18:36:21 djm Exp $ */
+/* $OpenBSD: sftp.c,v 1.112 2009/11/20 00:54:01 djm Exp $ */
 /*
  * Copyright (c) 2001-2004 Damien Miller <djm@openbsd.org>
  *
@@ -68,18 +68,15 @@ typedef void EditLine;
 #include "sftp-common.h"
 #include "sftp-client.h"
 
+#define DEFAULT_COPY_BUFLEN    32768   /* Size of buffer for up/download */
+#define DEFAULT_NUM_REQUESTS   64      /* # concurrent outstanding requests */
+
 /* File to read commands from */
 FILE* infile;
 
 /* Are we in batchfile mode? */
 int batchmode = 0;
 
-/* Size of buffer used when copying files */
-size_t copy_buffer_len = 32768;
-
-/* Number of concurrent outstanding requests */
-size_t num_requests = 64;
-
 /* PID of ssh transport process */
 static pid_t sshpid = -1;
 
@@ -187,7 +184,7 @@ static const struct CMD cmds[] = {
        { NULL,                 -1}
 };
 
-int interactive_loop(int fd_in, int fd_out, char *file1, char *file2);
+int interactive_loop(struct sftp_conn *, char *file1, char *file2);
 
 /* ARGSUSED */
 static void
@@ -1472,12 +1469,11 @@ prompt(EditLine *el)
 #endif
 
 int
-interactive_loop(int fd_in, int fd_out, char *file1, char *file2)
+interactive_loop(struct sftp_conn *conn, char *file1, char *file2)
 {
        char *pwd;
        char *dir = NULL;
        char cmd[2048];
-       struct sftp_conn *conn;
        int err, interactive;
        EditLine *el = NULL;
 #ifdef USE_LIBEDIT
@@ -1501,10 +1497,6 @@ interactive_loop(int fd_in, int fd_out, char *file1, char *file2)
        }
 #endif /* USE_LIBEDIT */
 
-       conn = do_init(fd_in, fd_out, copy_buffer_len, num_requests);
-       if (conn == NULL)
-               fatal("Couldn't initialise connection to server");
-
        pwd = do_realpath(conn, ".");
        if (pwd == NULL)
                fatal("Need cwd");
@@ -1694,6 +1686,9 @@ main(int argc, char **argv)
        arglist args;
        extern int optind;
        extern char *optarg;
+       struct sftp_conn *conn;
+       size_t copy_buffer_len = DEFAULT_COPY_BUFLEN;
+       size_t num_requests = DEFAULT_NUM_REQUESTS;
 
        /* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */
        sanitise_stdfd();
@@ -1837,20 +1832,27 @@ main(int argc, char **argv)
                addargs(&args, "%s", (sftp_server != NULL ?
                    sftp_server : "sftp"));
 
-               if (!batchmode)
-                       fprintf(stderr, "Connecting to %s...\n", host);
                connect_to_server(ssh_program, args.list, &in, &out);
        } else {
                args.list = NULL;
                addargs(&args, "sftp-server");
 
-               if (!batchmode)
-                       fprintf(stderr, "Attaching to %s...\n", sftp_direct);
                connect_to_server(sftp_direct, args.list, &in, &out);
        }
        freeargs(&args);
 
-       err = interactive_loop(in, out, file1, file2);
+       conn = do_init(in, out, copy_buffer_len, num_requests);
+       if (conn == NULL)
+               fatal("Couldn't initialise connection to server");
+
+       if (!batchmode) {
+               if (sftp_direct == NULL)
+                       fprintf(stderr, "Connected to %s.\n", host);
+               else
+                       fprintf(stderr, "Attached to %s.\n", sftp_direct);
+       }
+
+       err = interactive_loop(conn, file1, file2);
 
 #if !defined(USE_PIPES)
        shutdown(in, SHUT_RDWR);
This page took 0.078106 seconds and 5 git commands to generate.