Go to file
Patrick Monnerat b20b364764
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
2021-11-15 10:40:03 +01:00
.circleci CI: more use of test-ci make target and verbose output 2021-10-27 12:33:18 +02:00
.github .github: retry macos "brew install" command on failure 2021-11-04 13:55:03 +01:00
.lift
CMake CMake: remove HAVE_WINSOCK_H definition 2021-09-29 15:54:36 +02:00
docs mime: use percent-escaping for multipart form field and file names 2021-11-15 10:40:03 +01:00
include mime: use percent-escaping for multipart form field and file names 2021-11-15 10:40:03 +01:00
lib mime: use percent-escaping for multipart form field and file names 2021-11-15 10:40:03 +01:00
m4 configure: add -lm to configure for rustls build. 2021-11-13 11:14:00 +01:00
packages mime: use percent-escaping for multipart form field and file names 2021-11-15 10:40:03 +01:00
plan9
projects
scripts zuul: update build environment for rustls-ffi 0.8.0 2021-11-11 13:47:34 +01:00
src mime: use percent-escaping for multipart form field and file names 2021-11-15 10:40:03 +01:00
tests mime: use percent-escaping for multipart form field and file names 2021-11-15 10:40:03 +01:00
winbuild
zuul.d zuul.d: update rustls-ffi to version 0.8.2 2021-11-15 09:50:08 +01:00
.azure-pipelines.yml azure: make the "w/o HTTP/SMTP/IMAP" build disable SSL proper 2021-11-13 14:16:48 +01:00
.cirrus.yml tests: add Schannel-specific tests and disable unsupported ones 2021-11-09 06:34:33 +01:00
.dcignore
.dir-locals.el
.gitattributes
.gitignore
.lgtm.yml
.mailmap mailmap: Malik Idrees Hasan Khan 2021-10-21 09:44:46 +02:00
acinclude.m4 misc: fix a few issues on MidnightBSD 2021-10-05 08:35:24 +02:00
appveyor.yml CI/runtests.pl: restore -u flag, but remove it from CI runs 2021-10-31 11:28:25 +01:00
buildconf
buildconf.bat
CHANGES
CMakeLists.txt cmake: fix error getting LOCATION property on non-imported target 2021-10-28 16:13:06 +02:00
configure.ac configure: better diagnostics if hyper is built wrong 2021-11-14 22:42:59 +01:00
COPYING
curl-config.in
GIT-INFO
libcurl.pc.in
MacOSX-Framework MacOSX-Framework: remove redundant ';' 2021-10-15 08:08:14 +02:00
Makefile.am misc: update copyright years 2021-10-15 17:07:19 +02:00
Makefile.dist
maketgz maketgz: redirect updatemanpages.pl output to /dev/null 2021-10-08 15:16:34 +02:00
README docs: reduce/avoid English contractions 2021-11-07 23:16:27 +01:00
README.md docs: reduce/avoid English contractions 2021-11-07 23:16:27 +01:00
RELEASE-NOTES RELEASE-NOTES: synced 2021-11-11 09:20:11 +01:00
SECURITY.md

curl logo

CII Best Practices Coverity passed AppVeyor Build Status Azure DevOps Build Status Cirrus Build Status Backers on Open Collective Sponsors on Open Collective Language Grade: C/C++ Codacy Badge Fuzzing Status

Curl is a command-line tool for transferring data specified with URL syntax. Find out how to use curl by reading the curl.1 man page or the MANUAL document. Find out how to install Curl by reading the INSTALL document.

libcurl is the library curl is using to do its job. It is readily available to be used by your software. Read the libcurl.3 man page to learn how!

You can find answers to the most frequent questions we get in the FAQ document.

Study the COPYING file for distribution terms.

Contact

If you have problems, questions, ideas or suggestions, please contact us by posting to a suitable mailing list.

All contributors to the project are listed in the THANKS document.

Commercial support

For commercial support, maybe private and dedicated help with your problems or applications using (lib)curl: https://curl.se/support.html

Website

Visit the curl website for the latest news and downloads.

Git

To download the very latest source from the Git server do this:

git clone https://github.com/curl/curl.git

(you will get a directory named curl created, filled with the source code)

Security problems

Report suspected security problems via our HackerOne page and not in public!

Notice

Curl contains pieces of source code that is Copyright (c) 1998, 1999 Kungliga Tekniska Högskolan. This notice is included here to comply with the distribution terms.

Backers

Thank you to all our backers! 🙏 [Become a backer]

Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]