Age | Commit message (Collapse) | Author | |
---|---|---|---|
2015-05-18 | pipeline: switch some code over to functions | Daniel Stenberg | |
... to "compartmentalize" a bit and make it easier to change behavior when multiplexing is used instead of good old pipelining. | |||
2015-05-18 | symbols-in-versions: add CURLOPT_PIPEWAIT | Daniel Stenberg | |
2015-05-18 | CURLOPT_PIPEWAIT: added | Daniel Stenberg | |
By setting this option to 1 libcurl will wait for a connection to reveal if it is possible to pipeline/multiplex on before it continues. | |||
2015-05-18 | Curl_http_readwrite_headers: minor code simplification | Daniel Stenberg | |
2015-05-18 | IsPipeliningPossible: fixed for http2 | Daniel Stenberg | |
2015-05-18 | http2: bump the h2 buffer size to 32K for speed | Daniel Stenberg | |
2015-05-18 | http2: remove the stream from the hash in stream_close callback | Daniel Stenberg | |
... and suddenly things work much better! | |||
2015-05-18 | http2: if there is paused data, do not clear the drain field | Daniel Stenberg | |
2015-05-18 | http2: rename s/data/pausedata | Daniel Stenberg | |
2015-05-18 | http2: "stream %x" in all outputs to make it easier to search for | Daniel Stenberg | |
2015-05-18 | http2: Curl_expire() all handles with incoming traffic | Daniel Stenberg | |
... so that they'll get handled next in the multi loop. | |||
2015-05-18 | http2: don't signal settings change for same values | Daniel Stenberg | |
2015-05-18 | http2: set default concurrency, fix ConnectionExists for multiplex | Daniel Stenberg | |
2015-05-18 | bundles: store no/default/pipeline/multiplex | Daniel Stenberg | |
to allow code to act differently on the situation. Also added some more info message for the connection re-use function to make it clearer when connections are not re-used. | |||
2015-05-18 | http2: lazy init header_recvbuf | Daniel Stenberg | |
It makes us use less memory when not doing HTTP/2 and subsequently also makes us not have to cleanup HTTP/2 related data when not using HTTP/2! | |||
2015-05-18 | http2: separate multiplex/pipelining + cleanup memory leaks | Daniel Stenberg | |
2015-05-18 | CURLMOPT_PIPELINE: bit 1 is for multiplexing | Daniel Stenberg | |
2015-05-18 | http2: Fix bug that data to be drained are overwritten by pending "paused" data | Tatsuhiro Tsujikawa | |
2015-05-18 | http2: Don't call nghttp2_session_mem_recv while it is paused by a stream | Tatsuhiro Tsujikawa | |
2015-05-18 | http2: Read data left in connection buffer after pause | Tatsuhiro 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-18 | http2: Fix streams get stuck | Tatsuhiro 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-18 | http2: store incoming h2 SETTINGS | Daniel Stenberg | |
2015-05-18 | pipeline: move function to pipeline.c and make static | Daniel Stenberg | |
... as it was only used from there. | |||
2015-05-18 | IsPipeliningPossible: http2 can always "pipeline" (multiplex) | Daniel Stenberg | |
2015-05-18 | http2: remove debug logging from on_frame_recv | Daniel Stenberg | |
2015-05-18 | http2: remove the closed check in http2_recv | Daniel 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-18 | http2: bump the h2 buffer to 8K | Daniel Stenberg | |
2015-05-18 | http2: Curl_read should not use the single buffer | Daniel 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-18 | http2: more debug outputs | Daniel Stenberg | |
2015-05-18 | http2: leave WAITPERFORM when conn is multiplexed | Daniel Stenberg | |
No need to wait for our "spot" like for pipelining | |||
2015-05-18 | http2: force "drainage" of streams | Daniel Stenberg | |
... which is necessary since the socket won't be readable but there is data waiting in the buffer. | |||
2015-05-18 | http2: move the mem+len pair to the stream struct | Daniel Stenberg | |
2015-05-18 | http2: more stream-oriented data, stream ID 0 is for connections | Daniel Stenberg | |
2015-05-18 | http2: move lots of state data to the 'stream' struct | Daniel 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-18 | HTTP: partial start at fixing up hash-lookups on http2 frame receival | Daniel Stenberg | |
2015-05-18 | http: a stream hash for h2 multiplexing | Daniel Stenberg | |
2015-05-18 | http: a stream hash for h2 multiplexing | Daniel Stenberg | |
2015-05-18 | http2: debug log when receiving unexpected stream_id | Daniel Stenberg | |
2015-05-18 | http2: move stream_id to the HTTP struct (per-stream) | Daniel Stenberg | |
2015-05-18 | Curl_http2_setup: only do it once and enable multiplex on the server | Daniel Stenberg | |
Once we know we are HTTP/2 enabled we know the server can multiplex. | |||
2015-05-18 | http: switch on "pipelining" (multiplexing) for HTTP/2 servers | Daniel Stenberg | |
... and do not blacklist any. | |||
2015-05-15 | README.pipelining: removed | Daniel Stenberg | |
All the details mentioned here are better documented in man pages | |||
2015-05-14 | build: removed bundles.c from make files | Dan Fandrich | |
This file was removed in commit fd137786 | |||
2015-05-14 | Curl_conncache_add_conn: fix memory leak on OOM | Daniel Stenberg | |
2015-05-12 | CURLMOPT_MAX_HOST_CONNECTIONS: host = host name + port number | Daniel Stenberg | |
2015-05-12 | conncache: keep bundles on host+port bases, not only host names | Daniel 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-12 | bundles: merged into conncache.c | Daniel 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-12 | hostcache: made all host caches use structs, not pointers | Daniel 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-12 | multi: converted socket hash into non-allocated struct | Daniel Stenberg | |
avoids extra dynamic allocation | |||
2015-05-12 | connection 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. |