Re: Increase in CPU usage in 8.7.1 vs 8.6.0 for rate-limited downloads

2024-05-15 Thread Dmitry Karpov via curl-library
I just want to refresh that this commit helped to restore the precision of rate throttling. Before it, the speed deviations from the limit were more than 10% in certain cases. And depending on the network speed, they occurred on relatively big downloads (i.e. 5 MB) as well. I think that CPU

Re: Subtle H2 performance degradation in 8.7.1 vs 8.6.0

2024-04-02 Thread Dmitry Karpov via curl-library
to provide an alternate callback to CURLOPT_WRITEFUNCTION that also gets an "End-of-Stream" flag and a "Flush" behaviour, so applications can implelement some easy buffering according to their needs. Kind Regards, Stefan > Am 29.03.2024 um 23:47 schrieb Dmitry Karpov via curl-l

Subtle H2 performance degradation in 8.7.1 vs 8.6.0

2024-03-29 Thread Dmitry Karpov via curl-library
Hi All, Trying 8.7.1 and TOT, I discovered a subtle performance degradation for H2 transfers vs 8.6.0, which I would like to report. It is subtle because it is mostly visible on low-end hardware platforms with weak CPUs in cases when a client application needs to perform heavy processing of

Re: A single request in loop on macOS

2024-03-20 Thread Dmitry Karpov via curl-library
I thought that it wasn't clear why timeouts were happening. Thanks, Dmitry Karpov -Original Message- From: Daniel Stenberg Sent: Wednesday, March 20, 2024 3:40 PM To: Dmitry Karpov via curl-library Cc: Dmitry Karpov Subject: [EXTERNAL] Re: A single request in loop on macOS On Wed, 20 Mar 20

Re: A single request in loop on macOS

2024-03-20 Thread Dmitry Karpov via curl-library
I think I have a comment/question about Daniel's explanation: "To me, that indicates that a resource of some sort has run out, which possibly makes curl fail to create the new socket." I think it is fair to expect that if libcurl fails to create a new socket, then it will fail the transfer

RE: A single request in loop on macOS

2024-03-19 Thread Dmitry Karpov via curl-library
5s timeout is a very big timeout, so I suspect that the timeout error may be caused by some firewall rules blocking 8000 port. Maybe it is not the reason, but I guess It is worth checking. Also, enabling verbose output (CURLOPT_VERBOSE = 1) may provide more clues. Thanks, Dmitry Karpov From:

Re: Speed throttling precision issues in the latest libcurl

2024-03-05 Thread Dmitry Karpov via curl-library
Am 05.03.2024 um 02:04 schrieb Dmitry Karpov via curl-library > : > > Hi All, > After running some speed throttling tests on the latest libcurl, I noticed > that the speed throttling precision got lost again. > > I reported this issue for 8.5.0, and it was fixed for 8.

Speed throttling precision issues in the latest libcurl

2024-03-04 Thread Dmitry Karpov via curl-library
Hi All, After running some speed throttling tests on the latest libcurl, I noticed that the speed throttling precision got lost again. I reported this issue for 8.5.0, and it was fixed for 8.6.0 as part of https://github.com/curl/curl/commit/1da640abb6886aab822ff0c0da71b1df0ca89d0f, which

RE: Crash in nw_in_read when client drives SSL sockets

2024-01-22 Thread Dmitry Karpov via curl-library
OR; } } -- -Original Message----- From: curl-library On Behalf Of Dmitry Karpov via curl-library Sent: Tuesday, January 16, 2024 1:25 PM To: libcurl development Cc: Dmitry Karpov Subject: [EXTERNAL] RE: Crash in nw_in_read when client drives SSL sockets The same protection should be pr

RE: Crash in nw_in_read when client drives SSL sockets

2024-01-16 Thread Dmitry Karpov via curl-library
The same protection should be probably done in the cf_socket_send() as well. -Original Message- From: curl-library On Behalf Of Dmitry Karpov via curl-library Sent: Tuesday, January 16, 2024 11:53 AM To: libcurl development Cc: Dmitry Karpov Subject: [EXTERNAL] Crash in nw_in_read

Crash in nw_in_read when client drives SSL sockets

2024-01-16 Thread Dmitry Karpov via curl-library
Hi All, Migrating from 7.84 to 8.5.0, I stepped on some crash regression in some "3rd party" client code, which drives SSL sockets after using libcurl transfer for protocol "upgrade" purposes. It looks some like some custom WebSocket implementation, which client code uses for different HTTP

Re: Problems with empty header values in header API in 8.5.0/master

2024-01-10 Thread Dmitry Karpov via curl-library
It used to work somehow.  But I am glad that you fixed it. -Original Message- From: Daniel Stenberg Sent: Wednesday, January 10, 2024 12:27 AM To: Dmitry Karpov via curl-library Cc: Dmitry Karpov Subject: [EXTERNAL] Re: Problems with empty header values in header API in 8.5.0/master

Problems with empty header values in header API in 8.5.0/master

2024-01-09 Thread Dmitry Karpov via curl-library
Hi All, I noticed a strange regression related to header API when migrated from 7.84 to 8.5.0, and I see the same issue in TOT branch. The issue is that the header API returns '\r' as a header value when some service returns a header with no value (like: hdr: \r\n). The 7.84 returns expected

Re: Question/proposal about function returning pollfds from multi handle

2023-12-20 Thread Dmitry Karpov via curl-library
From: Daniel Stenberg Sent: Wednesday, December 20, 2023 2:54 PM To: Dmitry Karpov via curl-library Cc: Dmitry Karpov Subject: [EXTERNAL] Re: Question/proposal about function returning pollfds from multi handle On Wed, 20 Dec 2023, Dmitry Karpov via curl-library wrote: > The function imple

Re: Question/proposal about function returning pollfds from multi handle

2023-12-20 Thread Dmitry Karpov via curl-library
mall. I can create a PR for it if there are no objections. Thanks, Dmitry Karpov -Original Message- From: curl-library On Behalf Of Dmitry Karpov via curl-library Sent: Monday, December 18, 2023 12:30 PM To: libcurl development Cc: Dmitry Karpov Subject: [EXTERNAL] Re: Question/proposal a

Re: Question/proposal about function returning pollfds from multi handle

2023-12-18 Thread Dmitry Karpov via curl-library
> But then the applications need to do that realloc-dance instead, and it has > to do it for every time this function is used. > I figured my take could be a little more convenient and perhaps effective. > I'm not married to that way. Yes, I initially wanted to use the approach that stores the

RE: Question/proposal about function returning pollfds from multi handle

2023-12-14 Thread Dmitry Karpov via curl-library
- From: curl-library On Behalf Of Dmitry Karpov via curl-library Sent: Thursday, December 14, 2023 1:33 PM To: libcurl development Cc: Dmitry Karpov Subject: [EXTERNAL] RE: Question/proposal about function returning pollfds from multi handle Correction about pollfd. Of course, it should

RE: Question/proposal about function returning pollfds from multi handle

2023-12-14 Thread Dmitry Karpov via curl-library
Correction about pollfd. Of course, it should be curl_waitfd as platform-independent representation of a pollfd-like structure. -Original Message- From: curl-library On Behalf Of Dmitry Karpov via curl-library Sent: Thursday, December 14, 2023 1:26 PM To: libcurl development Cc

Question/proposal about function returning pollfds from multi handle

2023-12-14 Thread Dmitry Karpov via curl-library
Hi All, As we know, the multi handle API provides a useful curl_multi_fdset() function allowing to set descriptor bits for the sockets used by the multi handle, so, they can used in some external select() calls. But currently there is no function that can provide a similar functionality (like

Re: Empty file name in CURLOPT_COOKIEFILE optimization

2023-12-13 Thread Dmitry Karpov via curl-library
3, Dan Fandrich via curl-library > wrote: > > On Wed, Dec 13, 2023 at 09:49:07PM +, Dmitry Karpov via curl-library > wrote: >> I propose to add a simple check for the cookie file name length and call >> fopen() only if it is greater than zero like: > > Sounds

Empty file name in CURLOPT_COOKIEFILE optimization

2023-12-13 Thread Dmitry Karpov via curl-library
Hi All, As we know from the documentation, passing the empty string ("") to the CURLOPT_COOKIEFILE option allows to enable the cookie engine without reading any initial cookies. While this is true, the Curl_cookie_init() function in \lib\cookie.c still tries to open a file using "" as a file

Re: Large download speed deviations for CURLOPT_MAX_RECV_SPEED_LARGE in 8.4.0

2023-12-08 Thread Dmitry Karpov via curl-library
waiting times imposed by the speed limit. Thanks, Dmitry Karpov -Original Message- From: Daniel Stenberg Sent: Friday, December 8, 2023 7:29 AM To: Dmitry Karpov via curl-library Cc: Dmitry Karpov Subject: [EXTERNAL] Re: Large download speed deviations for CURLOPT_MAX_RECV_SPEED_LA

Re: Large download speed deviations for CURLOPT_MAX_RECV_SPEED_LARGE in 8.4.0

2023-12-05 Thread Dmitry Karpov via curl-library
brary On Behalf Of Dmitry Karpov via curl-library Sent: Tuesday, December 5, 2023 12:15 PM To: Dmitry Karpov via curl-library Cc: Dmitry Karpov Subject: [EXTERNAL] Re: Large download speed deviations for CURLOPT_MAX_RECV_SPEED_LARGE in 8.4.0 > That might just not be a very effective limit

Re: Large download speed deviations for CURLOPT_MAX_RECV_SPEED_LARGE in 8.4.0

2023-12-05 Thread Dmitry Karpov via curl-library
g Sent: Tuesday, December 5, 2023 2:03 AM To: Dmitry Karpov via curl-library Cc: Dmitry Karpov Subject: [EXTERNAL] Re: Large download speed deviations for CURLOPT_MAX_RECV_SPEED_LARGE in 8.4.0 On Tue, 5 Dec 2023, Dmitry Karpov via curl-library wrote: > In the do-while loop, we keep read

Large download speed deviations for CURLOPT_MAX_RECV_SPEED_LARGE in 8.4.0

2023-12-01 Thread Dmitry Karpov via curl-library
values in master/8.4 have much bigger effect on speed deviations than in 7.84. From: curl-library On Behalf Of Dmitry Karpov via curl-library Sent: Friday, December 1, 2023 4:03 PM To: libcurl development Cc: Dmitry Karpov Subject: [EXTERNAL] Re: Large download speed deviations

Re: Large download speed deviations for CURLOPT_MAX_RECV_SPEED_LARGE in 8.4.0

2023-12-01 Thread Dmitry Karpov via curl-library
in 8.4.0 On 01-Dec-23 02:32, Dmitry Karpov via curl-library wrote: In my tests, I downloaded a 5 MB file from some local network server using different network speeds. The test client was running on Windows (mentioning it, just in case). Random thought. Symptoms sound like different buffering. 5MB

Re: Large download speed deviations for CURLOPT_MAX_RECV_SPEED_LARGE in 8.4.0

2023-11-30 Thread Dmitry Karpov via curl-library
nal Message- From: Daniel Stenberg Sent: Thursday, November 30, 2023 1:42 AM To: Dmitry Karpov via curl-library Cc: Dmitry Karpov Subject: [EXTERNAL] Re: Large download speed deviations for CURLOPT_MAX_RECV_SPEED_LARGE in 8.4.0 On Wed, 29 Nov 2023, Dmitry Karpov via curl-library wr

Large download speed deviations for CURLOPT_MAX_RECV_SPEED_LARGE in 8.4.0

2023-11-29 Thread Dmitry Karpov via curl-library
Hi All, I recently started migrating to libcurl 8.4.0 from 7.84.0 in some of my applications and noticed a seeming regression for CURLOPT_MAX_RECV_SPEED_LARGE option precision. I use this option for download speed throttling, and it worked very well in 7.84.0 with a very good 5% precision.

Re: Potential hang problem on paused upload transfer when it is marked for closing

2023-11-29 Thread Dmitry Karpov via curl-library
esday, November 29, 2023 1:16 AM To: Dmitry Karpov via curl-library Cc: Dmitry Karpov Subject: [EXTERNAL] Re: Potential hang problem on paused upload transfer when it is marked for closing On Tue, 28 Nov 2023, Dmitry Karpov via curl-library wrote: > It looks like clearing just the KEEP_S

Potential hang problem on paused upload transfer when it is marked for closing

2023-11-28 Thread Dmitry Karpov via curl-library
Hi All, I stepped on some strange problem when one of my paused uploading transfers didn't get completion event when it was marked for closing (conn->bits.close was set). Debugging revealed a potential hanging issue in the readwrite_data() function in transfer.c: static CURLcode

Re: "Could not resolve host" error only on the multi interface

2023-11-01 Thread Dmitry Karpov via curl-library
los Chalaca Figueira Sent: Wednesday, November 1, 2023 9:18 AM To: libcurl development Cc: Dmitry Karpov Subject: [EXTERNAL] Re: "Could not resolve host" error only on the multi interface On 31/10/23 18:32, Dmitry Karpov via curl-library wrote: > I would recommend to try with

RE: "Could not resolve host" error only on the multi interface

2023-10-31 Thread Dmitry Karpov via curl-library
I would recommend to try without explicitly setting DNS server and timeout - just to use the default DNS system settings. Maybe, the "8.8.8.8" is not routable in your setup. Also, I would run Wireshark or tcpdump to see if your DNS queries/response were actually sent/received on the wire.

Re: Getting a list of easy handles in a multi handle - possible?

2023-08-29 Thread Dmitry Karpov via curl-library
multi-line handle iterating code freeing the handles which needs testing and debugging in each individual client use case. Thanks, Dmitry Karpov -Original Message- From: Daniel Stenberg Sent: Tuesday, August 29, 2023 2:39 PM To: Dmitry Karpov via curl-library Cc: Dmitry Karpov S

Re: Getting a list of easy handles in a multi handle - possible?

2023-08-29 Thread Dmitry Karpov via curl-library
CURLMOPT_FREE_EASY_ON_CLEANUP or similar? /HH Den tis 29 aug. 2023 kl 20:49 skrev Dmitry Karpov via curl-library mailto:curl-library@lists.haxx.se>>: I think this discussion started from a pretty simple request to close and free easy handles that were previously added to a multi-handle b

RE: [EXTERNAL] Re: Getting a list of easy handles in a multi handle - possible?

2023-08-29 Thread Dmitry Karpov via curl-library
I think this discussion started from a pretty simple request to close and free easy handles that were previously added to a multi-handle because the curl_multi_cleanup() removes easy handles from the multi-handle but doesn't close them. This is snippet of the original message: "Basically we

RE: Detecting final WebSocket frame of a fragmented message

2023-07-11 Thread Dmitry Karpov via curl-library
I guess the "offset" and "bytesleft" in the curl_ws_meta structure (https://curl.se/libcurl/c/curl_ws_meta.html) provide information about WS message fragments. "offset" When this frame is a continuation of fragment data already delivered, this is the offset into the final fragment where this

Re: Send data before receiving data using the callback approach for WebSocket requests

2023-06-19 Thread Dmitry Karpov via curl-library
ks, Dmitry Karpov -Original Message- From: Daniel Stenberg Sent: Sunday, June 18, 2023 2:47 PM To: Dmitry Karpov via curl-library Cc: Dmitry Karpov Subject: [EXTERNAL] Re: Send data before receiving data using the callback approach for WebSocket requests On Wed, 7 Jun 2023, Dmitry K

Re: Send data before receiving data using the callback approach for WebSocket requests

2023-06-07 Thread Dmitry Karpov via curl-library
I think there should be WS_OPEN callback, called when WebSocket has been successfully opened, which would allow to send data right after opening. That's how I did it in my C++ WebSocket implementation layer over libcurl. And I think most of WS clients provide such "on open" notifications.

Re: Issue with MAX_COOKIE_HEADER_LEN

2023-05-19 Thread Dmitry Karpov via curl-library
I heard too many often from cloud folks something like “we control the server and your client should do this…”. So, I think having an option allowing to override MAX_COOKIE_HEADER_LEN is a good idea allowing to meet different client/server needs. It is much better than making a custom libcurl

RE: [EXTERNAL] Re: libcurl 8.0.1 and mem leaks reported on callback - windows x64 build

2023-04-10 Thread Dmitry Karpov via curl-library
The "problem" with the original code is that the std::string jsonPayload is a global variable. It contains a large string which requires dynamic memory allocation, and such allocation is done by CRT heap in this case. Because it is a global object, the CRT debug heap allocation/deallocation

RE: IPv6 issues with ares_getaddrinfo()

2023-02-14 Thread Dmitry Karpov via curl-library
ibrary Sent: Tuesday, February 14, 2023 4:58 AM To: Dmitry Karpov via curl-library Cc: Peter Krefting Subject: [EXTERNAL] RE: IPv6 issues with ares_getaddrinfo() Hi! Dmitry Karpov on 2023-01-24: > You need to tweak libcurl options or follow the same logic in your > code to matc

RE: Roadmap 2023 ?

2023-02-13 Thread Dmitry Karpov via curl-library
ion-specific "IPv6 enabled" checks it still will be helpful if the "system" handle provides a way to setup a custom mechanism to check just that. All multi-threading issues, which may potentially occur when multiple transfers run in multiple threads, should be handled by the &quo

Re: Total http/2 concurrency for multiplexed multi-handle

2023-02-10 Thread Dmitry Karpov via curl-library
> If you're not terribly far away and each transfer mostly saturates the pipe, > doing them serially is not going to be much different than parallel in the > grand total. > Multiplexing should still be slightly faster since you won't get punished by > the RTT gaps and slow-starts that serial

RE: Roadmap 2023 ?

2023-02-10 Thread Dmitry Karpov via curl-library
As you asked, here is my wish list based on some discissions in the group!  - Provide the "system" layer functionality. In short, the "system" functionality API will allow to change the default options assigned to handles, intercept option setting calls and provide options that are aligned

Re: WebSocket feature request: is it possible to call write function when full frame is loaded only?

2023-02-06 Thread Dmitry Karpov via curl-library
Gasper Subject: [EXTERNAL] Re: WebSocket feature request: is it possible to call write function when full frame is loaded only? > On Feb 6, 2023, at 2:57 AM, Daniel Stenberg via curl-library > wrote: > > On Fri, 3 Feb 2023, Dmitry Karpov via curl-library wrote: > >> So, if w

Re: WebSocket feature request: is it possible to call write function when full frame is loaded only?

2023-02-03 Thread Dmitry Karpov via curl-library
“I think the reason is that websocket frame is divided between different TCP packets.” Just a small reminder or observation that WebSocket is “message” based-protocol and “frames” are underlying transport layer, which is based on TCP packets down the line. WS messages can be delivered using

RE: IPv6 issues with ares_getaddrinfo()

2023-01-24 Thread Dmitry Karpov via curl-library
brary Sent: Tuesday, January 24, 2023 4:24 AM To: Dmitry Karpov via curl-library Cc: Peter Krefting Subject: [EXTERNAL] RE: IPv6 issues with ares_getaddrinfo() Hi! > I think the problem was that you had only one network interface working - > eth1, and by some reason the system gave libcurl

RE: IPv6 issues with ares_getaddrinfo()

2023-01-23 Thread Dmitry Karpov via curl-library
approach, but it is good that it is working now. -Original Message- From: curl-library On Behalf Of Peter Krefting via curl-library Sent: Monday, January 23, 2023 2:09 AM To: Dmitry Karpov via curl-library Cc: Peter Krefting Subject: [EXTERNAL] RE: IPv6 issues with ares_getaddrinfo() Hi

RE: IPv6 issues with ares_getaddrinfo()

2023-01-20 Thread Dmitry Karpov via curl-library
rary On Behalf Of Peter Krefting via curl-library Sent: Friday, January 20, 2023 12:20 AM To: Dmitry Karpov via curl-library Cc: Peter Krefting Subject: [EXTERNAL] RE: IPv6 issues with ares_getaddrinfo() Hi! > Do you get host resolution error with the curl 7.87.0 and c-ares > 1.18.1 or the

RE: IPv6 issues with ares_getaddrinfo()

2023-01-19 Thread Dmitry Karpov via curl-library
Do you get host resolution error with the curl 7.87.0 and c-ares 1.18.1 or the host resolution is OK? If host resolution fails with the new libraries, then I think it all depends on how network interfaces are picked by c-ares. If you get resolution error, then maybe, ares_getaddrinfo() picks

Re: HTTP/3 options

2023-01-12 Thread Dmitry Karpov via curl-library
or a few connection attempts, but this interval will still help to switch relatively quickly to H2/TCP in case if UDP is blocked by some middleware. Thanks, Dmitry Karpov -Original Message- From: Daniel Stenberg Sent: Thursday, January 12, 2023 1:56 PM To: Dmitry Karpov via curl-library C

Re: HTTP/3 options

2023-01-12 Thread Dmitry Karpov via curl-library
Daniel, a question about the "Happy eyeballs everything!" section in the blog. Is the "happy eyeballs" interval between H3 and H2 going to be controlled by the same option as the interval between IPv6 and IPv4 or there will be a special option for that? I am asking because QUIC in H3 is

RE: [EXTERNAL] Re: H3/QUIC flow control/buffering problem and suggestion

2023-01-11 Thread Dmitry Karpov via curl-library
make it work better, and the best possible performance is probably not on top on the list at this point. But as people start using H3 more and more in production scenarios, the question of its performance will inevitably pop up. Thanks, Dmitry Karpov -Original Message----- From: Daniel Stenber

Re: H3/QUIC flow control/buffering problem and suggestion

2023-01-10 Thread Dmitry Karpov via curl-library
ibcurl is very important to make H3/QUIC truly competitive with H1/H2. And as H3 in libcurl is moving toward production-ready state, it is something to think about. Thanks, Dmitry Karpov -Original Message- From: Daniel Stenberg Sent: Tuesday, January 10, 2023 12:02 AM To: Dmitry Kar

Re: H3/QUIC flow control/buffering problem and suggestion

2023-01-09 Thread Dmitry Karpov via curl-library
ance. Thanks, Dmitry Karpov -Original Message----- From: Daniel Stenberg Sent: Monday, January 9, 2023 1:57 PM To: Dmitry Karpov via curl-library Cc: Dmitry Karpov Subject: [EXTERNAL] Re: H3/QUIC flow control/buffering problem and suggestion On Mon, 9 Jan 2023, Dmitry Karpov via curl-library

Re: H3/QUIC flow control/buffering problem and suggestion

2023-01-09 Thread Dmitry Karpov via curl-library
> Why does it have to be a new option? Why not just make the existing one > possible to set larger than today? The problem here is that for H1/H2 buffering and flow control are controlled by TCP receive buffer size socket option, which tells kernel how to operate TCP stack for that socket.

H3/QUIC flow control/buffering problem and suggestion

2023-01-06 Thread Dmitry Karpov via curl-library
Hi All, As H3 in libcurl is going steadily to the production feature, I would like to tell about one H3/QUIC issue, which was OK for the experimental stage, but probably needs to be addressed to make H3 a full production feature. When I was comparing H3/QUIC with the H1/H2 TCP in my local

Re: HTTPS records

2022-12-09 Thread Dmitry Karpov via curl-library
On Thu, 8 Dec 2022, Daniel Stenberg via curl-library wrote: > Sure. That should be fairly easy even! The "struct ares_addrinfo" contains > TTL data. Yes, the c-ares seems to be a front runner for async resolvers with many good features that it provides. So, we can probably take its structures

Re: HTTPS records

2022-12-08 Thread Dmitry Karpov via curl-library
> Sure, just a little complicated. > A primary reason the default name resolving in libcurl is still done with > getaddrinfo() and not with a third party library like c-ares is that it is > mighty hard to replicate its functionality. And getaddrinfo() does not return > TTL. > If we want to

RE: [EXTERNAL] Re: HTTPS records

2022-12-07 Thread Dmitry Karpov via curl-library
> Since libcurl's DNS cache is downstream of some full-function resolver cache, > using 60 seconds as default is probably not harmful. On the other hand, using > the exact cache seems somehow more correct. Exactly! Honoring exact TTLs will be a very good feature. I heard complaints from some

Re: How to check if machine has network connectivity using libcurl api reliably?

2022-11-23 Thread Dmitry Karpov via curl-library
have to set correctly working IP mode explicitly for each transfer based on results of app-specific "connectivity" test to avoid dual-stack-related problems. Thanks, Dmitry Karpov -----Original Message- From: David Woodhouse Sent: Wednesday, November 23, 2022 3:10 AM To:

Re: How to check if machine has network connectivity using libcurl api reliably?

2022-11-22 Thread Dmitry Karpov via curl-library
> Further there can be situations were Wifi network is available but > Internet connection / link is not working. I am dealing with such issues in my applications, although they are running on embedded devices, not on Windows, but the problem is similar. For me, HTTP is the most important

Re: WebSocket notes

2022-11-07 Thread Dmitry Karpov via curl-library
> A mode of operation where curl aggregates the frames into full messages (as > browsers do) would certainly, IMO, be friendlier for the general use case, > though it may complicate more optimized scenarios. When we were discussing WS support in libcurl some time ago, I expressed that the

RE: [EXTERNAL] Re: noproxy breakage

2022-10-27 Thread Dmitry Karpov via curl-library
> It might be sort of subjective but I don't think there's anything wrong with > that. It's one of those things you know it when you see it. Yes, I agree. For me release patch considerations are always a trade-off between the following major arguments : - Is the issue quite serious and have a

RE: [EXTERNAL] Re: On CURLOPT_AUTOREFERER privacy

2022-10-17 Thread Dmitry Karpov via curl-library
> I agree with Timothe that this doesn't seem worthwhile breaking backward > compatibility. I discovered only recently that browsers have changed their > behaviour in this area when a site that was depending on > receiving the full URL broke. > If someone is going to the trouble of enabling

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

2022-09-29 Thread Dmitry Karpov via curl-library
> I still don't like the idea of having a "global" system level. We can easily > think of a system where you run stuff multi-threaded, and then you might want > one "system" for each thread's app level. But this I guess what application can relatively easy provide. For instance, some global

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

2022-09-27 Thread Dmitry Karpov via curl-library
to add more "system" functions in the future without a need to add more new curl_global_init_xxx() global functions. Thanks, Dmitry Karpov -Original Message- From: curl-library On Behalf Of Dmitry Karpov via curl-library Sent: Monday, September 26, 2022 3:48 PM To: Daniel

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

2022-09-26 Thread Dmitry Karpov via curl-library
ted components may use some transfer settings which are against some policies enforced in the "hosting" applications. What do you think about that approach? It still introduces new global callback(s), but the flexibility that this approach brings in allows to do a wide range of "syste

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

2022-09-26 Thread Dmitry Karpov via curl-library
nk it is worth it. And if documenting, publishing etc is a hassle then can we make it "undocumented API" then? It is still will be a useful feature to have for folks who are facing issues with the default "IPv6 works" in embedded world? Thanks, Dmitry Karpov -Origina

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

2022-09-23 Thread Dmitry Karpov via curl-library
Thanks, Dmitry Karpov -Original Message- From: Daniel Stenberg Sent: Friday, September 23, 2022 3:10 PM To: Dmitry Karpov Cc: Dmitry Karpov via curl-library Subject: RE: [EXTERNAL] Re: Feature request: provide ability to set a global callback function telling libcurl if IPv6 works on the s

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

2022-09-23 Thread Dmitry Karpov via curl-library
work changes) and update the "IPv6 works" flag. In other words, the "IPv6 works" system callback provides a nice flexibility for implementing different scenarios. Thanks, Dmitry Karpov From: curl-library On Behalf Of Dmitry Karpov via curl-library Sent: Friday, September

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

2022-09-23 Thread Dmitry Karpov via curl-library
em wide memory management functions in curl_global_init_mem(). And I just propose to add a similar system wide "IPv6 works on the system" check callback, so I am quite consistent here with what libcurl does. Thanks, Dmitry Karpov -Original Message- From: Danie

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

2022-09-23 Thread Dmitry Karpov via curl-library
ement functions in curl_global_init_mem(). And I just propose to add a similar system wide "IPv6 works on the system" check callback, so I am quite consistent here with what libcurl does. Thanks, Dmitry Karpov -Original Message- From: Daniel Stenberg Sent: Friday, September 23,

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

2022-09-23 Thread Dmitry Karpov via curl-library
Unfortunately, my code detecting whether IPv6 works on my systems is not a generic one and very specific to linux kernels, network configurations and software used in my devices. It also depends on some other components, which just cannot be integrated or used inside libcurl. That's why I

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

2022-09-22 Thread Dmitry Karpov via curl-library
"IPv6 works" callback efficiently allows to avoid. Thanks, Dmitry Karpov -Original Message- From: Daniel Stenberg Sent: Thursday, September 22, 2022 2:47 PM To: Dmitry Karpov via curl-library Cc: Dmitry Karpov Subject: RE: [EXTERNAL] Re: Feature request: provide ability to set a glo

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

2022-09-22 Thread Dmitry Karpov via curl-library
> I guess this refers to the changing of Curl_ipv6works() to store the state in > the multi handle as compared to the previous take where the state was stored > globally. Done in 0b030a5b232bd9fc, shipped since 7.69.0. When the state was stored globally, there were other quite serious issues

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

2022-09-21 Thread Dmitry Karpov via curl-library
eature request: provide ability to set a global callback function telling libcurl if IPv6 works on the system On Wed, Sep 21, 2022 at 10:46:45PM +, Dmitry Karpov via curl-library wrote: > I think that my proposal will provide useful customization for dual-stack > curl applications, and

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

2022-09-21 Thread Dmitry Karpov via curl-library
brary 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 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

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

2022-09-21 Thread Dmitry Karpov via curl-library
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 07:40:10PM +, Dmitry Karpov via curl-library wrote: > Yes, doing things "lazily" in Daniel's PR fixes the problem

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

2022-09-21 Thread Dmitry Karpov via curl-library
Yes, doing things "lazily" in Daniel's PR fixes the problem for explicit CURL_IPRESOLVE_V4, which will not call Curl_ipv6works() anymore. But the problem is still there for the CURL_IPRESOLVE_WHATEVER, which is the default value for the CURLOPT_IPRESOLVE option. So, migration from IPv4-enabled

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

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

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

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

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

2022-09-19 Thread Dmitry Karpov via curl-library
Hi All, 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 connections than for IPv4 single-stack libcurl. After looking into this issue, it turned out that the regression was caused

RE: [EXTERNAL] RE: IPv6 resolution problems for IPv4 resolve mode

2022-09-19 Thread Dmitry Karpov via curl-library
tested, reviewed and commented on further. Sounds good, I will try to do that. Thanks, Dmitry Karpov -Original Message- From: Daniel Stenberg Sent: Monday, September 19, 2022 12:19 AM To: Dmitry Karpov via curl-library Cc: Dmitry Karpov Subject: [EXTERNAL] RE: IPv6 resolution problems

RE: IPv6 resolution problems for IPv4 resolve mode

2022-09-16 Thread Dmitry Karpov via curl-library
rl-library On Behalf Of Dmitry Karpov via curl-library Sent: Tuesday, July 12, 2022 12:26 PM To: libcurl development Cc: Dmitry Karpov Subject: RE: IPv6 resolution problems for IPv4 resolve mode > Yes, the name could be better but I don't we need to argue about that detail. > The question is rea

RE: IPv6 resolution problems for IPv4 resolve mode

2022-07-12 Thread Dmitry Karpov via curl-library
> Yes, the name could be better but I don't we need to argue about that detail. > The question is really what libcurl should do when the different values are > set. Very well said. It precisely describes the problem. The resolution is the part of the transfer and the IPRESOLVE_* "kind of"

RE: IPv6 resolution problems for IPv4 resolve mode

2022-07-11 Thread Dmitry Karpov via curl-library
force "dual" queries even for IPv4 resolve mode, but this seems like a very special use case to me to be enabled by default. Thanks, Dmitry Karpov -Original Message- From: Daniel Stenberg Sent: Saturday, July 9, 2022 3:14 PM To: Dmitry Karpov via curl-library Cc: Dmitry Karpov

RE: IPv6 resolution problems for IPv4 resolve mode

2022-07-07 Thread Dmitry Karpov via curl-library
ery (which will be cached) when IPv6-only resolution mode is used later on after IPv4. Thanks, Dmitry Karpov -Original Message- From: curl-library On Behalf Of Dmitry Karpov via curl-library Sent: Monday, May 23, 2022 1:04 PM To: Daniel Stenberg Cc: Dmitry Karpov ; Dmitry Karpov via cu

RE: HTTP3 regression in curl 7.84.0

2022-06-28 Thread Dmitry Karpov via curl-library
The problem was identified. Please see the issue: https://github.com/curl/curl/issues/9053 A patch with a tentative fix was provided there for those who needs a fast solution. -Original Message- From: curl-library On Behalf Of Dmitry Karpov via curl-library Sent: Tuesday, June 28

RE: HTTP3 regression in curl 7.84.0

2022-06-28 Thread Dmitry Karpov via curl-library
Yes, it looks like the same issue. Some problems with ngtcp2 0.6.0. Not easy to bisect though as ngtcp2 API keeps changing and libcurl must adapt... -Original Message- From: Daniel Stenberg Sent: Tuesday, June 28, 2022 12:17 AM To: Dmitry Karpov via curl-library Cc: Dmitry Karpov

HTTP3 regression in curl 7.84.0

2022-06-28 Thread Dmitry Karpov via curl-library
Hi All, I am trying HTTP3 on the released 7.84.0 build with the latest ngtctp2/nghttp3 libraries and I can't make QUIC connection. For test I just used url: https://curl.se/ which is hosted in nginx with quic support. My setup (Win32 build) is libcurl 7.84.0, openssl+quic 1.1.1m, ngtcp2 0.6.0,

RE: About a websockets write callback

2022-06-21 Thread Dmitry Karpov via curl-library
ry Karpov -Original Message- From: Daniel Stenberg Sent: Tuesday, June 21, 2022 10:11 AM To: Dmitry Karpov via curl-library Cc: Dmitry Karpov Subject: RE: About a websockets write callback On Mon, 20 Jun 2022, Dmitry Karpov via curl-library wrote: > Yes, it would be nice to have just

RE: About a websockets write callback

2022-06-20 Thread Dmitry Karpov via curl-library
ument, and it provides a quite flexible mechanism for implementing data callbacks for complex protocols with many options. Thanks, Dmitry Karpov -Original Message- From: Daniel Stenberg Sent: Saturday, June 18, 2022 4:08 AM To: Dmitry Karpov via curl-library Cc: Dmitry Karpov Subject:

RE: About a websockets write callback

2022-06-17 Thread Dmitry Karpov via curl-library
Hello, I think that the approach using separate WS callbacks is better. For WS transfers, the CURLOPT_WRITEFUNCTION callback always must be used with "message metadata" calls, otherwise it is useless. So, besides the need to somehow pass a curl handle inside the write callback to get metadata

RE: Deprecating 4 "wrong" RTMP protocol bits

2022-06-10 Thread Dmitry Karpov via curl-library
I would like to suggest keeping CURLOPT_PROTOCOLS as it is now (which holds bitmap of the existing protocols) and add CURLOPT_PROTOCOLS1 to store bits for future protocols. When it gets exhausted, CURLOPT_PROTOCOLS2 can be added and so on. On the “info” side, we would need to add a similar new

RE: IPv6 resolution problems for IPv4 resolve mode

2022-05-23 Thread Dmitry Karpov via curl-library
ks, Dmitry Karpov -Original Message- From: Daniel Stenberg Sent: Monday, May 23, 2022 4:22 AM To: Dmitry Karpov Cc: Dmitry Karpov via curl-library Subject: RE: IPv6 resolution problems for IPv4 resolve mode On Fri, 20 May 2022, Dmitry Karpov wrote: > I understand the rationale for

RE: IPv6 resolution problems for IPv4 resolve mode

2022-05-20 Thread Dmitry Karpov via curl-library
modes. This will make IPv4-only requests in IPv6-enabled libcurl builds behave the same way as they do in IPv4-only builds. -Original Message- From: Daniel Stenberg Sent: Friday, May 20, 2022 7:14 AM To: Dmitry Karpov via curl-library Cc: Dmitry Karpov Subject: Re: IPv6 resolution proble

RE: IPv6 resolution problems for IPv4 resolve mode

2022-05-19 Thread Dmitry Karpov via curl-library
As we have the feature window open now, can I get some input on my proposal? Thanks, Dmitry Karpov From: curl-library On Behalf Of Dmitry Karpov via curl-library Sent: Monday, May 9, 2022 2:25 PM To: libcurl development Cc: Dmitry Karpov Subject: IPv6 resolution problems for IPv4 resolve

  1   2   >