Patrick Monnerat
cea27d3454
mime: do not reuse previously computed multipart size
...
The contents might have changed: size must be recomputed.
Reported-by: moteus on github
Fixes #1999
2017-10-20 13:57:12 +01:00
Patrick Monnerat
a8742efe42
mime: limit bas64-encoded lines length to 76 characters
2017-10-19 18:33:27 +01:00
Patrick Monnerat
d7e4230538
mime: do not call failf() if easy handle is NULL.
2017-10-13 17:16:57 +01:00
Daniel Stenberg
5f9e2ca09b
mime: fix the content reader to handle >16K data properly
...
Reported-by: Jeroen Ooms
Closes #1988
2017-10-13 07:55:10 +02:00
Patrick Monnerat
0401734dfd
mime: keep "text/plain" content type if user-specified.
...
Include test cases in 554, 587, 650.
Fixes https://github.com/curl/curl/issues/1986
2017-10-12 19:36:16 +01:00
Patrick Monnerat
06cb8adde2
mime: properly unbind mime structure in curl_mime_free().
...
This allows freeing a mime structure bound to the easy handle before
curl_easy_cleanup().
Fixes #1970 .
2017-10-09 01:26:27 +01:00
Patrick Monnerat
ebcbed3821
mime: refuse to add subparts to one of their own descendants.
...
Reported-by: Alexey Melnichuk
Fixes #1962
2017-10-08 18:49:52 +01:00
Patrick Monnerat
112ea5adb6
mime: avoid resetting a part's encoder when part's contents change.
2017-10-08 18:43:13 +01:00
Patrick Monnerat
b557182db1
mime: improve unbinding top multipart from easy handle.
...
Also avoid dangling pointers in referencing parts.
2017-10-08 18:38:34 +01:00
Patrick Monnerat
93e62adde8
mime: be tolerant about setting twice the same header list in a part.
2017-10-08 16:20:13 +01:00
Patrick Monnerat
ee56fdb691
form/mime: field names are not allowed to contain zero-valued bytes.
...
Also suppress length argument of curl_mime_name() (names are always
zero-terminated).
2017-09-22 01:08:29 +01:00
Patrick Monnerat
a7bcf274cc
mime: rephrase the multipart output state machine ( #1898 ) ...
...
... in hope coverity will like it much.
2017-09-20 14:06:47 +01:00
Patrick Monnerat
f304201868
mime: fix an explicit null dereference ( #1899 )
2017-09-20 12:01:11 +01:00
Daniel Stenberg
bec50cc285
mime:escape_string minor clarification change
...
... as it also removes a warning with old gcc versions.
Bug: https://curl.haxx.se/mail/lib-2017-09/0049.html
Reported-by: Ben Greear
2017-09-18 23:15:41 +02:00
Daniel Stenberg
e5743f08e7
code style: use spaces around pluses
2017-09-11 09:29:50 +02:00
Daniel Stenberg
6b84438d9a
code style: use spaces around equals signs
2017-09-11 09:29:50 +02:00
Daniel Stenberg
02eb6184ad
Curl_checkheaders: make it available for IMAP and SMTP too
...
... not only HTTP uses this now.
Closes #1875
2017-09-11 00:26:17 +02:00
Patrick Monnerat
c96d96bc5f
mime: drop internal FILE * support.
...
- The part kind MIMEKIND_FILE and associated code are suppressed.
- Seek data origin offset not used anymore: suppressed.
- MIMEKIND_NAMEDFILE renamed MIMEKIND_FILE; associated fields/functions
renamed accordingly.
- Curl_getformdata() processes stdin via a callback.
2017-09-06 13:42:03 +01:00
Patrick Monnerat
ee5725fb5e
mime: fix a trivial warning.
2017-09-05 18:38:31 +01:00
Patrick Monnerat
c1d0b6f98e
mime: replace 'struct Curl_mimepart' by 'curl_mimepart' in encoder code.
...
mime_state is now a typedef.
2017-09-05 18:20:06 +01:00
Patrick Monnerat
63ef436ea1
mime: implement encoders.
...
curl_mime_encoder() is operational and documented.
curl tool -F option is extended with ";encoder=".
curl tool --libcurl option generates calls to curl_mime_encoder().
New encoder tests 648 & 649.
Test 1404 extended with an encoder specification.
2017-09-05 17:55:51 +01:00
Daniel Stenberg
9926357b42
mime: unified to use the typedef'd mime structs everywhere
...
... and slightly edited to follow our code style better.
2017-09-05 17:33:16 +01:00
Viktor Szakats
841a09ea19
mime: use CURL_ZERO_TERMINATED in examples
...
and some minor whitespace fixes
2017-09-04 13:58:10 +00:00
Patrick Monnerat
efd9301426
mime: use size_t instead of ssize_t in public API interface.
...
To support telling a string is nul-terminated, symbol CURL_ZERO_TERMINATED
has been introduced.
Documentation updated accordingly.
symbols in versions updated. Added form API symbols deprecation info.
2017-09-03 16:10:55 +01:00
Patrick Monnerat
1a3f4c1991
mime: remove support "-" stdin pseudo-file name in curl_mime_filedata().
...
This feature is badly supported in Windows: as a replacement, a caller has
to use curl_mime_data_cb() with fread, fseek and possibly fclose
callbacks to process opened files.
The cli tool and documentation are updated accordingly.
The feature is however kept internally for form API compatibility, with
the known caveats it always had.
As a side effect, stdin size is not determined by the cli tool even if
possible and this results in a chunked transfer encoding. Test 173 is
updated accordingly.
2017-09-03 14:45:43 +01:00
Patrick Monnerat
045b076ae8
mime: fix some implicit curl_off_t --> size_t conversion warnings.
2017-09-03 10:18:58 +01:00
Patrick Monnerat
ce0881edee
mime: new MIME API.
...
Available in HTTP, SMTP and IMAP.
Deprecates the FORM API.
See CURLOPT_MIMEPOST.
Lib code and associated documentation.
2017-09-02 17:47:10 +01:00