Daniel Stenberg [Mon, 11 Jan 2016 23:03:05 +0000 (00:03 +0100)]
TODO: "Try to URL encode given URL"
Closes #514
Daniel Stenberg [Sun, 10 Jan 2016 00:00:06 +0000 (01:00 +0100)]
ConnectionExists: only do pipelining/multiplexing when asked
When an HTTP/2 upgrade request fails (no protocol switch), it would
previously detect that as still possible to pipeline on (which is
acorrect) and do that when PIPEWAIT was enabled even if pipelining was
not explictily enabled.
It should only pipelined if explicitly asked to.
Closes #584
Mohammad AlSaleh [Fri, 8 Jan 2016 22:50:38 +0000 (00:50 +0200)]
lib: Prefix URLs with lower-case protocol names/schemes
Before this patch, if a URL does not start with the protocol
name/scheme, effective URLs would be prefixed with upper-case protocol
names/schemes. This behavior might not be expected by library users or
end users.
For example, if `CURLOPT_DEFAULT_PROTOCOL` is set to "https". And the
URL is "hostname/path". The effective URL would be
"HTTPS://hostname/path" instead of "https://hostname/path".
After this patch, effective URLs would be prefixed with a lower-case
protocol name/scheme.
Closes #597
Signed-off-by: Mohammad AlSaleh <CE.Mohammad.AlSaleh@gmail.com>
Alessandro Ghedini [Mon, 11 Jan 2016 22:22:25 +0000 (22:22 +0000)]
scripts: don't generate and install zsh completion when cross-compiling
Alessandro Ghedini [Sun, 27 Dec 2015 17:08:53 +0000 (18:08 +0100)]
scripts: fix zsh completion generation
The script should use the just-built curl, not the system one. This fixes
zsh completion generation when no system curl is installed.
Alessandro Ghedini [Sun, 27 Dec 2015 17:12:46 +0000 (18:12 +0100)]
zsh.pl: fail if no curl is found
Instead of generation a broken completion file.
Michael Kaufmann [Fri, 8 Jan 2016 13:54:56 +0000 (14:54 +0100)]
IDN host names: Remove the port number before converting to ACE
Closes #596
Jay Satiro [Sun, 10 Jan 2016 07:56:26 +0000 (02:56 -0500)]
runtests: Add mbedTLS to the SSL backends
.. and enable SSLpinning tests for mbedTLS, BoringSSL and LibreSSL.
Thomas Glanzmann [Wed, 6 Jan 2016 06:00:11 +0000 (07:00 +0100)]
mbedtls: implement CURLOPT_PINNEDPUBLICKEY
Tatsuhiro Tsujikawa [Sat, 9 Jan 2016 00:51:05 +0000 (09:51 +0900)]
url: Fix compile error with --enable-werror
Tatsuhiro Tsujikawa [Thu, 7 Jan 2016 13:10:09 +0000 (22:10 +0900)]
http2: Ensure that http2_handle_stream_close is called
Previously, when HTTP/2 is enabled and used, and stream has content
length known, Curl_read was not called when there was no bytes left to
read. Because of this, we could not make sure that
http2_handle_stream_close was called for every stream. Since we use
http2_handle_stream_close to emit trailer fields, they were
effectively ignored. This commit changes the code so that Curl_read is
called even if no bytes left to read, to ensure that
http2_handle_stream_close is called for every stream.
Discussed in https://github.com/bagder/curl/pull/564
Daniel Stenberg [Fri, 8 Jan 2016 22:06:59 +0000 (23:06 +0100)]
http2: handle the received SETTINGS frame
This regression landed in
5778e6f5 and made libcurl not act on received
settings and instead stayed with its internal defaults.
Bug: http://curl.haxx.se/mail/lib-2016-01/0031.html
Reported-by: Bankde
Daniel Stenberg [Fri, 8 Jan 2016 13:39:54 +0000 (14:39 +0100)]
Revert "multiplex: allow only once HTTP/2 is actually used"
This reverts commit
46cb70e9fa81c9a56de484cdd7c5d9d0d9fbec36.
Bug: http://curl.haxx.se/mail/lib-2016-01/0031.html
Tatsuhiro Tsujikawa [Fri, 8 Jan 2016 08:04:19 +0000 (03:04 -0500)]
http2: Fix PUSH_PROMISE headers being treated as trailers
Discussed in https://github.com/bagder/curl/pull/564
Michael Kaufmann [Thu, 7 Jan 2016 17:00:00 +0000 (18:00 +0100)]
connection reuse: IDN host names fixed
Use the ACE form of IDN hostnames as key in the connection cache. Add
new tests.
Closes #592
Daniel Stenberg [Thu, 7 Jan 2016 12:48:05 +0000 (13:48 +0100)]
tests: mark IPv6 FTP and FTPS tests with the FTP keyword
Jay Satiro [Thu, 7 Jan 2016 06:49:31 +0000 (01:49 -0500)]
mbedtls: Fix ALPN support
- Fix ALPN reply detection.
- Wrap nghttp2 code in ifdef USE_NGHTTP2.
Prior to this change ALPN and HTTP/2 did not work properly in mbedTLS.
Jay Satiro [Thu, 7 Jan 2016 03:10:49 +0000 (22:10 -0500)]
http2: Fix client write for trailers on stream close
Check that the trailer buffer exists before attempting a client write
for trailers on stream close.
Refer to comments in https://github.com/bagder/curl/pull/564
Daniel Stenberg [Wed, 6 Jan 2016 23:11:16 +0000 (00:11 +0100)]
COPYING: update general copyright year range
Daniel Stenberg [Tue, 5 Jan 2016 11:09:33 +0000 (12:09 +0100)]
ConnectionExists: add missing newline in infof() call
Mistake from commit
a464f33843ee1
Daniel Stenberg [Tue, 5 Jan 2016 10:32:30 +0000 (11:32 +0100)]
multiplex: allow only once HTTP/2 is actually used
To make sure curl doesn't allow multiplexing before a connection is
upgraded to HTTP/2 (like when Upgrade: h2c fails), we must make sure the
connection uses HTTP/2 as well and not only check what's wanted.
Closes #584
Patch-by: c0ff
Jay Satiro [Mon, 4 Jan 2016 22:44:39 +0000 (17:44 -0500)]
curl_global_init.3: Add Windows-specific info for init via DLL
- Add to both curl_global_init.3 and libcurl.3 the caveat for Windows
that initializing libcurl via a DLL's DllMain or static initializer
could cause a deadlock.
Bug: https://github.com/bagder/curl/issues/586
Reported-by: marc-groundctl@users.noreply.github.com
Daniel Stenberg [Mon, 4 Jan 2016 17:59:29 +0000 (18:59 +0100)]
FAQ: clarify who to mail about ECCN clarifications
Daniel Stenberg [Mon, 4 Jan 2016 17:49:10 +0000 (18:49 +0100)]
progressfunc.c: spellfix description
Daniel Stenberg [Mon, 4 Jan 2016 14:35:16 +0000 (15:35 +0100)]
docs/examples/multi-app.c: fix bad desc formatting
Daniel Stenberg [Mon, 4 Jan 2016 14:34:05 +0000 (15:34 +0100)]
examples: added descriptions
Daniel Stenberg [Mon, 4 Jan 2016 14:12:22 +0000 (15:12 +0100)]
example/simple.c: add description
Daniel Stenberg [Mon, 4 Jan 2016 14:12:08 +0000 (15:12 +0100)]
getredirect.c: a new example
Marc Hoersken [Sun, 27 Dec 2015 17:18:20 +0000 (18:18 +0100)]
RELEASE-NOTES: add
5e0e81a9c4e35f04ca
Daniel Stenberg [Sat, 26 Dec 2015 22:13:32 +0000 (23:13 +0100)]
RELEASE-NOTES: synced with
2aec4359db1088b10d
Marc Hoersken [Sat, 26 Dec 2015 16:25:59 +0000 (17:25 +0100)]
test 1515: add data check
Marc Hoersken [Sat, 26 Dec 2015 16:25:42 +0000 (17:25 +0100)]
test 1515: add MSYS support by passing a relative path
MSYS would otherwise turn a /-style path into a C:\-style path.
Marc Hoersken [Sat, 26 Dec 2015 10:01:13 +0000 (11:01 +0100)]
test 539: use datacheck mode text for ASCII-mode LISTings
While still using datacheck mode binary for the inline reply data.
Marc Hoersken [Sat, 26 Dec 2015 09:59:22 +0000 (10:59 +0100)]
runtests.pl: check up to 5 data parts with different text modes
Move the text-mode conversion for reply/replycheck from the verify
section into the load section and add support for 4 more check parts.
Daniel Stenberg [Thu, 24 Dec 2015 22:35:54 +0000 (23:35 +0100)]
CURLOPT_RANGE: for HTTP servers, range support is optional
Marc Hoersken [Thu, 24 Dec 2015 13:56:47 +0000 (14:56 +0100)]
tests 1048 and 1050: use datacheck mode text for ASCII-mode LISTings
Marc Hoersken [Thu, 24 Dec 2015 13:48:36 +0000 (14:48 +0100)]
tests 706 and 707: use datacheck mode text for ASCII-mode LISTings
Marc Hoersken [Thu, 24 Dec 2015 13:22:26 +0000 (14:22 +0100)]
tests 400,403,406: use datacheck mode text for ASCII-mode LISTings
Marc Hoersken [Wed, 23 Dec 2015 14:04:02 +0000 (15:04 +0100)]
sockfilt.c: fix calculation of sleep timeout on Windows
Not converting to double caused small timeouts to be skipped.
Marc Hoersken [Wed, 23 Dec 2015 14:03:40 +0000 (15:03 +0100)]
tests first.c: fix calculation of sleep timeout on Windows
Not converting to double caused small timeouts to be skipped.
Marc Hoersken [Wed, 23 Dec 2015 14:02:43 +0000 (15:02 +0100)]
test 573: add more debug output
Marc Hoersken [Wed, 23 Dec 2015 13:19:36 +0000 (14:19 +0100)]
ftplistparser.c: fix handling of file LISTings using Windows EOL
Previously file.txt[CR][LF] would have been returned as file.tx
(without the last t) if filetype is symlink. Now the t is
included and the internal item_length includes the zero byte.
Spotted using test 576 on Windows.
Marc Hoersken [Wed, 23 Dec 2015 12:35:36 +0000 (13:35 +0100)]
test 16: fix on Linux (and Windows) by using plain ASCII characters
Follow up on
b064ff0c351bb287557228575ef4c1d079b866fb, thanks Daniel.
Marc Hoersken [Wed, 23 Dec 2015 12:04:00 +0000 (13:04 +0100)]
tftpd server: add Windows support by writing files in binary mode
Marc Hoersken [Wed, 23 Dec 2015 11:49:40 +0000 (12:49 +0100)]
tests 252-255: use datacheck mode text for ASCII-mode LISTings
Marc Hoersken [Wed, 23 Dec 2015 11:41:52 +0000 (12:41 +0100)]
test 16: fix on Windows by converting data file from ANSI to UTF-8
Daniel Stenberg [Wed, 23 Dec 2015 11:07:50 +0000 (12:07 +0100)]
Makefile.inc: s/curl_SOURCES/CURL_FILES
This allows the root Makefile.am to include the Makefile.inc without
causing automake to warn on it (variables named *_SOURCES are
magic). curl_SOURCES is then instead assigned properly in
src/Makefile.am only.
Closes #577
Anders Bakken [Mon, 21 Dec 2015 18:13:15 +0000 (10:13 -0800)]
ConnectionExists: with *PIPEWAIT, wait for connections
Try harder to prevent libcurl from opening up an additional socket when
CURLOPT_PIPEWAIT is set. Accomplished by letting ongoing TCP and TLS
handshakes complete first before the decision is made.
Closes #575
Anders Bakken [Mon, 21 Dec 2015 18:12:35 +0000 (10:12 -0800)]
Add .dir-locals and set c-basic-offset to 2.
This makes it easier for emacs users to automatically get the right
2-space indentation when they edit curl source files.
c++-mode is in there as well because Emacs can't easily know if
something is a C or C++ header.
Closes #574
Johannes Schindelin [Thu, 17 Sep 2015 18:03:34 +0000 (20:03 +0200)]
configure: detect IPv6 support on Windows
This patch was "nicked" from the MINGW-packages project by Daniel.
https://github.com/Alexpux/MINGW-packages/commit/
9253d0bf58a1486e91f7efb5316e7fdb48fa4007
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Daniel Stenberg [Sun, 20 Dec 2015 22:43:46 +0000 (23:43 +0100)]
configure: allow static builds on mingw
This patch is adopted from the MINGW-packages project. It makes it
possible to build curl both shared and static again.
URL: https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-curl
Marc Hoersken [Thu, 17 Dec 2015 15:04:33 +0000 (16:04 +0100)]
test 1326: fix file check since curl is outputting binary data
Marc Hoersken [Thu, 17 Dec 2015 14:12:19 +0000 (15:12 +0100)]
test 1326: fix getting stuck on Windows due to incomplete request
The request needs to be read and send in binary mode in order to use
CRLF instead of LF. Adding --upload-file - causes curl to read stdin
in binary mode.
Daniel Stenberg [Thu, 17 Dec 2015 12:21:31 +0000 (13:21 +0100)]
RELEASE-NOTES: command line option recount
Dan Fandrich [Wed, 16 Dec 2015 21:13:02 +0000 (22:13 +0100)]
scripts/Makefile: build zsh script even in an out-of-tree build
Marc Hoersken [Wed, 16 Dec 2015 14:33:36 +0000 (15:33 +0100)]
sockfilt.c: added some debug output to select_ws
Marc Hoersken [Wed, 16 Dec 2015 14:33:13 +0000 (15:33 +0100)]
sockfilt.c: keep lines shorter than 80 chars
Marc Hoersken [Wed, 16 Dec 2015 14:32:31 +0000 (15:32 +0100)]
sockfilt.c: do not wait on unreliable file or pipe handle
The previous implementation caused issues on modern MSYS2 runtimes.
Daniel Stenberg [Wed, 16 Dec 2015 09:25:31 +0000 (10:25 +0100)]
cyassl: deal with lack of *get_peer_certificate
The function is only present in wolfssl/cyassl if it was built with
--enable-opensslextra. With these checks added, pinning support is disabled
unless the TLS lib has that function available.
Also fix the mistake in configure that checks for the wrong lib name.
Closes #566
Daniel Stenberg [Wed, 16 Dec 2015 09:06:09 +0000 (10:06 +0100)]
wolfssl: handle builds without SSLv3 support
Tatsuhiro Tsujikawa [Sun, 13 Dec 2015 10:32:58 +0000 (19:32 +0900)]
http2: Support trailer fields
This commit adds trailer support in HTTP/2. In HTTP/1.1, chunked
encoding must be used to send trialer fields. HTTP/2 deprecated any
trandfer-encoding, including chunked. But trailer fields are now
always available.
Since trailer fields are relatively rare these days (gRPC uses them
extensively though), allocating buffer for trailer fields is done when
we detect that HEADERS frame containing trailer fields is started. We
use Curl_add_buffer_* functions to buffer all trailers, just like we
do for regular header fields. And then deliver them when stream is
closed. We have to be careful here so that all data are delivered to
upper layer before sending trailers to the application.
We can deliver trailer field one by one using NGHTTP2_ERR_PAUSE
mechanism, but current method is far more simple.
Another possibility is use chunked encoding internally for HTTP/2
traffic. I have not tested it, but it could add another overhead.
Closes #564
Daniel Stenberg [Tue, 15 Dec 2015 22:12:32 +0000 (23:12 +0100)]
RELEASE-NOTES: synced with
6c2c019654e658a
Jay Satiro [Mon, 14 Dec 2015 21:43:08 +0000 (16:43 -0500)]
x509asn1: Fix host altname verification
- In Curl_verifyhost check all altnames in the certificate.
Prior to this change only the first altname was checked. Only the GSKit
SSL backend was affected by this bug.
Bug: http://curl.haxx.se/mail/lib-2015-12/0062.html
Reported-by: John Kohl
Daniel Stenberg [Mon, 14 Dec 2015 12:29:13 +0000 (13:29 +0100)]
curl --expect100-timeout: added
This is the new command line option to set the value for the existing
libcurl option CURLOPT_EXPECT_100_TIMEOUT_MS
Daniel Stenberg [Mon, 14 Dec 2015 23:36:08 +0000 (00:36 +0100)]
cyassl: fix compiler warning on type conversion
Daniel Stenberg [Mon, 14 Dec 2015 23:02:20 +0000 (00:02 +0100)]
curlver: the pending release will become 7.47.0
Anders Bakken [Mon, 14 Dec 2015 21:21:32 +0000 (13:21 -0800)]
setstropt: const-correctness
Closes #565
Daniel Stenberg [Mon, 14 Dec 2015 09:13:21 +0000 (10:13 +0100)]
ROADMAP: implemented HTTP2 for HTTPS-only
Daniel Stenberg [Mon, 14 Dec 2015 09:10:35 +0000 (10:10 +0100)]
HTTP2.md: spell fix and remove TODO now implemented
Daniel Stenberg [Mon, 14 Dec 2015 08:49:19 +0000 (09:49 +0100)]
libressl: the latest openssl x509 funcs are not in libressl
Daniel Stenberg [Sun, 13 Dec 2015 08:24:08 +0000 (09:24 +0100)]
curl: use 2TLS by default
Make this the default for the curl tool (if built with HTTP/2 powers
enabled) unless a specific HTTP version is requested on the command
line.
This should allow more users to get HTTP/2 powers without having to
change anything.
Daniel Stenberg [Sun, 13 Dec 2015 08:23:36 +0000 (09:23 +0100)]
http: add libcurl option to allow HTTP/2 for HTTPS only
... and stick to 1.1 for HTTP. This is in line with what browsers do and
should have very little risk.
Daniel Stenberg [Thu, 10 Dec 2015 18:20:22 +0000 (19:20 +0100)]
openssl: adapt to openssl >= 1.1.0 X509 opaque structs
Closes #491
Daniel Stenberg [Thu, 10 Dec 2015 16:31:00 +0000 (17:31 +0100)]
openssl: avoid BIO_reset() warnings since it returns a value
Daniel Stenberg [Thu, 10 Dec 2015 16:30:31 +0000 (17:30 +0100)]
openssl: adapt to 1.1.0+ name changes
Daniel Stenberg [Tue, 8 Dec 2015 23:34:39 +0000 (00:34 +0100)]
scripts/makefile: add standard header
Daniel Stenberg [Tue, 8 Dec 2015 23:32:42 +0000 (00:32 +0100)]
scripts/Makefile: fix GNUism and survive no perl
Closes #555
Reported-by: Thomas Klausner
Daniel Stenberg [Tue, 8 Dec 2015 23:27:04 +0000 (00:27 +0100)]
Tatsuhiro Tsujikawa [Fri, 4 Dec 2015 15:40:10 +0000 (00:40 +0900)]
http2: Fix hanging paused stream
When NGHTTP2_ERR_PAUSE is returned from data_source_read_callback, we
might not process DATA frame fully. Calling nghttp2_session_mem_recv()
again will continue to process DATA frame, but if there is no incoming
frames, then we have to call it again with 0-length data. Without this,
on_stream_close callback will not be called, and stream could be hanged.
Bug: http://curl.haxx.se/mail/lib-2015-11/0103.html
Reported-by: Francisco Moraes
Christian Stewart [Tue, 8 Dec 2015 15:04:52 +0000 (10:04 -0500)]
build: fix compilation error with CURL_DISABLE_VERBOSE_STRINGS
With curl disable verbose strings in http.c the compilation fails due to
the data variable being undefined later on in the function.
Closes #558
Gisle Vanem [Tue, 8 Dec 2015 00:05:42 +0000 (19:05 -0500)]
config-win32: Fix warning HAVE_WINSOCK2_H undefined
Gisle Vanem [Mon, 7 Dec 2015 23:43:35 +0000 (18:43 -0500)]
openssl: BoringSSL doesn't have CONF_modules_free
Gisle Vanem [Mon, 7 Dec 2015 19:27:29 +0000 (14:27 -0500)]
lwip: Fix compatibility issues with later versions
The name of the header guard in lwIP's <lwip/opt.h> has changed from
'__LWIP_OPT_H__' to 'LWIP_HDR_OPT_H' (bug #35874 in May 2015).
Other fixes:
- In curl_setup.h, the problem with an old PSDK doesn't apply if lwIP is
used.
- In memdebug.h, the 'socket' should be undefined first due to lwIP's
lwip_socket() macro.
- In curl_addrinfo.c lwIP's getaddrinfo() + freeaddrinfo() macros need
special handling because they were undef'ed in memdebug.h.
- In select.c we can't use preprocessor conditionals inside select if
MSVC and select is a macro, as it is with lwIP.
http://curl.haxx.se/mail/lib-2015-12/0023.html
http://curl.haxx.se/mail/lib-2015-12/0024.html
Patrick Monnerat [Mon, 7 Dec 2015 09:09:33 +0000 (10:09 +0100)]
os400: define CURL_VERSION_PSL in ILE/RPG binding
Gisle Vanem [Thu, 3 Dec 2015 06:02:50 +0000 (01:02 -0500)]
version: Add flag CURL_VERSION_PSL for libpsl
Jay Satiro [Mon, 7 Dec 2015 07:43:24 +0000 (02:43 -0500)]
formdata: Check if length is too large for memory
- If the size of the length type (curl_off_t) is greater than the size
of the size_t type then check before allocating memory to make sure the
value of length will fit in a size_t without overflow. If it doesn't
then return CURLE_BAD_FUNCTION_ARGUMENT.
Bug: https://github.com/bagder/curl/issues/425#issuecomment-
154518679
Reported-by: Steve Holme
Steve Holme [Thu, 3 Dec 2015 23:31:24 +0000 (23:31 +0000)]
tests: Corrected copy and pasted comments from commit
e643c5c908
Daniel Stenberg [Thu, 3 Dec 2015 08:53:53 +0000 (09:53 +0100)]
curl: remove keepalive #ifdef checks done on libcurl's behalf
They didn't match the ifdef logic used within libcurl anyway so they
could indeed warn for the wrong case - plus the tool cannot know how the
lib actually performs at that level.
Steve Holme [Wed, 2 Dec 2015 23:45:29 +0000 (23:45 +0000)]
test947: Corrected typo in test name
Steve Holme [Wed, 2 Dec 2015 23:10:02 +0000 (23:10 +0000)]
tests: Disable the OAUTHBEARER tests when using a non-default port number
Tests 842, 843, 844, 845, 887, 888, 889, 890, 946, 947, 948 and 949 fail
if a custom port number is specified via the -b option of runtests.pl.
Suggested by: Kamil Dudka
Bug: http://curl.haxx.se/mail/lib-2015-12/0003.html
Daniel Stenberg [Wed, 2 Dec 2015 22:24:47 +0000 (23:24 +0100)]
bump: towards next release
for all we know now, it might be called 7.46.1
Daniel Stenberg [Tue, 1 Dec 2015 22:10:16 +0000 (23:10 +0100)]
RELEASE-NOTES: updated contributor count for 7.46.0
Daniel Stenberg [Tue, 1 Dec 2015 21:53:24 +0000 (22:53 +0100)]
THANKS: new contributors from the 7.46.0 release
Daniel Stenberg [Tue, 1 Dec 2015 21:51:50 +0000 (22:51 +0100)]
THANKS-filter: single Tim Rühsen spelling
Daniel Stenberg [Tue, 1 Dec 2015 08:09:04 +0000 (09:09 +0100)]
docs/examples: gitignore some more built examples
Daniel Stenberg [Mon, 30 Nov 2015 07:22:32 +0000 (08:22 +0100)]
RELEASE-NOTES; this bug was never released
Daniel Stenberg [Mon, 30 Nov 2015 07:03:28 +0000 (08:03 +0100)]
RELEASE-NOTES: synced with
e55f15454efacb0
Flavio Medeiros [Sun, 29 Nov 2015 14:12:16 +0000 (11:12 -0300)]
Curl_read_plain: clean up ifdefs that break statements
Closes #546
Daniel Stenberg [Sun, 29 Nov 2015 23:12:46 +0000 (00:12 +0100)]
http2: convert some verbose output into debug-only output
Daniel Stenberg [Sun, 29 Nov 2015 23:11:42 +0000 (00:11 +0100)]
http2 push: add missing inits of new stream
- set the correct stream_id for pushed streams
- init maxdownload and size properly