> Is that what you're referring to in all cases?

Yes, all my "regressions" and "problems" referrals are for 30+ ms connection 
delays caused by Curl_ipv6works() used in the dual-stack IPv6-enabled libcurl.
And these problems and regressions occur when code is migrated from IPv4 
libcurl to dual-stack IPv6-enabled one.
I never mentioned any other problems or regressions in this e-mail thread.

>  It might in your situation, but it wouldn't in everybody else's.

It will help in my situation, but it might also help in somebody's else case as 
well.

There are few points here:

1. These regressions happen for some pretty recent linux kernel versions and 
configurations used in embedded software, and somebody else might step on the 
same issues as I did when migrating to dual-stack libcurl and try to find a 
solution for the same dual-stack issues/regressions.

2. The Curl_ipv6works() is a good default approach, but it is very difficult to 
find a "one size that fits all" solution. 

    That's why I don't propose that libcurl should provide a solution for 
everybody which covers all possible scenarios and corner cases.
    Instead, I propose that libcurl would provide a way for everyone to solve 
these issues if the system calls inside Curl_ipv6works() are causing problems 
critical for them.

3. I don't see any other good ways to work around these issues for IPv6-related 
resolve modes (CURL_IPRESOLVE_WHATEVER and CURL_IPRESOLVE_IPV6.) except letting 
curl application to provides a custom way of detecting if "IPv6 works".
   
I think that my proposal will provide useful customization for dual-stack curl 
applications, and I am not sure that I fully understand your objections like " 
It might in your situation, but it wouldn't in everybody else's.".
There are always cases where something will not be good enough, and additional 
customization helps to handle such cases.

So, again, I am not proposing some concrete change to the Curl_ipv6works() 
which will just help my individual problem.
Instead, I am proposing a dual-stack related customization which will help to 
solve issues with the default "IPv6 works" detection that may be very different 
from my specific problems, but still critical for someone's else application.

Thanks,
Dmitry Karpov



-----Original Message-----
From: curl-library <curl-library-boun...@lists.haxx.se> On Behalf Of Dan 
Fandrich via curl-library
Sent: Wednesday, September 21, 2022 1:53 PM
To: curl-library@lists.haxx.se
Cc: Dan Fandrich <d...@coneharvesters.com>
Subject: Re: [EXTERNAL] Re: Feature request: provide ability to set a global 
callback function telling libcurl if IPv6 works on the system

On Wed, Sep 21, 2022 at 08:19:46PM +0000, Dmitry Karpov via curl-library wrote:
> Daniel's PR fixed the issue only for CURL_IPRESOLVE_V4, but not for 
> CURL_IPRESOLVE_WHATEVER and CURL_IPRESOLVE_IPV6.
> Even with his PR, both CURL_IPRESOLVE_WHATEVER and CURL_IPRESOLVE_IPV6 will 
> use Curl_ipv6works() and thus face regressions.

I find many of your messages too vague, and I can't tell any more what exactly 
are the specific problems that you're still having.  They're using terms like 
"regressions" and "problem" but I can't tell any more if you're referring to 
the 30 msec delay during Curl_ipv6works() or if there are other issues you're 
seeing.  Is that what you're referring to in all cases?

> Before Daniel's PR, the problem was for all three resolve modes:
> CURL_IPRESOLVE_WHATEVER, CURL_IPRESOLVE_IPV6 and CURL_IPRESOLVE_IPV6
> 
> After his PR, the problem remains for two modes:
> CURL_IPRESOLVE_WHATEVER and CURL_IPRESOLVE_IPV6

If Curl_ipv6works() were not called in the CURL_IPRESOLVE_V6 case, would that 
solve the issues that are remaining?

> My proposal, in addition to Daniel's PR allows to close the gap and avoid 
> connection regressions for all three modes.

It might in your situation, but it wouldn't in everybody else's.

Dan
--
Unsubscribe: https://lists.haxx.se/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html
-- 
Unsubscribe: https://lists.haxx.se/listinfo/curl-library
Etiquette:   https://curl.se/mail/etiquette.html

Reply via email to