Hi Ray,

Generally I agree that to lessen response times it is a good idea to have a
> valid established connection ready before subsequent requests are made to
> the same server


Sounds like we have agreement on the benefit of having this callback.

However I think the option you are proposing is too niche and there would
> not be a benefit for many users so I don't see the point in adding it. It
> does not necessarily work well because as discussed curl must process the
> GOAWAY and that is not guaranteed to happen immediately.


I may have misunderstood, but there does not seem to be anything preventing
cURL from handling the GOAWAY frame in this case. My proposal is to add a
callback that signals the application when a GOAWAY frame is received (cURL
still handles GOAWAY frame as-is). This may be a chicken-and-egg situation
since we don't currently have such a callback in cURL, so the benefits are
not yet clear. However, I believe that supporting this could be helpful for
some use cases, including my own and the one described in issue #4839 that
you previously referenced. If cURL implemented a GOAWAY callback,
developers could respond appropriately on receipt of a GOAWAY, enabling
graceful shutdown of HTTP/2 connections in their applications.

Thanks,

On Tue, Jan 9, 2024 at 11:40 AM Ray Satiro via curl-library <
curl-library@lists.haxx.se> wrote:

> On 1/7/2024 7:47 PM, Cao Duc Quan wrote:
>
> You are asking for a low level signal that almost nobody needs. It sounds
>> like you are trying to work around a server or application issue.
>
> Agree my use case is quite odd but that is the protocol we developed for
> years and I saw the benefit of having this low-level signal. Is there any
> down-side to support this?
>
>
> Generally I agree that to lessen response times it is a good idea to have
> a valid established connection ready before subsequent requests are made to
> the same server. However I think the option you are proposing is too niche
> and there would not be a benefit for many users so I don't see the point in
> adding it. It does not necessarily work well because as discussed curl must
> process the GOAWAY and that is not guaranteed to happen immediately.
>
> curl could use improvement in connection upkeep, see the TODO. [1] There
> is only curl_easy_upkeep [2] which will send HTTP/2 PING, but currently it
> is only for easy handles that are not part of a multi (eg easy interface
> was used curl_easy_perform and not curl_multi_perform) and do not have a
> shared connection cache. I think it may be possible to change it to covered
> shared connection caches, I will check.
>
>
> [1]: https://curl.se/docs/todo.html#Monitor_connections_in_the_conne
> [2]: https://curl.se/libcurl/c/curl_easy_upkeep.html
>
> --
> Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
> Etiquette:   https://curl.se/mail/etiquette.html
>


-- 
--------------------------------
Watson Cao
VN: (+84) 0976574864
CA: (+1) 2368658864
-- 
Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html

Reply via email to