Re: Feature request: provide ability to set a global callback function telling libcurl if IPv6 works on the system

2022-09-20 Thread Daniel Stenberg via curl-library
On Wed, 21 Sep 2022, Daniel Stenberg via curl-library wrote: Yes. It sounds like we should be able to fix this by "lazily" do the check first when it is actually necessary to know. If set to CURL_IPRESOLVE_V4 there's no need to know. Whatever we decide here, I think this is a good idea so I w

Re: Feature request: provide ability to set a global callback function telling libcurl if IPv6 works on the system

2022-09-20 Thread Daniel Stenberg via curl-library
On Tue, 20 Sep 2022, Dan Fandrich via curl-library wrote: How doesn't setting CURLOPT_IPRESOLVE fix this? Is it because Curl_ipv6works() is being called somewhere anyway, and it adds a 30 msec delay? So, if libcurl eliminated that call in the CURL_IPRESOLVE_V4 case, would it fix your problem?

Re: Feature request: provide ability to set a global callback function telling libcurl if IPv6 works on the system

2022-09-20 Thread Dan Fandrich via curl-library
On Tue, Sep 20, 2022 at 11:49:08PM +, Dmitry Karpov via curl-library wrote: > No matter how difficult it is (and maybe not always possible) to do it in > multiple places, setting IP_RESOLVE option doesn't solve the problem which I > am trying to resolve via this proposal. How doesn't setting

Re: Feature request: provide ability to set a global callback function telling libcurl if IPv6 works on the system

2022-09-20 Thread Dmitry Karpov via curl-library
No, it is not just an engineering issue, which can be solved by changing some easy handle settings in multiple places. No matter how difficult it is (and maybe not always possible) to do it in multiple places, setting IP_RESOLVE option doesn't solve the problem which I am trying to resolve via t

RE: [EXTERNAL] Re: Feature request: provide ability to set a global callback function telling libcurl if IPv6 works on the system

2022-09-20 Thread Dmitry Karpov via curl-library
> I still haven't seen any reason this needs to be a callback, besides that > it's easier to integrate into your program. > If you insist on this being a callback, then you can just call it yourself by > changing your code from using > curl_easy_init() everywhere to using dmitry_curl_easy_init(

Re: [EXTERNAL] Re: Feature request: provide ability to set a global callback function telling libcurl if IPv6 works on the system

2022-09-20 Thread Dan Fandrich via curl-library
On Tue, Sep 20, 2022 at 08:28:10PM +, Dmitry Karpov wrote: > Yes, I want to use dual-stack in general. That's why my application has > numerous components which use CURLOPT_IPRESOLVE = AUTO. > But if IPv6 doesn't work on a "system level", I want my curl code to be as > fast as "IPv4 only" res

RE: [EXTERNAL] Re: Feature request: provide ability to set a global callback function telling libcurl if IPv6 works on the system

2022-09-20 Thread Dmitry Karpov via curl-library
> I don't see your argument. Either you want IPv6 for a connection or you don't. Yes, I want to use dual-stack in general. That's why my application has numerous components which use CURLOPT_IPRESOLVE = AUTO. But if IPv6 doesn't work on a "system level", I want my curl code to be as fast as "IPv

Re: [EXTERNAL] Re: Feature request: provide ability to set a global callback function telling libcurl if IPv6 works on the system

2022-09-20 Thread Dan Fandrich via curl-library
On Tue, Sep 20, 2022 at 07:24:42PM +, Dmitry Karpov wrote: Not necessarily. If we have a bunch of applications on the system with large codebases which use CURLOPT_IPRESOLVE = AUTO in too many places, then all these places should detect somehow that "IPv6 doesn't work" and change the resolve

RE: [EXTERNAL] Re: Feature request: provide ability to set a global callback function telling libcurl if IPv6 works on the system

2022-09-20 Thread Dmitry Karpov via curl-library
> An option like CURLOPT_IPRESOLVE seems like a much cleaner solution. Not necessarily. If we have a bunch of applications on the system with large codebases which use CURLOPT_IPRESOLVE = AUTO in too many places, then all these places should detect somehow that "IPv6 doesn't work" and change th

Re: Feature request: provide ability to set a global callback function telling libcurl if IPv6 works on the system

2022-09-20 Thread Dan Fandrich via curl-library
On Tue, Sep 20, 2022 at 06:58:31PM +, Dmitry Karpov via curl-library wrote: > To cover such a range of cases, curl application needs a more flexible > approach for detection whether IPv6 works on the "system level". > And I guess the "curl_global_init_ipv6() with callback" provides such > fle

RE: Re: Feature request: provide ability to set a global callback function telling libcurl if IPv6 works on the system

2022-09-20 Thread Dmitry Karpov via curl-library
> Ah, ok then I was wrong. Yes, I use the same application with IPv6-enabled libcurl on different Linux kernel versions (both with IPv6 enabled and disabled on kernel level) for different embedded devices and some of them (pretty recent 4.x, actually) show IPv6 socket delay failures. Some ker

Re: C99

2022-09-20 Thread bch via curl-library
On Tue, Sep 20, 2022 at 08:06 Emil Engler via curl-library < curl-library@lists.haxx.se> wrote: > On Tue, Sep 20, 2022 at 11:24:37AM +0200, Daniel Stenberg via curl-library > wrote: > > I am not entirely convinced we want to go all-in and totally crazy on all > > these fronts immediately, and I th

Re: C99

2022-09-20 Thread Emil Engler via curl-library
On Tue, Sep 20, 2022 at 11:24:37AM +0200, Daniel Stenberg via curl-library wrote: > I am not entirely convinced we want to go all-in and totally crazy on all > these fronts immediately, and I think having an idea what we want in terms > of code style is a good idea to have thought about before the

Re: C99

2022-09-20 Thread Daniel Stenberg via curl-library
On Tue, 20 Sep 2022, Christoph M. Becker wrote: In my opinion, it makes sense to rely on some of the newer language capabilities, but note that MSVC does not support all required language features of C99 (only C11 and C17 are supported by recent versions). This means in particular that variabl

RE: C99

2022-09-20 Thread Marcel Raad via curl-library
Hi, > At the same time, if we accept C99 it will be hard to enforce restrictions > with compilers and checksrc certainly will not stop most of the things in > that > list (the //-comments perhaps being the single exception). > > Thoughts? I like the idea and agree that would be the perfect tim

Re: C99

2022-09-20 Thread Christoph M. Becker via curl-library
Hi! On 20.09.2022 at 11:24, Daniel Stenberg via curl-library wrote: > New mail thread to make this topic more visible. The idea of switching > to C99 as the base level for curl code when we go version 8 (March 2023) > is attractive to me. I figure compilers have had some time to get > compliant a

C99

2022-09-20 Thread Daniel Stenberg via curl-library
Hello, New mail thread to make this topic more visible. The idea of switching to C99 as the base level for curl code when we go version 8 (March 2023) is attractive to me. I figure compilers have had some time to get compliant and find widespread use by now! I added a PR just now to (primarl

Re: Feature request: provide ability to set a global callback function telling libcurl if IPv6 works on the system

2022-09-20 Thread Daniel Stenberg via curl-library
On Tue, 20 Sep 2022, Daniel F via curl-library wrote: This is not true. Application can be built using curl with IPv6 enabled (e.g. using RedHat 8 base docker image), then executed on another system/machine with IPv6 disabled. If I remember correctly, attempt to create IPv6 socket failed with

Re: Feature request: provide ability to set a global callback function telling libcurl if IPv6 works on the system

2022-09-20 Thread Daniel F via curl-library
W dniu 2022-09-20 08:22, Daniel Stenberg via curl-library napisaƂ(a): On Mon, 19 Sep 2022, Dmitry Karpov via curl-library wrote: Working with IPv6-enabled dual-stack libcurl, I noticed that for some Linux kernel configurations, it takes ~15-30ms more for dual-stack libcurl to establish IPv4 co