Hi,

it can be fixed by flushing the 'verbose' output:

Index: fetch.c
===================================================================
RCS file: /cvs/src/usr.bin/ftp/fetch.c,v
retrieving revision 1.134
diff -u -p -r1.134 fetch.c
--- fetch.c     31 Oct 2014 13:48:21 -0000      1.134
+++ fetch.c     24 Nov 2014 21:47:17 -0000
@@ -520,8 +520,10 @@ noslash:
                if (getnameinfo(res->ai_addr, res->ai_addrlen, hbuf,
                    sizeof(hbuf), NULL, 0, NI_NUMERICHOST) != 0)
                        strlcpy(hbuf, "(unknown)", sizeof(hbuf));
-               if (verbose)
+               if (verbose) {
                        fprintf(ttyout, "Trying %s...\n", hbuf);
+                       fflush(ttyout);
+               }
 
                s = socket(res->ai_family, res->ai_socktype, res->ai_protocol);
                if (s == -1) {
@@ -620,8 +622,10 @@ again:
        fin = fdopen(s, "r+");
 #endif /* !SMALL */
 
-       if (verbose)
+       if (verbose) {
                fprintf(ttyout, "Requesting %s", origline);
+               fflush(ttyout);
+       }
 
        /*
         * Construct and send the request. Proxy requests don't want leading /.
@@ -632,8 +636,11 @@ again:
 
        epath = url_encode(path);
        if (proxyurl) {
-               if (verbose)
+               if (verbose) {
                        fprintf(ttyout, " (via %s)\n", proxyurl);
+                       fflush(ttyout);
+               }
+
                /*
                 * Host: directive must use the destination host address for
                 * the original URI (path).  We do not attach it at this moment.
@@ -704,8 +711,10 @@ again:
 #endif /* !SMALL */
                ftp_printf(fin, tls, "\r\n%s%s\r\n\r\n",
                    buf ? buf : "", httpuseragent);
-               if (verbose)
+               if (verbose) {
                        fprintf(ttyout, "\n");
+                       fflush(ttyout);
+               }
        }
        free(epath);
 
@@ -862,8 +871,10 @@ again:
                        loctail = strchr(redirurl, '#');
                        if (loctail != NULL)
                                *loctail = '\0';
-                       if (verbose)
+                       if (verbose) {
                                fprintf(ttyout, "Redirected to %s\n", redirurl);
+                               fflush(ttyout);
+                       }
                        if (fin != NULL)
                                fclose(fin);
                        else if (s != -1)
@@ -953,8 +964,10 @@ again:
                !resume &&
 #endif /* !SMALL */
                filesize != -1 && len == 0 && bytes != filesize) {
-               if (verbose)
+               if (verbose) {
                        fputs("Read short file.\n", ttyout);
+                       fflush(ttyout);
+               }
                goto cleanup_url_get;
        }
 
@@ -1290,8 +1303,10 @@ bad_ftp_url:
                        continue;
                }
 
-               if (verbose)
+               if (verbose) {
                        fprintf(ttyout, "Retrieving %s/%s\n", dir ? dir : "", 
file);
+                       fflush(ttyout);
+               }
 
                if (dirhasglob) {
                        snprintf(rempath, sizeof(rempath), "%s/%s", dir, file);



With this applied, the order is correct:

$ ./ftp http://www.tedunangst.com/favicon.ico
Trying 208.82.130.146...
Requesting http://www.tedunangst.com/favicon.ico
100% 
|**************************************************************************************|
  1106       00:00    
1106 bytes received in 0.00 seconds (5.99 MB/s)
$ ./ftp http://www.tedunangst.com/favicon.ico > log 2>&1
$ cat log
Trying 208.82.130.146...
Requesting http://www.tedunangst.com/favicon.ico
1106 bytes received in 0.00 seconds (13.18 MB/s)

On Sun, Nov 16, 2014 at 01:44:18PM -0500, Ted Unangst wrote:
> Try an ftp command normally:
> 
> ftp http://www.tedunangst.com/favicon.ico
> Trying 208.82.130.146...
> Requesting http://www.tedunangst.com/favicon.ico
> 100% |************************|  1106       00:00    
> 1106 bytes received in 0.00 seconds (6.13 MB/s)
> 
> OK. Looks good. Now try logging it.
> 
> ftp http://www.tedunangst.com/favicon.ico > log 2>&1 
> cat log
> 1106 bytes received in 0.00 seconds (11.59 MB/s)
> Trying 208.82.130.146...
> Requesting http://www.tedunangst.com/favicon.ico
> 
> What? It's backwards! This certainly does not make log inspection any
> easier.
> 

Reply via email to