Tatsuhiro Tsujikawa
0ea9f70049
http2: handle incoming data larger than remaining buffer
2014-02-04 14:57:29 +01:00
Tatsuhiro Tsujikawa
4082dc9de6
http2: Check stream ID we are interested in
2014-02-04 14:55:29 +01:00
Tatsuhiro Tsujikawa
dbccf497da
http2: store response header in temporary buffer
2014-02-04 14:54:42 +01:00
Tatsuhiro Tsujikawa
63b26d889f
HTTP2: add layer between existing http and socket(TLS) layer
...
This patch chooses different approach to integrate HTTP2 into HTTP curl
stack. The idea is that we insert HTTP2 layer between HTTP code and
socket(TLS) layer. When HTTP2 is initialized (either in NPN or Upgrade),
we replace the Curl_recv/Curl_send callbacks with HTTP2's, but keep the
original callbacks in http_conn struct. When sending serialized data by
nghttp2, we use original Curl_send callback. Likewise, when reading data
from network, we use original Curl_recv callback. In this way we can
treat both TLS and non-TLS connections.
With this patch, one can transfer contents from https://twitter.com and
from nghttp2 test server in plain HTTP as well.
The code still has rough edges. The notable one is I could not figure
out how to call nghttp2_session_send() when underlying socket is
writable.
2014-02-04 14:49:49 +01:00
Fabian Frank
4d8db595ca
gtls: add ALPN support
...
Add ALPN support when using GnuTLS >= 3.2.0. This allows
libcurl to negotiate HTTP/2.0 for https connections when
built with GnuTLS.
See:
http://www.gnutls.org/manual/gnutls.html#Application-Layer-Protocol-Negotiation-_0028ALPN_0029
http://tools.ietf.org/html/draft-ietf-tls-applayerprotoneg-04
2014-02-04 09:48:27 +01:00
Steve Holme
6127e54f40
tool_operate: Moved libcurl information gathering to tool_main
2014-02-03 22:56:58 +00:00
Fabian Frank
8b6654224b
openssl: add ALPN support
...
Add ALPN support when using OpenSSL. This will offer ALPN and NPN to the
server, who can respond with either one or none of the two. OpenSSL >=
1.0.2 is required, which means as of today obtaining a snapshot from
ftp://ftp.openssl.org/snapshot/.
See:
http://tools.ietf.org/html/draft-ietf-tls-applayerprotoneg-04
ba168244a1/ssl/ssl_lib.c (L1787)
2014-02-03 23:46:06 +01:00
Steve Holme
c35d05aa62
tool_operate: Moved command line argument parsing into separate function
2014-02-03 18:38:14 +00:00
Steve Holme
8034b08e0e
tool_operate: Simplified parse .curlrc decision logic
2014-02-03 16:16:17 +00:00
Steve Holme
b811200f64
tool_operate: Moved main initialisation and cleanup code into tool_main
2014-02-03 12:31:16 +00:00
Steve Holme
c1daf6c0cd
tool_main: Fixed compilation warning from commit 0104678c79
...
no previous prototype for function 'memory_tracking_init'
2014-02-03 12:16:22 +00:00
Steve Holme
cf80b85b66
tool_main: Changed stack based config struct to be heap based
2014-02-03 10:54:40 +00:00
Dan Fandrich
2f89a61cc0
tests: Moved some comments so the test data files parse as XML
2014-02-03 00:23:34 +01:00
Steve Holme
0104678c79
tool_operate: Moved memory tracking initialisation into tool_main
2014-02-02 13:48:36 +00:00
Steve Holme
ffb8a21d85
tests: Fixed test172 cookie expiry
...
The test contains a cookie jar file where one of the cookies has an
expiry date of 1391252187 -- Sat, 1 Feb 2014 10:56:27 GMT which has
now expired. Updated to Wed, 14 Oct 2037 16:36:33 GMT as per test
179.
Reported-by: Adam Sampson
Bug: http://curl.haxx.se/bug/view.cgi?id=1330
2014-02-02 11:01:10 +00:00
Steve Holme
9ab0dc618f
tool_operate: Moved initial config setup into new init_config() function
2014-02-02 10:18:21 +00:00
Steve Holme
83dbd06936
tool_main: Moved config struct initialisation into a separate function
...
In preparation for adding URL specific options moved the initialisation
of the Configurable structure into a separate function in tool_cfgable.
2014-02-01 13:44:00 +00:00
Marc Hoersken
e5acae0052
test 500: workaround low timer resolution on Windows
...
Since the timer resolution is lower, there are actually cases that
the compared values are equal. Therefore we check for previous
timestamps being greater than the current one instead.
2014-02-01 14:04:47 +01:00
Marc Hoersken
efc112079c
test suite: stop conversion of valid output to CRLF on Windows
...
Since the output isn't actually being written in text-mode and it
was rather used as a workaround, disable text-mode for these tests.
2014-02-01 13:49:58 +01:00
Marc Hoersken
2c49f2e3db
HTTP tests: use CRLF as header seperator according to RFC 2616
2014-02-01 13:47:00 +01:00
Marc Hoersken
9f42205dcc
FTP tests: enable text-mode for more datacheck sections
2014-02-01 13:43:19 +01:00
Marc Hoersken
4ea2d5579b
FTP tests: enable text-mode for data and datacheck sections
2014-01-31 20:05:21 +01:00
Marc Hoersken
9f132f9f39
runtests.pl: added support for text-mode within datacheck section
2014-01-31 20:05:17 +01:00
Marc Hoersken
ca9ab24ed5
ftpserver.pl: directory LISTings use [CR][LF] for ASCII transfer
...
According to section 2.2 of RFC959 the End-of-Line is defined as:
The end-of-line sequence defines the separation of printing
lines. The sequence is Carriage Return, followed by Line Feed.
Verified by sniffing traffic between a Windows FTP client (FileZilla)
and Unix-hosted FTP server (ProFTPD).
2014-01-31 20:05:14 +01:00
Marc Hoersken
480ca49ecb
runtests.pl: reverse line-ending conversion on Windows
...
It makes more sense to convert the expected output to [CR][LF] on
Windows than to force the actual, probably correct, output to [LF].
This way it is actually possible to see if curl outputs the correct
line-ending excepted by a text-aware test case.
2014-01-31 20:05:09 +01:00
Marc Hoersken
82f558366f
winssl: improved default SSL/TLS protocol selection
...
For some reason Windows 7 SP1 chooses TLS 1.0 instead of TLS 1.2
if it is not explicitly enabled within grbitEnabledProtocols.
More information can be found on MSDN:
http://msdn.microsoft.com/library/windows/desktop/aa379810.aspx
2014-01-31 20:01:25 +01:00
Steve Holme
6fb34ea6c6
INSTALL: Corrected mentioned version number as release 7.34.1 became 7.35.0
2014-01-31 00:57:02 +00:00
Steve Holme
a738bb1c9f
RELEASE-NOTES: Synced with 0f213fdca1
2014-01-31 00:48:22 +00:00
Dan Fandrich
0f213fdca1
pipeline: Fixed a NULL pointer dereference on OOM
2014-01-31 00:05:36 +01:00
Dan Fandrich
be9cc620b5
tests: make the authorization retry tests pass the torture tests
2014-01-30 23:18:20 +01:00
Dan Fandrich
c631a54bb6
ftp: fixed a memory leak on wildcard error path
2014-01-30 22:15:03 +01:00
Dan Fandrich
768151449b
netrc: Fixed a memory leak in an OOM condition
2014-01-30 22:15:03 +01:00
Steve Holme
97857de80e
ntlm: Fixed a memory leak when using NTLM with a proxy server
2014-01-30 20:59:26 +00:00
Steve Holme
784f225266
tests: Missed updating a type-3 message in commit 1c9aaa0bac
2014-01-30 20:51:34 +00:00
Daniel Stenberg
b58b87e76e
http2: fix size check in on_data_chunk_recv
2014-01-30 20:24:15 +01:00
Daniel Stenberg
48c3bed43b
http2: add CRLF when first data arrives
2014-01-30 20:24:15 +01:00
Steve Holme
1c9aaa0bac
tests: Updated NTLM tests for NTLMv2 type-3 message
2014-01-30 19:14:04 +00:00
Tatsuhiro Tsujikawa
c5165b8458
http2_recv: Return written length on CURLE_AGAIN
2014-01-30 17:49:35 +01:00
Tatsuhiro Tsujikawa
88705ef80e
http2: Use nghttp2_session_mem_recv and nghttp2_session_upgrade
2014-01-30 17:45:53 +01:00
Daniel Stenberg
0952c9abcc
http2: call it "HTTP 2" and not 2.0
...
The minor version will be dropped for HTTP 2 so it will make sense to
avoid using it in option names etc.
2014-01-30 16:59:35 +01:00
Daniel Stenberg
83f52a455f
http2: basic version of receiving DATA
2014-01-30 16:09:36 +01:00
Daniel Stenberg
a7affd637f
http2: convert HEADER frames to HTTP1-like headers
...
... and then go through the "normal" HTTP engine.
2014-01-30 15:58:07 +01:00
Daniel Stenberg
93f473c78a
http2: fix EWOULDBLOCK in recv_callback()
2014-01-30 14:31:05 +01:00
Daniel Stenberg
a878cb3056
http2: do the POST Upgrade dance properly
2014-01-30 14:26:00 +01:00
Steve Holme
0e11307057
ntlm: Use static client nonce for the test suite
2014-01-30 11:39:08 +00:00
Daniel Stenberg
0f23662af7
http2.h: provide empty macros for non-http2 builds
2014-01-30 11:46:59 +01:00
Fabian Frank
dd011df9e1
http2: switch into http2 mode if NPN indicates
...
Check the NPN result before preparing an HTTP request and switch into
HTTP/2.0 mode if necessary. This is a work in progress, the actual code
to prepare and send the request using nghttp2 is still missing from
Curl_http2_send_request().
2014-01-30 11:34:37 +01:00
Daniel Stenberg
8e778887b5
http2: s/Curl_http2_request/Curl_http2_request_upgrade
...
To better reflect its purpose
2014-01-30 11:33:37 +01:00
Daniel Stenberg
99b4ff8b6f
http2-openssl: verify that NPN functionality is present
2014-01-30 11:24:15 +01:00
Fabian Frank
22c198fa89
openssl: set up hooks with to perform NPN
...
NPN is what is available in the wild today to negotiate SPDY or HTTP/2.0
connections. It is expected to be replaced by ALPN in the future. If
HTTP/2.0 is negotiated, this is indicated for the entire connection and
http.c is expected to initialize itself for HTTP/2.0 instead of
HTTP/1.1.
see:
http://technotes.googlecode.com/git/nextprotoneg.html
http://tools.ietf.org/html/draft-ietf-tls-applayerprotoneg-04
2014-01-30 11:13:28 +01:00