• Home
  • Raw
  • Download

Lines Matching refs:part

66                                 curl_mimepart *part);
67 static curl_off_t encoder_nop_size(curl_mimepart *part);
69 curl_mimepart *part);
71 curl_mimepart *part);
72 static curl_off_t encoder_base64_size(curl_mimepart *part);
74 curl_mimepart *part);
75 static curl_off_t encoder_qp_size(curl_mimepart *part);
382 struct curl_mimepart *part) in encoder_nop_read() argument
384 struct mime_encoder_state *st = &part->encstate; in encoder_nop_read()
402 static curl_off_t encoder_nop_size(curl_mimepart *part) in encoder_nop_size() argument
404 return part->datasize; in encoder_nop_size()
410 curl_mimepart *part) in encoder_7bit_read() argument
412 struct mime_encoder_state *st = &part->encstate; in encoder_7bit_read()
436 curl_mimepart *part) in encoder_base64_read() argument
438 struct mime_encoder_state *st = &part->encstate; in encoder_base64_read()
514 static curl_off_t encoder_base64_size(curl_mimepart *part) in encoder_base64_size() argument
516 curl_off_t size = part->datasize; in encoder_base64_size()
549 curl_mimepart *part) in encoder_qp_read() argument
551 struct mime_encoder_state *st = &part->encstate; in encoder_qp_read()
649 static curl_off_t encoder_qp_size(curl_mimepart *part) in encoder_qp_size() argument
653 return part->datasize? -1: 0; in encoder_qp_size()
662 curl_mimepart *part = (curl_mimepart *) instream; in mime_mem_read() local
663 size_t sz = curlx_sotouz(part->datasize - part->state.offset); in mime_mem_read()
673 memcpy(buffer, part->data + curlx_sotouz(part->state.offset), sz); in mime_mem_read()
680 curl_mimepart *part = (curl_mimepart *) instream; in mime_mem_seek() local
684 offset += part->state.offset; in mime_mem_seek()
687 offset += part->datasize; in mime_mem_seek()
691 if(offset < 0 || offset > part->datasize) in mime_mem_seek()
694 part->state.offset = offset; in mime_mem_seek()
706 static int mime_open_file(curl_mimepart *part) in mime_open_file() argument
710 if(part->fp) in mime_open_file()
712 part->fp = fopen_read(part->data, "rb"); in mime_open_file()
713 return part->fp? 0: -1; in mime_open_file()
719 curl_mimepart *part = (curl_mimepart *) instream; in mime_file_read() local
724 if(mime_open_file(part)) in mime_file_read()
727 return fread(buffer, size, nitems, part->fp); in mime_file_read()
732 curl_mimepart *part = (curl_mimepart *) instream; in mime_file_seek() local
734 if(whence == SEEK_SET && !offset && !part->fp) in mime_file_seek()
737 if(mime_open_file(part)) in mime_file_seek()
740 return fseek(part->fp, (long) offset, whence)? in mime_file_seek()
746 curl_mimepart *part = (curl_mimepart *) ptr; in mime_file_free() local
748 if(part->fp) { in mime_file_free()
749 fclose(part->fp); in mime_file_free()
750 part->fp = NULL; in mime_file_free()
752 Curl_safefree(part->data); in mime_file_free()
789 static size_t read_part_content(curl_mimepart *part, in read_part_content() argument
794 switch(part->lastreadstatus) { in read_part_content()
799 return part->lastreadstatus; in read_part_content()
805 if(part->datasize != (curl_off_t) -1 && in read_part_content()
806 part->state.offset >= part->datasize) { in read_part_content()
810 switch(part->kind) { in read_part_content()
816 sz = mime_subparts_read(buffer, 1, bufsize, part->arg, hasread); in read_part_content()
819 if(part->fp && feof(part->fp)) in read_part_content()
823 if(part->readfunc) { in read_part_content()
824 if(!(part->flags & MIME_FAST_READ)) { in read_part_content()
829 sz = part->readfunc(buffer, 1, bufsize, part->arg); in read_part_content()
842 part->lastreadstatus = sz; in read_part_content()
845 part->state.offset += sz; in read_part_content()
846 part->lastreadstatus = sz; in read_part_content()
854 static size_t read_encoded_part_content(curl_mimepart *part, char *buffer, in read_encoded_part_content() argument
857 struct mime_encoder_state *st = &part->encstate; in read_encoded_part_content()
865 sz = part->encoder->encodefunc(buffer, bufsize, ateof, part); in read_encoded_part_content()
893 sz = read_part_content(part, st->buf + st->bufend, in read_encoded_part_content()
914 static size_t readback_part(curl_mimepart *part, in readback_part() argument
923 struct curl_slist *hdr = (struct curl_slist *) part->state.ptr; in readback_part()
924 switch(part->state.state) { in readback_part()
926 mimesetstate(&part->state, in readback_part()
927 (part->flags & MIME_BODY_ONLY)? in readback_part()
929 part->curlheaders); in readback_part()
933 mimesetstate(&part->state, MIMESTATE_EOH, NULL); in readback_part()
937 mimesetstate(&part->state, MIMESTATE_USERHEADERS, hdr->next); in readback_part()
943 mimesetstate(&part->state, MIMESTATE_USERHEADERS, part->userheaders); in readback_part()
945 sz = readback_bytes(&part->state, buffer, bufsize, in readback_part()
948 mimesetstate(&part->state, part->state.state, hdr->next); in readback_part()
952 sz = readback_bytes(&part->state, buffer, bufsize, STRCONST("\r\n"), in readback_part()
955 mimesetstate(&part->state, MIMESTATE_BODY, NULL); in readback_part()
958 cleanup_encoder_state(&part->encstate); in readback_part()
959 mimesetstate(&part->state, MIMESTATE_CONTENT, NULL); in readback_part()
962 if(part->encoder) in readback_part()
963 sz = read_encoded_part_content(part, buffer, bufsize, hasread); in readback_part()
965 sz = read_part_content(part, buffer, bufsize, hasread); in readback_part()
968 mimesetstate(&part->state, MIMESTATE_END, NULL); in readback_part()
970 if(part->kind == MIMEKIND_FILE && part->fp) { in readback_part()
971 fclose(part->fp); in readback_part()
972 part->fp = NULL; in readback_part()
1007 curl_mimepart *part = mime->state.ptr; in mime_subparts_read() local
1021 mimesetstate(&mime->state, MIMESTATE_BOUNDARY2, part); in mime_subparts_read()
1024 if(part) in mime_subparts_read()
1031 mimesetstate(&mime->state, MIMESTATE_CONTENT, part); in mime_subparts_read()
1035 if(!part) { in mime_subparts_read()
1039 sz = readback_part(part, buffer, nitems, hasread); in mime_subparts_read()
1047 mimesetstate(&mime->state, MIMESTATE_BOUNDARY1, part->nextpart); in mime_subparts_read()
1066 static int mime_part_rewind(curl_mimepart *part) in mime_part_rewind() argument
1071 if(part->flags & MIME_BODY_ONLY) in mime_part_rewind()
1073 cleanup_encoder_state(&part->encstate); in mime_part_rewind()
1074 if(part->state.state > targetstate) { in mime_part_rewind()
1076 if(part->seekfunc) { in mime_part_rewind()
1077 res = part->seekfunc(part->arg, (curl_off_t) 0, SEEK_SET); in mime_part_rewind()
1094 mimesetstate(&part->state, targetstate, NULL); in mime_part_rewind()
1096 part->lastreadstatus = 1; /* Successful read status. */ in mime_part_rewind()
1103 curl_mimepart *part; in mime_subparts_seek() local
1112 for(part = mime->firstpart; part; part = part->nextpart) { in mime_subparts_seek()
1113 int res = mime_part_rewind(part); in mime_subparts_seek()
1125 static void cleanup_part_content(curl_mimepart *part) in cleanup_part_content() argument
1127 if(part->freefunc) in cleanup_part_content()
1128 part->freefunc(part->arg); in cleanup_part_content()
1130 part->readfunc = NULL; in cleanup_part_content()
1131 part->seekfunc = NULL; in cleanup_part_content()
1132 part->freefunc = NULL; in cleanup_part_content()
1133 part->arg = (void *) part; /* Defaults to part itself. */ in cleanup_part_content()
1134 part->data = NULL; in cleanup_part_content()
1135 part->fp = NULL; in cleanup_part_content()
1136 part->datasize = (curl_off_t) 0; /* No size yet. */ in cleanup_part_content()
1137 cleanup_encoder_state(&part->encstate); in cleanup_part_content()
1138 part->kind = MIMEKIND_NONE; in cleanup_part_content()
1139 part->flags &= ~MIME_FAST_READ; in cleanup_part_content()
1140 part->lastreadstatus = 1; /* Successful read status. */ in cleanup_part_content()
1141 part->state.state = MIMESTATE_BEGIN; in cleanup_part_content()
1168 void Curl_mime_cleanpart(curl_mimepart *part) in Curl_mime_cleanpart() argument
1170 if(part) { in Curl_mime_cleanpart()
1171 cleanup_part_content(part); in Curl_mime_cleanpart()
1172 curl_slist_free_all(part->curlheaders); in Curl_mime_cleanpart()
1173 if(part->flags & MIME_USERHEADERS_OWNER) in Curl_mime_cleanpart()
1174 curl_slist_free_all(part->userheaders); in Curl_mime_cleanpart()
1175 Curl_safefree(part->mimetype); in Curl_mime_cleanpart()
1176 Curl_safefree(part->name); in Curl_mime_cleanpart()
1177 Curl_safefree(part->filename); in Curl_mime_cleanpart()
1178 Curl_mime_initpart(part); in Curl_mime_cleanpart()
1185 curl_mimepart *part; in curl_mime_free() local
1190 part = mime->firstpart; in curl_mime_free()
1191 mime->firstpart = part->nextpart; in curl_mime_free()
1192 Curl_mime_cleanpart(part); in curl_mime_free()
1193 free(part); in curl_mime_free()
1306 void Curl_mime_initpart(curl_mimepart *part) in Curl_mime_initpart() argument
1308 memset((char *) part, 0, sizeof(*part)); in Curl_mime_initpart()
1309 part->lastreadstatus = 1; /* Successful read status. */ in Curl_mime_initpart()
1310 mimesetstate(&part->state, MIMESTATE_BEGIN, NULL); in Curl_mime_initpart()
1316 curl_mimepart *part; in curl_mime_addpart() local
1321 part = (curl_mimepart *) malloc(sizeof(*part)); in curl_mime_addpart()
1323 if(part) { in curl_mime_addpart()
1324 Curl_mime_initpart(part); in curl_mime_addpart()
1325 part->parent = mime; in curl_mime_addpart()
1328 mime->lastpart->nextpart = part; in curl_mime_addpart()
1330 mime->firstpart = part; in curl_mime_addpart()
1332 mime->lastpart = part; in curl_mime_addpart()
1335 return part; in curl_mime_addpart()
1339 CURLcode curl_mime_name(curl_mimepart *part, const char *name) in curl_mime_name() argument
1341 if(!part) in curl_mime_name()
1344 Curl_safefree(part->name); in curl_mime_name()
1347 part->name = strdup(name); in curl_mime_name()
1348 if(!part->name) in curl_mime_name()
1356 CURLcode curl_mime_filename(curl_mimepart *part, const char *filename) in curl_mime_filename() argument
1358 if(!part) in curl_mime_filename()
1361 Curl_safefree(part->filename); in curl_mime_filename()
1364 part->filename = strdup(filename); in curl_mime_filename()
1365 if(!part->filename) in curl_mime_filename()
1373 CURLcode curl_mime_data(curl_mimepart *part, in curl_mime_data() argument
1376 if(!part) in curl_mime_data()
1379 cleanup_part_content(part); in curl_mime_data()
1385 part->data = malloc(datasize + 1); in curl_mime_data()
1386 if(!part->data) in curl_mime_data()
1389 part->datasize = datasize; in curl_mime_data()
1392 memcpy(part->data, data, datasize); in curl_mime_data()
1393 part->data[datasize] = '\0'; /* Set a null terminator as sentinel. */ in curl_mime_data()
1395 part->readfunc = mime_mem_read; in curl_mime_data()
1396 part->seekfunc = mime_mem_seek; in curl_mime_data()
1397 part->freefunc = mime_mem_free; in curl_mime_data()
1398 part->flags |= MIME_FAST_READ; in curl_mime_data()
1399 part->kind = MIMEKIND_DATA; in curl_mime_data()
1406 CURLcode curl_mime_filedata(curl_mimepart *part, const char *filename) in curl_mime_filedata() argument
1410 if(!part) in curl_mime_filedata()
1413 cleanup_part_content(part); in curl_mime_filedata()
1422 part->data = strdup(filename); in curl_mime_filedata()
1423 if(!part->data) in curl_mime_filedata()
1426 part->datasize = -1; in curl_mime_filedata()
1428 part->datasize = filesize(filename, sbuf); in curl_mime_filedata()
1429 part->seekfunc = mime_file_seek; in curl_mime_filedata()
1432 part->readfunc = mime_file_read; in curl_mime_filedata()
1433 part->freefunc = mime_file_free; in curl_mime_filedata()
1434 part->kind = MIMEKIND_FILE; in curl_mime_filedata()
1444 CURLcode res = curl_mime_filename(part, base); in curl_mime_filedata()
1455 CURLcode curl_mime_type(curl_mimepart *part, const char *mimetype) in curl_mime_type() argument
1457 if(!part) in curl_mime_type()
1460 Curl_safefree(part->mimetype); in curl_mime_type()
1463 part->mimetype = strdup(mimetype); in curl_mime_type()
1464 if(!part->mimetype) in curl_mime_type()
1472 CURLcode curl_mime_encoder(curl_mimepart *part, const char *encoding) in curl_mime_encoder() argument
1477 if(!part) in curl_mime_encoder()
1480 part->encoder = NULL; in curl_mime_encoder()
1487 part->encoder = mep; in curl_mime_encoder()
1495 CURLcode curl_mime_headers(curl_mimepart *part, in curl_mime_headers() argument
1498 if(!part) in curl_mime_headers()
1501 if(part->flags & MIME_USERHEADERS_OWNER) { in curl_mime_headers()
1502 if(part->userheaders != headers) /* Allow setting twice the same list. */ in curl_mime_headers()
1503 curl_slist_free_all(part->userheaders); in curl_mime_headers()
1504 part->flags &= ~MIME_USERHEADERS_OWNER; in curl_mime_headers()
1506 part->userheaders = headers; in curl_mime_headers()
1508 part->flags |= MIME_USERHEADERS_OWNER; in curl_mime_headers()
1513 CURLcode curl_mime_data_cb(curl_mimepart *part, curl_off_t datasize, in curl_mime_data_cb() argument
1518 if(!part) in curl_mime_data_cb()
1521 cleanup_part_content(part); in curl_mime_data_cb()
1524 part->readfunc = readfunc; in curl_mime_data_cb()
1525 part->seekfunc = seekfunc; in curl_mime_data_cb()
1526 part->freefunc = freefunc; in curl_mime_data_cb()
1527 part->arg = arg; in curl_mime_data_cb()
1528 part->datasize = datasize; in curl_mime_data_cb()
1529 part->kind = MIMEKIND_CALLBACK; in curl_mime_data_cb()
1536 CURLcode Curl_mime_set_subparts(curl_mimepart *part, in Curl_mime_set_subparts() argument
1541 if(!part) in Curl_mime_set_subparts()
1545 if(part->kind == MIMEKIND_MULTIPART && part->arg == subparts) in Curl_mime_set_subparts()
1548 cleanup_part_content(part); in Curl_mime_set_subparts()
1556 root = part->parent; in Curl_mime_set_subparts()
1566 subparts->parent = part; in Curl_mime_set_subparts()
1568 part->seekfunc = mime_subparts_seek; in Curl_mime_set_subparts()
1569 part->freefunc = take_ownership? mime_subparts_free: mime_subparts_unbind; in Curl_mime_set_subparts()
1570 part->arg = subparts; in Curl_mime_set_subparts()
1571 part->datasize = -1; in Curl_mime_set_subparts()
1572 part->kind = MIMEKIND_MULTIPART; in Curl_mime_set_subparts()
1578 CURLcode curl_mime_subparts(curl_mimepart *part, curl_mime *subparts) in curl_mime_subparts() argument
1580 return Curl_mime_set_subparts(part, subparts, TRUE); in curl_mime_subparts()
1588 curl_mimepart *part = (curl_mimepart *) instream; in Curl_mime_read() local
1596 ret = readback_part(part, buffer, nitems, &hasread); in Curl_mime_read()
1609 CURLcode Curl_mime_rewind(curl_mimepart *part) in Curl_mime_rewind() argument
1611 return mime_part_rewind(part) == CURL_SEEKFUNC_OK? in Curl_mime_rewind()
1632 curl_mimepart *part; in multipart_size() local
1640 for(part = mime->firstpart; part; part = part->nextpart) { in multipart_size()
1641 curl_off_t sz = Curl_mime_size(part); in multipart_size()
1654 curl_off_t Curl_mime_size(curl_mimepart *part) in Curl_mime_size() argument
1658 if(part->kind == MIMEKIND_MULTIPART) in Curl_mime_size()
1659 part->datasize = multipart_size(part->arg); in Curl_mime_size()
1661 size = part->datasize; in Curl_mime_size()
1663 if(part->encoder) in Curl_mime_size()
1664 size = part->encoder->sizefunc(part); in Curl_mime_size()
1666 if(size >= 0 && !(part->flags & MIME_BODY_ONLY)) { in Curl_mime_size()
1668 size += slist_size(part->curlheaders, 2, NULL, 0); in Curl_mime_size()
1669 size += slist_size(part->userheaders, 2, STRCONST("Content-Type")); in Curl_mime_size()
1762 curl_mimepart *part, in Curl_mime_prepare_headers() argument
1774 curl_slist_free_all(part->curlheaders); in Curl_mime_prepare_headers()
1775 part->curlheaders = NULL; in Curl_mime_prepare_headers()
1778 if(part->state.state == MIMESTATE_CURLHEADERS) in Curl_mime_prepare_headers()
1779 mimesetstate(&part->state, MIMESTATE_CURLHEADERS, NULL); in Curl_mime_prepare_headers()
1782 customct = part->mimetype; in Curl_mime_prepare_headers()
1784 customct = search_header(part->userheaders, STRCONST("Content-Type")); in Curl_mime_prepare_headers()
1790 switch(part->kind) { in Curl_mime_prepare_headers()
1795 contenttype = Curl_mime_contenttype(part->filename); in Curl_mime_prepare_headers()
1797 contenttype = Curl_mime_contenttype(part->data); in Curl_mime_prepare_headers()
1798 if(!contenttype && part->filename) in Curl_mime_prepare_headers()
1802 contenttype = Curl_mime_contenttype(part->filename); in Curl_mime_prepare_headers()
1807 if(part->kind == MIMEKIND_MULTIPART) { in Curl_mime_prepare_headers()
1808 mime = (curl_mime *) part->arg; in Curl_mime_prepare_headers()
1814 if(strategy == MIMESTRATEGY_MAIL || !part->filename) in Curl_mime_prepare_headers()
1818 if(!search_header(part->userheaders, STRCONST("Content-Disposition"))) { in Curl_mime_prepare_headers()
1820 if(part->filename || part->name || in Curl_mime_prepare_headers()
1824 !part->name && !part->filename) in Curl_mime_prepare_headers()
1830 if(part->name) { in Curl_mime_prepare_headers()
1831 name = escape_string(data, part->name, strategy); in Curl_mime_prepare_headers()
1835 if(!ret && part->filename) { in Curl_mime_prepare_headers()
1836 filename = escape_string(data, part->filename, strategy); in Curl_mime_prepare_headers()
1841 ret = Curl_mime_add_header(&part->curlheaders, in Curl_mime_prepare_headers()
1859 ret = add_content_type(&part->curlheaders, contenttype, boundary); in Curl_mime_prepare_headers()
1865 if(!search_header(part->userheaders, in Curl_mime_prepare_headers()
1867 if(part->encoder) in Curl_mime_prepare_headers()
1868 cte = part->encoder->name; in Curl_mime_prepare_headers()
1870 part->kind != MIMEKIND_MULTIPART) in Curl_mime_prepare_headers()
1873 ret = Curl_mime_add_header(&part->curlheaders, in Curl_mime_prepare_headers()
1882 if(part->state.state == MIMESTATE_CURLHEADERS) in Curl_mime_prepare_headers()
1883 mimesetstate(&part->state, MIMESTATE_CURLHEADERS, part->curlheaders); in Curl_mime_prepare_headers()
1886 if(part->kind == MIMEKIND_MULTIPART && mime) { in Curl_mime_prepare_headers()
1903 void Curl_mime_unpause(curl_mimepart *part) in Curl_mime_unpause() argument
1905 if(part) { in Curl_mime_unpause()
1906 if(part->lastreadstatus == CURL_READFUNC_PAUSE) in Curl_mime_unpause()
1907 part->lastreadstatus = 1; /* Successful read status. */ in Curl_mime_unpause()
1908 if(part->kind == MIMEKIND_MULTIPART) { in Curl_mime_unpause()
1909 curl_mime *mime = (curl_mime *) part->arg; in Curl_mime_unpause()
1943 CURLcode curl_mime_name(curl_mimepart *part, const char *name) in curl_mime_name() argument
1945 (void) part; in curl_mime_name()
1950 CURLcode curl_mime_filename(curl_mimepart *part, const char *filename) in curl_mime_filename() argument
1952 (void) part; in curl_mime_filename()
1957 CURLcode curl_mime_type(curl_mimepart *part, const char *mimetype) in curl_mime_type() argument
1959 (void) part; in curl_mime_type()
1964 CURLcode curl_mime_encoder(curl_mimepart *part, const char *encoding) in curl_mime_encoder() argument
1966 (void) part; in curl_mime_encoder()
1971 CURLcode curl_mime_data(curl_mimepart *part, in curl_mime_data() argument
1974 (void) part; in curl_mime_data()
1980 CURLcode curl_mime_filedata(curl_mimepart *part, const char *filename) in curl_mime_filedata() argument
1982 (void) part; in curl_mime_filedata()
1987 CURLcode curl_mime_data_cb(curl_mimepart *part, in curl_mime_data_cb() argument
1994 (void) part; in curl_mime_data_cb()
2003 CURLcode curl_mime_subparts(curl_mimepart *part, curl_mime *subparts) in curl_mime_subparts() argument
2005 (void) part; in curl_mime_subparts()
2010 CURLcode curl_mime_headers(curl_mimepart *part, in curl_mime_headers() argument
2013 (void) part; in curl_mime_headers()