diff --git a/lib/file.c b/lib/file.c index 40ee5cab5..e923ae255 100644 --- a/lib/file.c +++ b/lib/file.c @@ -83,6 +83,7 @@ #include "escape.h" #include "file.h" #include "speedcheck.h" +#include "getinfo.h" #define _MPRINTF_REPLACE /* use our functions only */ #include @@ -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; diff --git a/lib/transfer.c b/lib/transfer.c index b37691aa9..d44929407 100644 --- a/lib/transfer.c +++ b/lib/transfer.c @@ -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 * . @@ -1400,7 +1400,10 @@ Transfer(struct connectdata *conn) struct Curl_transfer_keeper *k = &conn->keep; bool done=FALSE; - Curl_readwrite_init(conn); + 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)) /* nothing to read, nothing to write, we're already OK! */