diff options
author | Patrick Monnerat <patrick@monnerat.net> | 2021-10-25 12:58:37 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2021-11-15 10:40:03 +0100 |
commit | b20b364764cca2d577640126494fe2b09ae22e5d (patch) | |
tree | 78846a017865e51309fa64bc9bed29c8c6a63b09 /tests/data/test1187 | |
parent | 6ec28eb68729240cd359803dd2f65cb3d5b03f42 (diff) | |
download | curl-b20b364764cca2d577640126494fe2b09ae22e5d.tar.gz |
mime: use percent-escaping for multipart form field and file names
Until now, form field and file names where escaped using the
backslash-escaping algorithm defined for multipart mails. This commit
replaces this with the percent-escaping method for URLs.
As this may introduce incompatibilities with server-side applications, a
new libcurl option CURLOPT_MIME_OPTIONS with bitmask
CURLMIMEOPT_FORMESCAPE is introduced to revert to legacy use of
backslash-escaping. This is controlled by new cli tool option
--form-escape.
New tests and documentation are provided for this feature.
Reported by: Ryan Sleevi
Fixes #7789
Closes #7805
Diffstat (limited to 'tests/data/test1187')
-rw-r--r-- | tests/data/test1187 | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/tests/data/test1187 b/tests/data/test1187 new file mode 100644 index 000000000..53abf908f --- /dev/null +++ b/tests/data/test1187 @@ -0,0 +1,63 @@ +<testcase> +<info> +<keywords> +SMTP +MULTIPART +</keywords> +</info> + +# +# Server-side +<reply> +</reply> + +# +# Client-side +<client> +<server> +smtp +</server> + <name> +SMTP multipart with file name escaping + </name> +<stdin> +From: different
+To: another
+
+body
+</stdin> + <command> +smtp://%HOSTIP:%SMTPPORT/%TESTNUMBER --mail-rcpt recipient@example.com --mail-from sender@example.com -F "=This is the mail text" -F '=File content;filename="strange\file\"name"' +</command> +</client> + +# +# Verify data after the test has been "shot" +<verify> +<strippart> +s/^--------------------------[a-z0-9]*/------------------------------/ +s/boundary=------------------------[a-z0-9]*/boundary=----------------------------/ +</strippart> +<protocol> +EHLO %TESTNUMBER
+MAIL FROM:<sender@example.com>
+RCPT TO:<recipient@example.com>
+DATA
+QUIT
+</protocol> +<upload> +Content-Type: multipart/mixed; boundary=----------------------------
+Mime-Version: 1.0
+
+------------------------------
+
+This is the mail text
+------------------------------
+Content-Disposition: attachment; filename="strange\\file\"name"
+
+File content
+--------------------------------
+.
+</upload> +</verify> +</testcase> |