Lines Matching refs:data

88 static CURLcode file_do(struct Curl_easy *data, bool *done);
89 static CURLcode file_done(struct Curl_easy *data,
91 static CURLcode file_connect(struct Curl_easy *data, bool *done);
92 static CURLcode file_disconnect(struct Curl_easy *data,
95 static CURLcode file_setup_connection(struct Curl_easy *data,
126 static CURLcode file_setup_connection(struct Curl_easy *data,
131 data->req.p.file = calloc(1, sizeof(struct FILEPROTO));
132 if(!data->req.p.file)
143 static CURLcode file_connect(struct Curl_easy *data, bool *done)
146 struct FILEPROTO *file = data->req.p.file;
164 result = Curl_urldecode(data->state.up.path, 0, &real_path,
243 if(!data->state.upload && (fd == -1)) {
244 failf(data, "Couldn't open file %s", data->state.up.path);
245 file_done(data, CURLE_FILE_COULDNT_READ_FILE, FALSE);
253 static CURLcode file_done(struct Curl_easy *data,
256 struct FILEPROTO *file = data->req.p.file;
271 static CURLcode file_disconnect(struct Curl_easy *data,
277 return file_done(data, CURLE_OK, FALSE);
286 static CURLcode file_upload(struct Curl_easy *data)
288 struct FILEPROTO *file = data->req.p.file;
315 if(data->state.resume_from)
320 fd = open(file->path, mode, data->set.new_file_perms);
322 failf(data, "Can't open %s for writing", file->path);
326 if(-1 != data->state.infilesize)
327 /* known size of data to "upload" */
328 Curl_pgrsSetUploadSize(data, data->state.infilesize);
331 if(data->state.resume_from < 0) {
334 failf(data, "Can't get the size of %s", file->path);
337 data->state.resume_from = (curl_off_t)file_stat.st_size;
340 /* Yikes! Curl_fillreadbuffer uses data->req.upload_fromhere to READ
341 * client data to! Please, someone fix... */
342 uphere_save = data->req.upload_fromhere;
347 data->req.upload_fromhere = buffer;
348 result = Curl_fillreadbuffer(data, sizeof(buffer), &readcount);
358 if(data->state.resume_from) {
359 if((curl_off_t)nread <= data->state.resume_from) {
360 data->state.resume_from -= nread;
365 sendbuf = buffer + data->state.resume_from;
366 nread -= (size_t)data->state.resume_from;
367 data->state.resume_from = 0;
373 /* write the data to the target */
382 Curl_pgrsSetUploadCounter(data, bytecount);
384 if(Curl_pgrsUpdate(data))
387 result = Curl_speedcheck(data, Curl_now());
389 if(!result && Curl_pgrsUpdate(data))
393 data->req.upload_fromhere = uphere_save;
406 static CURLcode file_do(struct Curl_easy *data, bool *done)
425 if(data->state.upload)
426 return file_upload(data);
428 file = data->req.p.file;
438 data->info.filetime = statbuf.st_mtime;
442 if(fstated && !data->state.range && data->set.timecondition) {
443 if(!Curl_meets_timecondition(data, data->info.filetime)) {
460 result = Curl_client_write(data, CLIENTWRITE_HEADER, header, headerlen);
464 result = Curl_client_write(data, CLIENTWRITE_HEADER,
485 data->req.no_body ? "": "\r\n");
486 result = Curl_client_write(data, CLIENTWRITE_HEADER, header, headerlen);
490 Curl_pgrsSetDownloadSize(data, expected_size);
491 if(data->req.no_body)
496 result = Curl_range(data);
502 if(data->state.resume_from < 0) {
504 failf(data, "Can't get the size of file.");
507 data->state.resume_from += (curl_off_t)statbuf.st_size;
510 if(data->state.resume_from > 0) {
514 if(data->state.resume_from <= expected_size)
515 expected_size -= data->state.resume_from;
517 failf(data, "failed to resume file:// transfer");
523 if(data->req.maxdownload > 0)
524 expected_size = data->req.maxdownload;
536 Curl_pgrsSetDownloadSize(data, expected_size);
538 if(data->state.resume_from) {
539 if(data->state.resume_from !=
540 lseek(fd, data->state.resume_from, SEEK_SET))
544 Curl_pgrsTime(data, TIMER_STARTTRANSFER);
549 /* Don't fill a whole buffer if we want less than all data */
570 result = Curl_client_write(data, CLIENTWRITE_BODY, tmpbuf, nread);
574 if(Curl_pgrsUpdate(data))
577 result = Curl_speedcheck(data, Curl_now());
579 if(Curl_pgrsUpdate(data))