- Mar 14, 2015
-
-
Daniel Stenberg authored
... by using the regular Curl_http_done() method which checks for that. This makes test 1801 fail consistently with error 56 (which seems fine) to that test is also updated here. Reported-by: Ben Darnell Bug: https://github.com/bagder/curl/issues/166
-
- Mar 07, 2015
-
-
Daniel Stenberg authored
-
- Mar 03, 2015
-
-
Daniel Stenberg authored
... and as a consequence, introduce curl_printf.h with that re-define magic instead and make all libcurl code use that instead.
-
- Feb 27, 2015
-
-
Tatsuhiro Tsujikawa authored
Previously, we just ignored error code passed to on_stream_close_callback and just return 0 (success) after stream closure even if stream was reset with error. This patch records error code in on_stream_close_callback, and return -1 and use CURLE_HTTP2 error code on abnormal stream closure.
-
- Feb 25, 2015
-
-
Daniel Stenberg authored
Pointed-out-by: Tatsuhiro Tsujikawa Bug: http://curl.haxx.se/bug/view.cgi?id=1487
-
Daniel Stenberg authored
-
- Feb 09, 2015
-
-
Tatsuhiro Tsujikawa authored
Previously we don't ignore PUSH_PROMISE header fields in on_header callback. It makes header values mixed with following HEADERS, resulting protocol error.
-
- Dec 14, 2014
-
-
Steve Holme authored
-
- Nov 13, 2014
-
-
Tatsuhiro Tsujikawa authored
Previously if HTTP/2 traffic is appended to HTTP Upgrade response header (thus they are in the same buffer), the trailing HTTP/2 traffic is not processed and lost. The appended data is most likely SETTINGS frame. If it is lost, nghttp2 library complains server does not obey the HTTP/2 protocol and issues GOAWAY frame and curl eventually drops connection. This commit fixes this problem and now trailing data is processed.
-
- Sep 13, 2014
-
-
Tatsuhiro Tsujikawa authored
Previously we did not handle EOF from underlying transport socket and wrongly just returned error code CURL_AGAIN from http2_recv, which caused busy loop since socket has been closed. This patch adds the code to handle EOF situation and tells the upper layer that we got EOF.
-
- Aug 26, 2014
-
-
Tatsuhiro Tsujikawa authored
-
- Aug 07, 2014
-
-
Daniel Stenberg authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Daniel Stenberg authored
-
- Aug 03, 2014
-
-
Tatsuhiro Tsujikawa authored
To prevent infinite loop in readwrite_data() function when stream is reset before any response body comes, reset closed flag to false once it is evaluated to true.
-
- Aug 02, 2014
-
-
Tatsuhiro Tsujikawa authored
"Expect: 100-continue", which was once deprecated in HTTP/2, is now resurrected in HTTP/2 draft 14. This change adds its support to HTTP/2 code. This change also includes stricter header field checking.
-
- Jul 25, 2014
-
-
Daniel Stenberg authored
This is now used by the http2 code. It has two different symbols at the end of the base64 table to make the output "url safe". Bug: https://github.com/tatsuhiro-t/nghttp2/issues/62
-
- Jul 23, 2014
-
-
Daniel Stenberg authored
1 - fixes the warnings when built without http2 support 2 - adds CURLE_HTTP2, a new error code for errors detected by nghttp2 basically when they are about http2 specific things.
-
- Jun 13, 2014
-
-
Daniel Stenberg authored
-
- Jun 12, 2014
-
-
Daniel Stenberg authored
This regression was introduced when *init was split into *init and *setup...
-
- May 20, 2014
-
-
Daniel Stenberg authored
Http2 connections would wrongly get closed after each individual request. Co-authored-by: Tatsuhiro Tsujikawa Bug: http://curl.haxx.se/bug/view.cgi?id=1374
-
- May 07, 2014
-
-
Tatsuhiro Tsujikawa authored
Now nghttp2_submit_request returns assigned stream ID, we don't have to check stream ID using before_stream_send_callback. The adjust_priority_callback was removed.
-
- Apr 27, 2014
-
-
Tatsuhiro Tsujikawa authored
commit 6d5f40238028f2d8c (Apr 27) or later nghttp2 is now required
-
- Apr 23, 2014
-
-
Daniel Stenberg authored
This makes the findprotocol() function work as intended so that libcurl can properly be restricted to not support HTTP while still supporting HTTPS - since the HTTPS handler previously set both the HTTP and HTTPS bits in the protocol field. This fixes --proto and --proto-redir for most SSL protocols. This is done by adding a few new convenience defines that groups HTTP and HTTPS, FTP and FTPS etc that should then be used when the code wants to check for both protocols at once. PROTO_FAMILY_[protocol] style. Bug: https://github.com/bagder/curl/pull/97 Reported-by: drizzt
-
- Apr 05, 2014
-
-
Tatsuhiro Tsujikawa authored
-
- Mar 10, 2014
-
-
Tatsuhiro Tsujikawa authored
... and use Curl_safefree() instead of free()
-
- Feb 28, 2014
-
-
Tatsuhiro Tsujikawa authored
For HTTP/2, we may read up everything including responde body with header fields in Curl_http_readwrite_headers. If no content-length is provided, curl waits for the connection close, which we emulate it using conn->proto.httpc.closed = TRUE. The thing is if we read everything, then http2_recv won't be called and we cannot signal the HTTP/2 stream has closed. As a workaround, we return nonzero from data_pending to call http2_recv.
-
Daniel Stenberg authored
nghttp2 has yet again extended its callback struct and this is an attempt to make curl compile with nghttp2 from current git
-
- Feb 17, 2014
-
-
Tatsuhiro Tsujikawa authored
This patch enables HTTP POST/PUT in HTTP2. We disabled Expect header field and chunked transfer encoding since HTTP2 forbids them. In HTTP1, Curl sends small upload data with request headers, but HTTP2 requires upload data must be in DATA frame separately. So we added some conditionals to achieve this.
-
- Feb 05, 2014
-
-
Fabian Frank authored
A server might respond with a content-encoding header and a response that was encoded accordingly in HTTP-draft-09/2.0 mode, even if the client did not send an accept-encoding header earlier. The server might not send a content-encoding header if the identity encoding was used to encode the response. See: http://tools.ietf.org/html/draft-ietf-httpbis-http2-09#section-9.3
-
- Feb 04, 2014
-
-
Daniel Stenberg authored
As this is mandated by the http2 spec draft-09
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
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.
-
- Jan 30, 2014
-
-
Daniel Stenberg authored
-
Daniel Stenberg authored
-
Tatsuhiro Tsujikawa authored
-
Tatsuhiro Tsujikawa authored
-