If you provide write-callback on bufferevent_setcb(), I think you should get the callback on accept since the write buffer is empty and lower than the watermark. Is that something changed in libevent v2?
And also, I think you could explicitly call the callback chain on new connection. Here's a sample code for your idea. https://github.com/wolkykim/libasyncd/blob/master/src/ad_server.c#L631 Libasyncd explicitly do this to clearly give the INIT status to user callbacks. So in this case, user callback get 2 calls on accept. One with INIT flag and the other with WRITE flag. Hope it helps. On Fri, May 16, 2014 at 11:00 AM, Mark Ellzey <[email protected]> wrote: > On Mon, May 12, 2014 at 12:23:42PM -0700, Scott Dorr wrote: > > In libevent 2.0.21, I'm not seeing a way to get a callback triggered on > accept of an http connection. Looking through the libevent code, I don't > see a way to do that, either -- or I'm missing it completely. :) > > > > Is there a way to get a callback triggered on accept of an http > connection using the evhttp API? Or is having your callback triggered > post/accept/read/parse the only option? (other than using the generic > libevent API to accept TCP network events and then slide over to using the > http helper funcs after the fact) > > > > Thanks! > > If you use libevhtp you can set the following callbacks for pre and post > accept: > > void evhtp_set_pre_accept_cb(evhtp_t * htp, evhtp_pre_accept_cb cb, void * > arg); > void evhtp_set_post_accept_cb(evhtp_t * htp, evhtp_post_accept_cb cb, void > * arg); > > https://github.com/ellzey/libevhtp > > And I urge others to start testing evhtp2: > https://github.com/ellzey/libevhtp/tree/libevhtp2 > This is the final step before getting merged into libevent. > > (psst, websocket support) > *********************************************************************** > To unsubscribe, send an e-mail to [email protected] with > unsubscribe libevent-users in the body. >
