ah I missed that CuRL have a happy eyeball timeout! /HH
Den fre 22 aug. 2025 kl 20:20 skrev Dmitry Karpov via curl-library < curl-library@lists.haxx.se>: > *“Step 4 in the above list uses approximately 200ms *to execute before > moving on to trying 127.0.0.1.” > > > I think this is a normal Happy Eyeballs behavior when IPv4 is tried after > 200ms timeout (default libcurl HEB timeout) on IPv6. > > But in the second case (Windows 10 inside Oracle Virtual Box), by some > reason it takes ~3000ms for the Happy Eyeballs to detect the IPv6 > connection timeout instead of 200ms. > It is strange, and I don’t think that firewall somehow affects HEB timeout > logic. > > I can only guess that it is either the Windows 10 was running too slow > inside the VM, so the libcurl app didn’t have a chance to detect the HEB > timeout normally, > or the HEB timeout was changed somehow from the default 200ms value to 3s. > > I recommend to play with CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS option and see > if it changes the HEB timeout behavior. > > Thanks, > Dmitry Karpov > > > > > > > > *From:* curl-library <curl-library-boun...@lists.haxx.se> *On Behalf Of > *Henrik > Holst via curl-library > *Sent:* Friday, August 22, 2025 10:41 AM > *To:* Lars Sunde <laasu...@hotmail.com> > *Cc:* Henrik Holst <henrik.ho...@millistream.com>; libcurl development < > curl-library@lists.haxx.se> > *Subject:* [EXTERNAL] Re: ipv6 connect timeout > > > > Hi, > > > > what I mean is that normally when you try and make a connection attempt > to a port where no application is listening, the (in this case on your IPv6 > address) tcp/ip stack will reply with a TCP_RESET to notify the side trying > to make a connection that there is no one listening. > > > > Normal behaviour in Windows creates a 300ms latency vs every other OS due > to the design of Windows which is why you see this in your Windows 11 > setup, however since you see a 3000ms timeout on your Windows 10 setup I > suspect that there is something filtering out this TCP_RESET message and > that perhaps the local firewall that is active by default in Windows 10 is > what is causing this (normal behaviour of a firewall is to simply ignore > everything so that the connecting side cannot learn what is and what is not > running on the host and also to slow down any port scanning activity). > > > > /HH > > > > Den fre 22 aug. 2025 kl 14:47 skrev Lars Sunde <laasu...@hotmail.com>: > > Thanks for the feedback. > > > > Please forgive my ignorance but I do not fully understand what you mean by > Windows 10 firewall ignore the connection attempt. Do you mean the firewall > blocks the connection attempt? Is this a know bug with Windows 10 firewall? > I tried enabling firewall logging but have not been able to verify that the > firewall is actually stopping a connection. > > > > Lars > ------------------------------ > > *Fra:* Henrik Holst <henrik.ho...@millistream.com> > *Sendt:* fredag 22. august 2025 10:25 > *Til:* libcurl development <curl-library@lists.haxx.se> > *Kopi:* Lars Sunde <laasu...@hotmail.com> > *Emne:* Re: ipv6 connect timeout > > > > I think that the firewall in Windows 10 simply ignores the connection > attempt and does not send a TCP_RESET while your Windows 11 setup does > which is why CuRL on the one can detect that there exists no listening > application on that port and ip and on the other system it have to time out > the connection first (which though by default should take 300s and not just > 3s). > > > > /HH > > > > Den fre 22 aug. 2025 kl 09:57 skrev Lars Sunde via curl-library < > curl-library@lists.haxx.se>: > > Hello, > > > > We are running C++ software that uses libCurl 8.5 on Windows 10 and 11 > that perform HTTP operations. > > > > During testing I notice a difference in some rare situations when running > the software in Window 11 and in a virtual machine. The virtual machine is > Oracle Virtual Box with Windows 11 host and Windows 10 guest OS). > > > > We enabled CURLOPT_VERBOSE to debug the issue when the software attempts > to perform a HTTP post operation. > > > > Here is the output from Windows 11; > > 1. Host localhost:8010 was resolved > > > 2. IPv6: ::1 > > > 3. IPv4: 127.0.0.1 > > > 4. Trying [::1]:8010... > > > 5. Trying 127.0.0.1:8010... > > > 6. Connect to localhost (127.0.0.1) port 8010 > > > > *Step 4 in the above list uses approximately 200ms *to execute before > moving on to trying 127.0.0.1. > > > > Here is the output from Windows 10 inside Oracle Virtual Box; > > 1. Host localhost:8010 was resolved > > > 2. IPv6: ::1 > > > 3. IPv4: 127.0.0.1 > > > 4. Trying [::1]:8010... > > > 5. ipv6 connect timeout after 2985ms, move on > > > 6. Connection timeout after 3378 ms > > > 7. Close connection > > > > *Step 4 in the above list uses approximately 2985ms* to execute before > moving on ... > > > > Windows 11 has the following interfaces (according to "route print" > command) > > - Intel(R) Ethernet Connection > > > - VirtalBox Host-only Ethernet Adpter > > > - Software Loopback Interface > > > > Windows 10 inside VirtualBox has the following interfaces (according to > "route print" command) > > - Intel(R) PRO/1000 MT > > > - Software Loopback Interface > > > > > > Why does Windows 10 inside a virtual machine use 15 times as much time to > try IPv6 before moving on? How can I possible reduce or remove this > difference? I have read above CURLOPT_IPRESOVE but really need to > understand the problem before considering this solution. > > > > Appreciate any input > > > > Regards, Lars > > -- > Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library > Etiquette: https://curl.se/mail/etiquette.html > > -- > Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library > Etiquette: https://curl.se/mail/etiquette.html >
-- Unsubscribe: https://lists.haxx.se/mailman/listinfo/curl-library Etiquette: https://curl.se/mail/etiquette.html