#
bf567dd9 |
| 09-Jan-2024 |
Jay Satiro |
lib: use multi instead of multi_easy for the active multi - Use data->multi and not data->multi_easy to refer to the active multi. The easy handle's active multi is always data->mul
lib: use multi instead of multi_easy for the active multi - Use data->multi and not data->multi_easy to refer to the active multi. The easy handle's active multi is always data->multi. This is a follow up to 757dfdf which changed curl so that an easy handle used with the easy interface and then multi interface cannot have two different multi handles associated with it at the same time (data->multi_easy from the easy interface and data->multi from the multi interface). Closes https://github.com/curl/curl/pull/12665
show more ...
|
#
e3905de8 |
| 28-Feb-2024 |
Stefan Eissing |
lib: further send/upload handling polish - Move all the "upload_done" handling to request.c - add possibility to abort sending of a request - add `Curl_req_done_sending()` f
lib: further send/upload handling polish - Move all the "upload_done" handling to request.c - add possibility to abort sending of a request - add `Curl_req_done_sending()` for checks - transfer.c: readwrite_upload() now clean - removing data->state.ulbuf and data->req.upload_fromhere - as well as data->req.upload_present - set data->req.upload_done on having read all from the client and completely flushed the send buffer - tftp, remove setting of data->req.upload_fromhere - serves no purpose as `upload_present` is not set and the data itself is directly `sendto()` anyway - smtp, make upload EOB conversion a client reader - xfer_ulbuf addition - add xfer_ulbuf for borrowing, similar to xfer_buf - use in file upload - use in c-hyper body sending - h1-proxy, remove init of data->state.uilbuf that is never used - smb, add own send_buf instead of using data->state.ulbuf Closes #13010
show more ...
|
#
476adfea |
| 26-Jan-2024 |
Stefan Eissing |
multi: add xfer_buf to multi handle - can be borrowed by transfer during recv-write operation - needs to be released before borrowing again - adjustis size to `data->set.buffer_size`
multi: add xfer_buf to multi handle - can be borrowed by transfer during recv-write operation - needs to be released before borrowing again - adjustis size to `data->set.buffer_size` - used in transfer.c readwrite_data() Closes #12805
show more ...
|
#
d15ffe18 |
| 26-Sep-2023 |
Stefan Eissing |
multiif.h: remove Curl_multi_dump declaration Follow-up to d850eea2 which removed the Curl_multi_dump definition. Closes https://github.com/curl/curl/pull/11946
|
#
519b1cf9 |
| 04-Sep-2023 |
Stefan Eissing |
multi: more efficient pollfd count for poll - do not use separate pollfds for sockets that have POLLIN+POLLOUT Closes #11792
|
#
d4618a3f |
| 31-Jul-2023 |
Daniel Stenberg |
http2: avoid too early connection re-use/multiplexing HTTP/1 connections that are upgraded to HTTP/2 should not be picked up for reuse and multiplexing by other handles until the 101 swi
http2: avoid too early connection re-use/multiplexing HTTP/1 connections that are upgraded to HTTP/2 should not be picked up for reuse and multiplexing by other handles until the 101 switching process is completed. Lots-of-debgging-by: Stefan Eissing Reported-by: Richard W.M. Jones Bug: https://curl.se/mail/lib-2023-07/0045.html Closes #11557
show more ...
|
#
2bc1d775 |
| 02-Jan-2023 |
Daniel Stenberg |
copyright: update all copyright lines and remove year ranges - they are mostly pointless in all major jurisdictions - many big corporations and projects already don't use them - save
copyright: update all copyright lines and remove year ranges - they are mostly pointless in all major jurisdictions - many big corporations and projects already don't use them - saves us from pointless churn - git keeps history for us - the year range is kept in COPYING checksrc is updated to allow non-year using copyright statements Closes #10205
show more ...
|
#
7632c0d2 |
| 27-Aug-2022 |
Daniel Stenberg |
multi: use larger dns hash table for multi interface Have curl_multi_init() use a much larger DNS hash table than used for the easy interface to scale and perform better when used with _
multi: use larger dns hash table for multi interface Have curl_multi_init() use a much larger DNS hash table than used for the easy interface to scale and perform better when used with _many_ host names. curl_share_init() sets an in-between size. Inspired-by: Ivan Tsybulin See #9340 Closes #9376
show more ...
|
#
ad9bc597 |
| 17-May-2022 |
max.mehl |
copyright: make repository REUSE compliant Add licensing and copyright information for all files in this repository. This either happens in the file itself as a comment header or in the
copyright: make repository REUSE compliant Add licensing and copyright information for all files in this repository. This either happens in the file itself as a comment header or in the file `.reuse/dep5`. This commit also adds a Github workflow to check pull requests and adapts copyright.pl to the changes. Closes #8869
show more ...
|
#
e07a9b66 |
| 27-Apr-2022 |
Adam Rosenfield |
conn: fix typo 'connnection' -> 'connection' in two function names Closes #8759
|
#
2b3dd01b |
| 02-Dec-2021 |
Daniel Stenberg |
multi: handle errors returned from socket/timer callbacks The callbacks were partially documented to support this. Now the behavior is documented and returning error from either of these
multi: handle errors returned from socket/timer callbacks The callbacks were partially documented to support this. Now the behavior is documented and returning error from either of these callbacks will effectively kill all currently ongoing transfers. Added test 530 to verify Reported-by: Marcelo Juchem Fixes #8083 Closes #8089
show more ...
|
Revision tags: curl-7_76_1, curl-7_76_0, curl-7_75_0 |
|
#
215db086 |
| 08-Jan-2021 |
Daniel Stenberg |
lib: pass in 'struct Curl_easy *' to most functions ... in most cases instead of 'struct connectdata *' but in some cases in addition to. - We mostly operate on transfers and no
lib: pass in 'struct Curl_easy *' to most functions ... in most cases instead of 'struct connectdata *' but in some cases in addition to. - We mostly operate on transfers and not connections. - We need the transfer handle to log, store data and more. Everything in libcurl is driven by a transfer (the CURL * in the public API). - This work clarifies and separates the transfers from the connections better. - We should avoid "conn->data". Since individual connections can be used by many transfers when multiplexing, making sure that conn->data points to the current and correct transfer at all times is difficult and has been notoriously error-prone over the years. The goal is to ultimately remove the conn->data pointer for this reason. Closes #6425
show more ...
|
Revision tags: curl-7_74_0 |
|
#
4d2f8006 |
| 04-Nov-2020 |
Daniel Stenberg |
curl.se: new home Closes #6172
|
Revision tags: curl-7_73_0, tiny-curl-7_72_0, curl-7_72_0, curl-7_71_1 |
|
#
ff1c37cb |
| 23-Jun-2020 |
Daniel Stenberg |
url: make sure pushed streams get an allocated download buffer Follow-up to c4e6968127e876b0 When a new transfer is created, as a resuly of an acknowledged push, that transfer n
url: make sure pushed streams get an allocated download buffer Follow-up to c4e6968127e876b0 When a new transfer is created, as a resuly of an acknowledged push, that transfer needs a download buffer allocated. Closes #5590
show more ...
|
Revision tags: curl-7_71_0, curl-7_70_0 |
|
#
c0690271 |
| 26-Apr-2020 |
Daniel Stenberg |
conncache: various concept cleanups More connection cache accesses are protected by locks. CONNCACHE_* is a beter prefix for the connection cache lock macros. Curl_attach_c
conncache: various concept cleanups More connection cache accesses are protected by locks. CONNCACHE_* is a beter prefix for the connection cache lock macros. Curl_attach_connnection: now called as soon as there's a connection struct available and before the connection is added to the connection cache. Curl_disconnect: now assumes that the connection is already removed from the connection cache. Ref: #4915 Closes #5009
show more ...
|
Revision tags: curl-7_69_1, curl-7_69_0 |
|
#
96075328 |
| 05-Jan-2020 |
Daniel Stenberg |
ConnectionExists: respect the max_concurrent_streams limits A regression made the code use 'multiplexed' as a boolean instead of the counter it is intended to be. This made curl try to "
ConnectionExists: respect the max_concurrent_streams limits A regression made the code use 'multiplexed' as a boolean instead of the counter it is intended to be. This made curl try to "over-populate" connections with new streams. This regression came with 41fcdf71a1, shipped in curl 7.65.0. Also, respect the CURLMOPT_MAX_CONCURRENT_STREAMS value in the same check. Reported-by: Kunal Ekawde Fixes #4779 Closes #4784
show more ...
|
Revision tags: curl-7_68_0, curl-7_67_0 |
|
#
c124e6b3 |
| 24-Sep-2019 |
Kunal Ekawde |
CURLMOPT_MAX_CONCURRENT_STREAMS: new setopt Closes #4410
|
Revision tags: curl-7_66_0 |
|
#
02346abc |
| 29-Jul-2019 |
Daniel Stenberg |
curl_multi_poll: a sister to curl_multi_wait() that waits more Repeatedly we see problems where using curl_multi_wait() is difficult or just awkward because if it has no file descriptor
curl_multi_poll: a sister to curl_multi_wait() that waits more Repeatedly we see problems where using curl_multi_wait() is difficult or just awkward because if it has no file descriptor to wait for internally, it returns immediately and leaves it to the caller to wait for a small amount of time in order to avoid occasional busy-looping. This is often missed or misunderstood, leading to underperforming applications. This change introduces curl_multi_poll() as a replacement drop-in function that accepts the exact same set of arguments. This function works identically to curl_multi_wait() - EXCEPT - for the case when there's nothing to wait for internally, as then this function will by itself wait for a "suitable" short time before it returns. This effectiely avoids all risks of busy-looping and should also make it less likely that apps "over-wait". This also changes the curl tool to use this funtion internally when doing parallel transfers and changes curl_easy_perform() to use it internally. Closes #4163
show more ...
|
#
b1616dad |
| 31-Jul-2019 |
Daniel Stenberg |
timediff: make it 64 bit (if possible) even with 32 bit time_t ... to make it hold microseconds too. Fixes #4165 Closes #4168
|
Revision tags: curl-7_65_3, curl-7_65_2 |
|
#
11d7fe11 |
| 10-Jul-2019 |
Daniel Gustafsson |
headers: Remove no longer exported functions There were a leftover few prototypes of Curl_ functions that we used to export but no longer do, this removes those prototypes and cleans up
headers: Remove no longer exported functions There were a leftover few prototypes of Curl_ functions that we used to export but no longer do, this removes those prototypes and cleans up any comments still referring to them. Curl_write32_le(), Curl_strcpy_url(), Curl_strlen_url(), Curl_up_free() Curl_concat_url(), Curl_detach_connnection(), Curl_http_setup_conn() were made static in 05b100aee247bb9bec8e9a1b0166496aa4248d1c. Curl_http_perhapsrewind() made static in 574aecee208f79d391f10d57520b3. For the remainder, I didn't trawl the Git logs hard enough to capture their exact time of deletion, but they were all gone: Curl_splayprint(), Curl_http2_send_request(), Curl_global_host_cache_dtor(), Curl_scan_cache_used(), Curl_hostcache_destroy(), Curl_second_connect(), Curl_http_auth_stage() and Curl_close_connections(). Closes #4096 Reviewed-by: Daniel Stenberg <daniel@haxx.se>
show more ...
|
#
680f1413 |
| 08-Jun-2019 |
Daniel Stenberg |
unpause: trigger a timeout for event-based transfers ... so that timeouts or other state machine actions get going again after a changing pause state. For example, if the last delivery w
unpause: trigger a timeout for event-based transfers ... so that timeouts or other state machine actions get going again after a changing pause state. For example, if the last delivery was paused there's no pending socket activity. Reported-by: sstruchtrup on github Fixes #3994 Closes #4001
show more ...
|
Revision tags: curl-7_65_1, curl-7_65_0 |
|
#
5c9487a3 |
| 01-May-2019 |
Daniel Stenberg |
multiif.h: remove unused protos ... for functions related to pipelining. Those functions were removed in 2f44e94efb3df. Closes #3828
|
#
be6e281c |
| 30-Apr-2019 |
Daniel Stenberg |
multi: provide Curl_multiuse_state to update information As soon as a TLS backend gets ALPN conformation about the specific HTTP version it can now set the multiplex situation for the "b
multi: provide Curl_multiuse_state to update information As soon as a TLS backend gets ALPN conformation about the specific HTTP version it can now set the multiplex situation for the "bundle" and trigger moving potentially queued up transfers to the CONNECT state.
show more ...
|
#
2f44e94e |
| 05-Apr-2019 |
Daniel Stenberg |
pipelining: removed As previously planned and documented in DEPRECATE.md, all pipelining code is removed. Closes #3651
|
Revision tags: curl-7_64_1, curl-7_64_0 |
|
#
ba243235 |
| 02-Jan-2019 |
Daniel Stenberg |
urldata: rename easy_conn to just conn We use "conn" everywhere to be a pointer to the connection. Introduces two functions that "attaches" and "detaches" the connection to and
urldata: rename easy_conn to just conn We use "conn" everywhere to be a pointer to the connection. Introduces two functions that "attaches" and "detaches" the connection to and from the transfer. Going forward, we should favour using "data->conn" (since a transfer always only has a single connection or none at all) to "conn->data" (since a connection can have none, one or many transfers associated with it and updating conn->data to be correct is error prone and a frequent reason for internal issues). Closes #3442
show more ...
|