Re: Support HTTP2 Goaway Frame callback for curl multi

2024-01-12 Thread Cao Duc Quan via curl-library
> > It would make so much more sense if your server would simply *message* your > application that it is time to start a new connection and then you do that, > using existing mechanisms. You would have to have a communication going > with > the server anyway to get the GOAWAY so why not just get it

Re: Support HTTP2 Goaway Frame callback for curl multi

2024-01-11 Thread Daniel Stenberg via curl-library
On Wed, 10 Jan 2024, Cao Duc Quan via curl-library wrote: If I grasp your point correctly, the statement "*curl may not process a GOAWAY immediately*" implies that there might be a delay in some of cURL's internal logic until a user initiates a request. However, I believe that my proposal will

Re: Support HTTP2 Goaway Frame callback for curl multi

2024-01-10 Thread Ray Satiro via curl-library
On 1/11/2024 1:13 AM, Cao Duc Quan wrote: If I grasp your point correctly, the statement "*curl may not process a GOAWAY immediately*" implies that there might be a delay in some of cURL's internal logic until a user initiates a request. However, I believe that my proposal will ensure the callb

Re: Support HTTP2 Goaway Frame callback for curl multi

2024-01-10 Thread Cao Duc Quan via curl-library
If I grasp your point correctly, the statement "*curl may not process a GOAWAY immediately*" implies that there might be a delay in some of cURL's internal logic until a user initiates a request. However, I believe that my proposal will ensure the callback is triggered promptly whenever nghttp2 rec

Re: Support HTTP2 Goaway Frame callback for curl multi

2024-01-10 Thread Ray Satiro via curl-library
On 1/10/2024 2:28 PM, Cao Duc Quan wrote: 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.

Re: Support HTTP2 Goaway Frame callback for curl multi

2024-01-10 Thread Cao Duc Quan via curl-library
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

Re: Support HTTP2 Goaway Frame callback for curl multi

2024-01-09 Thread Ray Satiro via curl-library
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

Re: Support HTTP2 Goaway Frame callback for curl multi

2024-01-07 Thread Cao Duc Quan via curl-library
> > 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-

Re: Support HTTP2 Goaway Frame callback for curl multi

2024-01-07 Thread Ray Satiro via curl-library
On 1/7/2024 1:33 PM, Cao Duc Quan wrote: I think what I proposed for GOAWAY has the same idea as CURLOPT_PREREQFUNCTION. What do you think? On Sun, Jan 7, 2024 at 10:24 AM Cao Duc Quan wrote: Sorry, seems I only replied to you in previous emails. Are you saying that you want to p

Re: Support HTTP2 Goaway Frame callback for curl multi

2024-01-07 Thread Cao Duc Quan via curl-library
I think what I proposed for GOAWAY has the same idea as CURLOPT_PREREQFUNCTION. What do you think? On Sun, Jan 7, 2024 at 10:24 AM Cao Duc Quan wrote: > Sorry, seems I only replied to you in previous emails. > > Are you saying that you want to proactively drop the in-progress streams >> as soon

Re: Support HTTP2 Goaway Frame callback for curl multi

2024-01-07 Thread Cao Duc Quan via curl-library
Sorry, seems I only replied to you in previous emails. Are you saying that you want to proactively drop the in-progress streams as > soon as a GOAWAY frame has been received? No, it's not. With the patch I proposed, on the callback of the GOAWAY frame, I did the following logic: - 1. Create a new

Re: Support HTTP2 Goaway Frame callback for curl multi

2024-01-07 Thread Ray Satiro via curl-library
On 1/6/2024 12:04 PM, Cao Duc Quan wrote: "During" means the time since the Server sends the GOAWAY frame till the Server explicitly closes the TCP connection. This window is 60s. My library starts a new connection with an HTTP GET to the server and the server will respond in multipart. This HT

Re: Support HTTP2 Goaway Frame callback for curl multi

2024-01-05 Thread Cao Duc Quan via curl-library
Thanks Ray. In fact, I used CURLM APIs to multiplex multiple requests. So my problem is that some events that were sent during GOAWAY graceful shutdown will get 400 from the server. With GOAWAY callback, I could proactively open a new connection and migrate new quests to use it. Does that make sens

Re: Support HTTP2 Goaway Frame callback for curl multi

2024-01-05 Thread Ray Satiro via curl-library
On 1/5/2024 11:28 AM, Cao Duc Quan via curl-library wrote: 1. Open a new HTTP2 connection by creating an HTTP GET to an url path. I created a CURLM object and added the easy handle for HTTP GET Request to it. 2. Next HTTP request will be sent in the HTTP2 connection created by step 1. I created

Re: Support HTTP2 Goaway Frame callback for curl multi

2024-01-05 Thread Cao Duc Quan via curl-library
Thanks Daniel and Ray for the quick response. My use-case is similar to https://github.com/curl/curl/issues/4839 where I created a library like a HTTP2 transport for upper application to send HTTP requests. We have a logic like this: 1. Open a new HTTP2 connection by creating an HTTP GET to an url

Re: Support HTTP2 Goaway Frame callback for curl multi

2024-01-05 Thread Daniel Stenberg via curl-library
On Thu, 4 Jan 2024, Cao Duc Quan via curl-library wrote: I am working on a small project where I need a callback from CURM when it receives the GOAWAY frame. I prepared a patch as follows and could get the callback for GOAWAY Please explain with more words why you need this and what it is for

Re: Support HTTP2 Goaway Frame callback for curl multi

2024-01-04 Thread Ray Satiro via curl-library
On 1/4/2024 10:45 PM, Cao Duc Quan via curl-library wrote: I am working on a small project where I need a callback from CURM when it receives the GOAWAY frame. I prepared a patch as follows and could get the callback for GOAWAY diff --git a/include/curl/multi.h b/include/curl/multi.h index e79

Support HTTP2 Goaway Frame callback for curl multi

2024-01-04 Thread Cao Duc Quan via curl-library
Happy New Year CURL !!! I am working on a small project where I need a callback from CURM when it receives the GOAWAY frame. I prepared a patch as follows and could get the callback for GOAWAY diff --git a/include/curl/multi.h b/include/curl/multi.h index e79b48ff3..c1b5adede 100644 --- a/include