[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [libmicrohttpd] Aync handling & message response
From: |
Christian Grothoff |
Subject: |
Re: [libmicrohttpd] Aync handling & message response |
Date: |
Mon, 3 Sep 2018 10:33:05 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 |
Hi Santos,
MHD simply doesn't read the next request (at least not intentionally,
bits may end up in our read buffer but won't be looked at). But the
kernels may already buffer subsequent requests.
Happy hacking!
Christian
On 09/03/2018 10:30 AM, Santos Das wrote:
> Hi Christian ,
>
> How does this work with pipe-lining? My understanding was that the
> server would still read the request but will maintain the order of
> response. But, from your email it seems the server would also not read
> the second request before sending a reply to the first request> ?
>
> Is this correct?
>
> thanks, santos
>
> On Mon, Sep 3, 2018 at 12:41 PM Christian Grothoff <address@hidden
> <mailto:address@hidden>> wrote:
>
> HTTP 1.1 processes requests in-order. Clients may send us additional
> requests on the same TCP connection, but MHD will only ever look at a
> subsequent request after processing the previous request is complete.
>
> I hope this clarifies.
>
> On 08/29/2018 09:43 AM, Kunal Ekawde wrote:
> > Ahh ok, getting it now, I wasn't using suspend/resume, but if client
> > pipelines the requests, we would have suspended the connection,
> will it
> > be handled ?
> > Appreciate you help.
> >
> > Thanks,
> > Kunal
> >
> > On Wed, Aug 29, 2018 at 12:47 PM Christian Grothoff
> <address@hidden <mailto:address@hidden>
> > <mailto:address@hidden <mailto:address@hidden>>> wrote:
> >
> > On 08/29/2018 08:44 AM, Kunal Ekawde wrote:
> > > 3. Just after #2, when curl_multi_info_read is successful ,
> > > MHD_queue_response is invoked, but it returns 0 and the
> easy_handle
> > > state is 1.
> > >
> > > Can we send the response to client only from the MHD callback
> > handler ?
> >
> > Yes. You must call MHD_resume_connection (you should have
> called suspend
> > before), and then queue once the callback is invoked.
> >
> > > or something is missing in above ?
> >
> > Nope, just "bad timing" of the call.
> >
> >
> >
> > --
> > ~Kunal
>
0x939E6BE1E29FC3CC.asc
Description: application/pgp-keys
signature.asc
Description: OpenPGP digital signature