aboutsummaryrefslogtreecommitdiff
path: root/lib
AgeCommit message (Collapse)Author
2015-05-18http2: Fix bug that data to be drained are overwritten by pending "paused" dataTatsuhiro Tsujikawa
2015-05-18http2: Don't call nghttp2_session_mem_recv while it is paused by a streamTatsuhiro Tsujikawa
2015-05-18http2: Read data left in connection buffer after pauseTatsuhiro Tsujikawa
Previously when we do pause because of out of buffer, we just throw away unread data in connection buffer. This just broke protocol framing, and I saw occasional FRAME_SIZE_ERROR. This commit fix this issue by remembering how much data read, and in the next iteration, we process remaining data.
2015-05-18http2: Fix streams get stuckTatsuhiro Tsujikawa
This commit fixes the bug that streams get stuck if stream gets some DATA, and stream->closed becomes true at the same time. Previously, in this condition, after we processed DATA, we are going to try to read data from underlying transport, but there is no data, and gets EAGAIN. There was no code path to evaludate stream->closed.
2015-05-18http2: store incoming h2 SETTINGSDaniel Stenberg
2015-05-18pipeline: move function to pipeline.c and make staticDaniel Stenberg
... as it was only used from there.
2015-05-18IsPipeliningPossible: http2 can always "pipeline" (multiplex)Daniel Stenberg
2015-05-18http2: remove debug logging from on_frame_recvDaniel Stenberg
2015-05-18http2: remove the closed check in http2_recvDaniel Stenberg
With the "drained" functionality we can get here slightly asynchronously so the stream have have been closed but there is pending data left to read.
2015-05-18http2: bump the h2 buffer to 8KDaniel Stenberg
2015-05-18http2: Curl_read should not use the single bufferDaniel Stenberg
... as it does for pipelining when we're multiplexing, as we need the different buffers to store incoming data correctly for all streams.
2015-05-18http2: more debug outputsDaniel Stenberg
2015-05-18http2: leave WAITPERFORM when conn is multiplexedDaniel Stenberg
No need to wait for our "spot" like for pipelining
2015-05-18http2: force "drainage" of streamsDaniel Stenberg
... which is necessary since the socket won't be readable but there is data waiting in the buffer.
2015-05-18http2: move the mem+len pair to the stream structDaniel Stenberg
2015-05-18http2: more stream-oriented data, stream ID 0 is for connectionsDaniel Stenberg
2015-05-18http2: move lots of state data to the 'stream' structDaniel Stenberg
... from the connection struct. The stream one being the 'struct HTTP' which is kept in the SessionHandle struct (easy handle). lookup streams for incoming frames in the stream hash, hashing is based on the stream id and we get the SessionHandle for the incoming stream that way.
2015-05-18HTTP: partial start at fixing up hash-lookups on http2 frame receivalDaniel Stenberg
2015-05-18http: a stream hash for h2 multiplexingDaniel Stenberg
2015-05-18http: a stream hash for h2 multiplexingDaniel Stenberg
2015-05-18http2: debug log when receiving unexpected stream_idDaniel Stenberg
2015-05-18http2: move stream_id to the HTTP struct (per-stream)Daniel Stenberg
2015-05-18Curl_http2_setup: only do it once and enable multiplex on the serverDaniel Stenberg
Once we know we are HTTP/2 enabled we know the server can multiplex.
2015-05-18http: switch on "pipelining" (multiplexing) for HTTP/2 serversDaniel Stenberg
... and do not blacklist any.
2015-05-15README.pipelining: removedDaniel Stenberg
All the details mentioned here are better documented in man pages
2015-05-14build: removed bundles.c from make filesDan Fandrich
This file was removed in commit fd137786
2015-05-14Curl_conncache_add_conn: fix memory leak on OOMDaniel Stenberg
2015-05-12conncache: keep bundles on host+port bases, not only host namesDaniel Stenberg
Previously we counted all connections to a specific host name and that would be used for the CURLMOPT_MAX_HOST_CONNECTIONS check for example, while servers on different port numbers are normally considered different "origins" on the web and should thus be considered different hosts.
2015-05-12bundles: merged into conncache.cDaniel Stenberg
All the existing Curl_bundle* functions were only ever used from within the conncache.c file, so I moved them over and made them static (and removed the Curl_ prefix).
2015-05-12hostcache: made all host caches use structs, not pointersDaniel Stenberg
This avoids unnecessary dynamic allocs and as this also removed the last users of *hash_alloc() and *hash_destroy(), those two functions are now removed.
2015-05-12multi: converted socket hash into non-allocated structDaniel Stenberg
avoids extra dynamic allocation
2015-05-12connection cache: avoid Curl_hash_alloc()Daniel Stenberg
... by using plain structs instead of pointers for the connection cache, we can avoid several dynamic allocations that weren't necessary.
2015-05-08proxy: add newline to info messageDaniel Stenberg
2015-05-08FTP: fix dangling conn->ip_addr dereference on verbose EPSV.Patrick Monnerat
2015-05-08FTP: Make EPSV use the control IP address rather than the original host.Patrick Monnerat
This ensures an alternate address is not used. Does not apply to proxy tunnel.
2015-05-06netrc: Read in text mode when cygwinOrgad Shaneh
Use text mode when cygwin to eliminate trailing carriage returns. Bug: https://github.com/bagder/curl/pull/258
2015-05-04gtls: properly retrieve certificate statusAlessandro Ghedini
Also print the revocation reason if appropriate.
2015-05-04OpenSSL: conditional check for SSL3_RT_HEADERDaniel Stenberg
The symbol is fairly new. Reported-by: Kamil Dudka
2015-05-04openssl: skip trace outputs for ssl_ver == 0Daniel Stenberg
The OpenSSL trace callback is wonderfully undocumented but given a journey in the source code, it seems the cases were ssl_ver is zero doesn't follow the same pattern and thus turned out confusing and misleading. For now, we skip doing any CURLINFO_TEXT logging on those but keep sending them as CURLINFO_SSL_DATA_OUT/IN. Also, I added direction to the text info and I edited some functions slightly. Bug: https://github.com/bagder/curl/issues/219 Reported-by: Jay Satiro, Ashish Shukla
2015-05-02schannel.c: Small changesMarc Hoersken
2015-05-02schannel.c: Improve code path and readabilityMarc Hoersken
2015-05-02schannel.c: Improve error and return code handling upon aa99a63f03Marc Hoersken
2015-05-02schannel: fix regression in schannel_recvChris Araman
https://github.com/bagder/curl/issues/244 Commit 145c263 changed the behavior when Curl_read_plain returns CURLE_AGAIN. We now handle CURLE_AGAIN and SEC_I_CONTEXT_EXPIRED correctly.
2015-05-01Bug born in changes made several days ago 9a91e80.Marc Hoersken
Commit: https://github.com/bagder/curl/commit/926cb9f Reported-by: Ray Satiro
2015-04-30http_negotiate_sspi: added missing data variableDan Fandrich
2015-04-30build: update depedency versions, urls, example makefilesViktor Szakats
- update default versions of dependencies (except for rare/old platforms) - update urls - sync examples makefiles with main ones - remove line ending space
2015-04-30curl_multi_add_handle: next is already NULLAnders Bakken
2015-04-30schannel: Fix out of bounds arrayJay Satiro
Bug born in changes made several days ago 9a91e80. Bug: http://curl.haxx.se/mail/lib-2015-04/0199.html Reported-by: Brian Chrisman
2015-04-29lib/makefile.m32: add arch -m32/-m64 to LDFLAGSViktor Szakats
This fixes using a multi-target mingw distro to build curl .dll for the non-default target. (mirroring the same patch present in src/makefile.m32)
2015-04-28CURLOPT_HEADEROPT: default to separateDaniel Stenberg
Make the HTTP headers separated by default for improved security and reduced risk for information leakage. Bug: http://curl.haxx.se/docs/adv_20150429.html Reported-by: Yehezkel Horowitz, Oren Souroujon