[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [Libevent-users] Re: libevent: HTTP POST service example?



Basile,

It was my experience with libevent 1.4 that the entire post was buffered prior to callback. At a very minimum this opened my system up to a DOS attack.  Since I didn't find a way to get incremental callbacks in the end I abandoned use of the http layer in libevent. 

Ron Parker
Movik Networks


On Nov 6, 2010, at 4:32 AM, Basile Starynkevitch <basile@xxxxxxxxxxxxxxxxx> wrote:

> On Fri, 5 Nov 2010 23:58:47 +0100
> Basile Starynkevitch <basile@xxxxxxxxxxxxxxxxx> wrote:
>> Do you have an example of an HTTP server in libevent which handles a
>> POST request?
>> 
>> Apparently, calling evbuffer_readline (hreq->input_buffer); from inside
>> a callback registered with evhttp_set_cb don't work as expected.
> 
> In fact, the POST-ed data is available with EVBUFFER_LENGTH
> (req->input_buffer) & EVBUFFER_DATA(req->input_buffer) as tge
> regress_http.c test example shows. But this is not well documented, and
> perhaps might not work for big data.
> 
> Of course, in the usual case, the POST-ed data is coming from
> submitting an HTML form, so its Content-type is
> "application/x-www-form-urlencoded" and the application has to decode
> that.
> 
> What I don't know is what happens when the web client (e.g. some
> Firefox browser in my case) sends the data in several write(2) or send
> (2) system calls. This probably could happen (I suppose) when the data
> is large enough (e.g >10kbytes), as could be the case when a TEXTAREA
> HTML element is implied.
> 
> In that case, I don't understand if the libevent is buffering the
> entire HTTP request (so that the HTTP callback is always called once,
> after all the buffering succeeded) or not.
> 
> Cheers.
> 
> -- 
> Basile STARYNKEVITCH         http://starynkevitch.net/Basile/
> email: basile<at>starynkevitch<dot>net mobile: +33 6 8501 2359
> 8, rue de la Faiencerie, 92340 Bourg La Reine, France
> *** opinions {are only mine, sont seulement les miennes} ***
> ***********************************************************************
> To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
> unsubscribe libevent-users    in the body.
***********************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users    in the body.