Commit 67172406 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

more fixing to make the progress/getinfo stuff to work properly when doing

file: transfers too
parent ef0a2c71
Loading
Loading
Loading
Loading
+6 −1
Original line number Diff line number Diff line
@@ -83,6 +83,7 @@
#include "escape.h"
#include "file.h"
#include "speedcheck.h"
#include "getinfo.h"

#define _MPRINTF_REPLACE /* use our functions only */
#include <curl/mprintf.h>
@@ -177,10 +178,14 @@ CURLcode Curl_file(struct connectdata *conn)
  int fd;
  struct timeval now = Curl_tvnow();

  Curl_readwrite_init(conn);
  Curl_initinfo(data);
  Curl_pgrsStartNow(data);

  /* get the fd from the connection phase */
  fd = conn->proto.file->fd;

/*VMS?? -- This only works reliable for STREAMLF files */
  /* VMS: This only works reliable for STREAMLF files */
  if( -1 != fstat(fd, &statbuf)) {
    /* we could stat it, then read out the size */
    expected_size = statbuf.st_size;
+5 −2
Original line number Diff line number Diff line
@@ -1386,7 +1386,7 @@ void Curl_single_fdset(struct connectdata *conn,
 * The transfer must already have been setup by a call to Curl_Transfer().
 *
 * Note that headers are created in a preallocated buffer of a default size.
 * That buffer can be enlarged on demand, but it is never shrinken again.
 * That buffer can be enlarged on demand, but it is never shrunken again.
 *
 * Parts of this function was once written by the friendly Mark Butler
 * <butlerm@xmission.com>.
@@ -1400,6 +1400,9 @@ Transfer(struct connectdata *conn)
  struct Curl_transfer_keeper *k = &conn->keep;
  bool done=FALSE;

  if(!(conn->protocol & PROT_FILE))
    /* Only do this if we are not transferring FILE:, since the file: treatment
       is different*/
    Curl_readwrite_init(conn);

  if((conn->sockfd == -1) && (conn->writesockfd == -1))