- 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
-
Daniel Stenberg authored
-
Daniel Stenberg authored
... and then go through the "normal" HTTP engine.
-
Daniel Stenberg authored
-
Daniel Stenberg authored
-
Fabian Frank authored
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().
-
Daniel Stenberg authored
To better reflect its purpose
-
- Jan 29, 2014
-
-
Daniel Stenberg authored
This makes it easier to trace what's happening.
-
Daniel Stenberg authored
-
Daniel Stenberg authored
-
Daniel Stenberg authored
-
Daniel Stenberg authored
-
Gisle Vanem authored
the number of elements in the 'nghttp2_session_callbacks' structure is now reduced by 2 in version 0.3.0 (I'm not sure when the change happened, but checking for ver 0.3.0 work for me).
-
Gisle Vanem authored
Something is wrong in 'userp' for the HTTP2 recv_callback(). The session is created using bogus user-data; '&conn' and not 'conn'. I noticed this since the socket-value in Curl_read_plain() was set to a impossible high value.
-
Daniel Stenberg authored
-
Daniel Stenberg authored
-
- Sep 10, 2013
-
-
Daniel Stenberg authored
... instead of HTTP/2.0 to work fine with the nghttpx proxy/server.
-
- Sep 09, 2013
-
-
Daniel Stenberg authored
This function was modified in nghttp2 git commit a1c3f89c72e51
-
- Sep 07, 2013
-
-
Daniel Stenberg authored
Detected by test 1132
-
Daniel Stenberg authored
-
Daniel Stenberg authored
-
- Sep 06, 2013
-
-
Gisle Vanem authored
Using the first little merge of nghttp2 into libcurl, I stumbeled on the missing 'snprintf' in MSVCRT. Isn't this how we do it for other libcurl files? I.e. use 'curl_msnprintf' and not 'snprintf' directly:
-
- Sep 04, 2013
-
-
Daniel Stenberg authored
-
- Aug 21, 2013
-
-
Gisle Vanem authored
I build curl.exe (using MingW) with '-DCURLDEBUG' and by importing from libcurl.dll. Which means the new curl_easy_perform_ev() must be exported from libcurl.dll.
-
- Aug 20, 2013
-
-
Daniel Stenberg authored
This function is meant to work *exactly* as curl_easy_perform() but will use the event-based libcurl API internally instead of curl_multi_perform(). To avoid relying on an actual event-based library and to not use non-portable functions (like epoll or similar), there's a rather inefficient emulation layer implemented on top of Curl_poll() instead. There's currently some convenience logging done in curl_easy_perform_ev which helps when tracking down problems. They may be suitable to remove or change once things seem to be fine enough. curl has a new --test-event option when built with debug enabled that then uses curl_easy_perform_ev() instead of curl_easy_perform(). If built without debug, using --test-event will only output a warning message. NOTE: curl_easy_perform_ev() is not part if the public API on purpose. It is only present in debug builds of libcurl and MUST NOT be considered stable even then. Use it for libcurl-testing purposes only. runtests.pl now features an -e command line option that makes it use --test-event for all curl command line tests. The man page is updated.
-
- Aug 12, 2013
-
-
Daniel Stenberg authored
Moved Curl_easy_addmulti() from easy.c to multi.c, renamed it to easy_addmulti and made it static. Removed Curl_easy_initHandleData() and uses of it since it was emptied in commit cdda92ab67b47d74a.
-