History log of /curl/lib/multiif.h (Results 26 – 50 of 71)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 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 ...


Revision tags: curl-7_63_0
# 34fe0e16 24-Nov-2018 Daniel Stenberg

curl_easy_perform: fix timeout handling

curl_multi_wait() was erroneously used from within
curl_easy_perform(). It could lead to it believing there was no socket
to wait for and then

curl_easy_perform: fix timeout handling

curl_multi_wait() was erroneously used from within
curl_easy_perform(). It could lead to it believing there was no socket
to wait for and then instead sleep for a while instead of monitoring the
socket and then miss acting on that activity as swiftly as it should
(causing an up to 1000 ms delay).

Reported-by: Antoni Villalonga
Fixes #3305
Closes #3306
Closes #3308

show more ...


# 6765e6d9 05-Nov-2018 Romain Fliedel

ares: remove fd from multi fd set when ares is about to close the fd

When using c-ares for asyn dns, the dns socket fd was silently closed
by c-ares without curl being aware. curl would

ares: remove fd from multi fd set when ares is about to close the fd

When using c-ares for asyn dns, the dns socket fd was silently closed
by c-ares without curl being aware. curl would then 'realize' the fd
has been removed at next call of Curl_resolver_getsock, and only then
notify the CURLMOPT_SOCKETFUNCTION to remove fd from its poll set with
CURL_POLL_REMOVE. At this point the fd is already closed.

By using ares socket state callback (ARES_OPT_SOCK_STATE_CB), this
patch allows curl to be notified that the fd is not longer needed
for neither for write nor read. At this point by calling
Curl_multi_closed we are able to notify multi with CURL_POLL_REMOVE
before the fd is actually closed by ares.

In asyn-ares.c Curl_resolver_duphandle we can't use ares_dup anymore
since it does not allow passing a different sock_state_cb_data

Closes #3238

show more ...


Revision tags: curl-7_62_0, curl-7_61_1, curl-7_61_0, curl-7_60_0
# 7f9ce085 13-Mar-2018 Daniel Stenberg

multi: improved pending transfers handling => improved performance

When a transfer is requested to get done and it is put in the pending
queue when limited by number of connections, tota

multi: improved pending transfers handling => improved performance

When a transfer is requested to get done and it is put in the pending
queue when limited by number of connections, total or per-host, libcurl
would previously very aggressively retry *ALL* pending transfers to get
them transferring. That was very time consuming.

By reducing the aggressiveness in how pending are being retried, we
waste MUCH less time on putting transfers back into pending again.

Some test cases got a factor 30(!) speed improvement with this change.

Reported-by: Cyril B
Fixes #2369
Closes #2383

show more ...


# 2404aa08 16-Mar-2018 Daniel Stenberg

pause: when changing pause state, update socket state

Especially unpausing a transfer might have to move the socket back to the
"currently used sockets" hash to get monitored. Otherwise

pause: when changing pause state, update socket state

Especially unpausing a transfer might have to move the socket back to the
"currently used sockets" hash to get monitored. Otherwise it would never get
any more data and get stuck. Easily triggered with pausing using the
multi_socket API.

Reported-by: Philip Prindeville
Bug: https://curl.haxx.se/mail/lib-2018-03/0048.html
Fixes #2393
Closes #2391

show more ...


Revision tags: curl-7_59_0
# b46cfbc0 10-Feb-2018 Björn Stenberg

TODO fixed: Detect when called from within callbacks

Closes #2302


Revision tags: curl-7_58_0, curl-7_57_0, curl-7_56_1, curl-7_56_0, curl-7_55_1, curl-7_55_0, curl-7_54_1
# 7fffe97b 08-Jun-2017 Daniel Stenberg

expire: remove Curl_expire_latest()

With the introduction of expire IDs and the fact that existing timers
can be removed now and thus never expire, the concept with adding a
"latest"

expire: remove Curl_expire_latest()

With the introduction of expire IDs and the fact that existing timers
can be removed now and thus never expire, the concept with adding a
"latest" timer is not working anymore as it risks to not expire at all.

So, to be certain the timers actually are in line and will expire, the
plain Curl_expire() needs to be used. The _latest() function was added
as a sort of shortcut in the past that's quite simply not necessary
anymore.

Follow-up to 31b39c40cf90

Reported-by: Paul Harris

Closes #1555

show more ...


# 31b39c40 09-May-2017 Daniel Stenberg

multi: use a fixed array of timers instead of malloc

... since the total amount is low this is faster, easier and reduces
memory overhead.

Also, Curl_expire_done() can now mark

multi: use a fixed array of timers instead of malloc

... since the total amount is low this is faster, easier and reduces
memory overhead.

Also, Curl_expire_done() can now mark an expire timeout as done so that
it never times out.

Closes #1472

show more ...


# e9fd794a 09-May-2017 Daniel Stenberg

multi: assign IDs to all timers and make each timer singleton

A) reduces the timeout lists drastically

B) prevents a lot of superfluous loops for timers that expires "in vain"

multi: assign IDs to all timers and make each timer singleton

A) reduces the timeout lists drastically

B) prevents a lot of superfluous loops for timers that expires "in vain"
when it has actually already been extended to fire later on

show more ...


Revision tags: curl-7_54_0, curl-7_53_1, curl-7_53_0, curl-7_52_1, curl-7_52_0
# 21aa32d3 18-Nov-2016 Marcel Raad

lib: fix compiler warnings after de4de4e3c7c

Visual C++ now complains about implicitly casting time_t (64-bit) to
long (32-bit). Fix this by changing some variables from long to time_t,

lib: fix compiler warnings after de4de4e3c7c

Visual C++ now complains about implicitly casting time_t (64-bit) to
long (32-bit). Fix this by changing some variables from long to time_t,
or explicitly casting to long where the public interface would be
affected.

Closes #1131

show more ...


Revision tags: curl-7_51_0, curl-7_50_3, curl-7_50_2, curl-7_50_1
# bde2f09d 02-Aug-2016 Daniel Stenberg

multi: make Curl_expire() work with 0 ms timeouts

Previously, passing a timeout of zero to Curl_expire() was a magic code
for clearing all timeouts for the handle. That is now instead ma

multi: make Curl_expire() work with 0 ms timeouts

Previously, passing a timeout of zero to Curl_expire() was a magic code
for clearing all timeouts for the handle. That is now instead made with
the new Curl_expire_clear() function and thus a 0 timeout is fine to set
and will trigger a timeout ASAP.

This will help removing short delays, in particular notable when doing
HTTP/2.

show more ...


Revision tags: curl-7_50_0
# 434f8d03 21-Jun-2016 Daniel Stenberg

internals: rename the SessionHandle struct to Curl_easy


Revision tags: curl-7_49_1, curl-7_49_0, curl-7_48_0, curl-7_47_1
# 4af40b36 02-Feb-2016 Daniel Stenberg

URLs: change all http:// URLs to https://


Revision tags: curl-7_47_0, curl-7_46_0, curl-7_45_0, curl-7_44_0, curl-7_43_0
# feea9263 01-Jun-2015 Daniel Stenberg

http2: setup the new pushed stream properly


# 72105ebf 11-May-2015 Daniel Stenberg

http2: set default concurrency, fix ConnectionExists for multiplex


# 38bd6bf0 18-May-2015 Daniel Stenberg

bundles: store no/default/pipeline/multiplex

to allow code to act differently on the situation.

Also added some more info message for the connection re-use function to
make it c

bundles: store no/default/pipeline/multiplex

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.

show more ...


# 02ec1ced 08-May-2015 Daniel Stenberg

CURLMOPT_PIPELINE: bit 1 is for multiplexing


Revision tags: curl-7_42_1, curl-7_42_0, curl-7_41_0, curl-7_40_0
# 29336986 14-Nov-2014 Jon Spencer

multi: inform about closed sockets before they are closed

When the connection code decides to close a socket it informs the multi
system via the Curl_multi_closed function. The multi sys

multi: inform about closed sockets before they are closed

When the connection code decides to close a socket it informs the multi
system via the Curl_multi_closed function. The multi system may, in
turn, invoke the CURLMOPT_SOCKETFUNCTION function with
CURL_POLL_REMOVE. This happens after the socket has already been
closed. Reorder the code so that CURL_POLL_REMOVE is called before the
socket is closed.

show more ...


# f64dbb08 10-Nov-2014 Daniel Stenberg

multi: removed Curl_multi_set_easy_connection

It isn't used anywhere!

Reported-by: Carlo Wood


123