<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/curl.git/lib/multiif.h, branch bagder/https-proxy-tests</title>
<subtitle>github.com: bagder/curl.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/'/>
<entry>
<title>conncache: various concept cleanups</title>
<updated>2020-04-30T12:27:54+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2020-04-26T22:33:21+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=c06902713998d68202c5a764de910ba8d0e8f54d'/>
<id>c06902713998d68202c5a764de910ba8d0e8f54d</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>ConnectionExists: respect the max_concurrent_streams limits</title>
<updated>2020-01-13T14:44:58+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2020-01-05T09:34:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=960753287368e4dee768dd480de90dc07c62a380'/>
<id>960753287368e4dee768dd480de90dc07c62a380</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>CURLMOPT_MAX_CONCURRENT_STREAMS: new setopt</title>
<updated>2019-10-02T05:47:48+00:00</updated>
<author>
<name>Kunal Ekawde</name>
<email>kunal_ekawde@affirmednetworks.com</email>
</author>
<published>2019-09-24T12:56:11+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=c124e6b3c04bfd254e24312bc66c2bc9db919442'/>
<id>c124e6b3c04bfd254e24312bc66c2bc9db919442</id>
<content type='text'>
Closes #4410
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Closes #4410
</pre>
</div>
</content>
</entry>
<entry>
<title>curl_multi_poll: a sister to curl_multi_wait() that waits more</title>
<updated>2019-08-06T07:33:29+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2019-07-29T11:41:00+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=02346abc32a3995299fa9c2f35b9f0a1d091b045'/>
<id>02346abc32a3995299fa9c2f35b9f0a1d091b045</id>
<content type='text'>
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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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
</pre>
</div>
</content>
</entry>
<entry>
<title>timediff: make it 64 bit (if possible) even with 32 bit time_t</title>
<updated>2019-08-01T05:43:24+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2019-07-31T13:30:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=b1616dad8f088d873d88f88b4d884335a4ca285f'/>
<id>b1616dad8f088d873d88f88b4d884335a4ca285f</id>
<content type='text'>
... to make it hold microseconds too.

Fixes #4165
Closes #4168
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
... to make it hold microseconds too.

Fixes #4165
Closes #4168
</pre>
</div>
</content>
</entry>
<entry>
<title>headers: Remove no longer exported functions</title>
<updated>2019-07-10T17:26:40+00:00</updated>
<author>
<name>Daniel Gustafsson</name>
<email>daniel@yesql.se</email>
</author>
<published>2019-07-10T17:26:40+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=11d7fe118dc980d104a8ff2e209dec0151c56939'/>
<id>11d7fe118dc980d104a8ff2e209dec0151c56939</id>
<content type='text'>
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 &lt;daniel@haxx.se&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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 &lt;daniel@haxx.se&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>unpause: trigger a timeout for event-based transfers</title>
<updated>2019-06-09T16:33:59+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2019-06-08T21:03:03+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=680f1413321c0bad593a69a86511df4d98a3b5df'/>
<id>680f1413321c0bad593a69a86511df4d98a3b5df</id>
<content type='text'>
... 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
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
... 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
</pre>
</div>
</content>
</entry>
<entry>
<title>multiif.h: remove unused protos</title>
<updated>2019-05-02T07:56:19+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2019-05-01T20:56:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=5c9487a30ea090917ac89b8eff478351ddae3271'/>
<id>5c9487a30ea090917ac89b8eff478351ddae3271</id>
<content type='text'>
... for functions related to pipelining. Those functions were removed in
2f44e94efb3df.

Closes #3828
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
... for functions related to pipelining. Those functions were removed in
2f44e94efb3df.

Closes #3828
</pre>
</div>
</content>
</entry>
<entry>
<title>multi: provide Curl_multiuse_state to update information</title>
<updated>2019-05-01T20:51:23+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2019-04-30T09:14:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=be6e281cf2792b06b6d413d120b4a9381e4b0653'/>
<id>be6e281cf2792b06b6d413d120b4a9381e4b0653</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>pipelining: removed</title>
<updated>2019-04-06T20:49:50+00:00</updated>
<author>
<name>Daniel Stenberg</name>
<email>daniel@haxx.se</email>
</author>
<published>2019-04-05T14:38:36+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/curl.git/commit/?id=2f44e94efb3df8e50bb2ddbc4ec6b569a6424517'/>
<id>2f44e94efb3df8e50bb2ddbc4ec6b569a6424517</id>
<content type='text'>
As previously planned and documented in DEPRECATE.md, all pipelining
code is removed.

Closes #3651
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As previously planned and documented in DEPRECATE.md, all pipelining
code is removed.

Closes #3651
</pre>
</div>
</content>
</entry>
</feed>
