I found that libebvent's HTTP Server cannot work properly in pipelined mode.
The problem is in code

   if (req->ntoread == 0) {
        bufferevent_disable(evcon->bufev, EV_READ);
        /* Completed content length */
        evhttp_connection_done(evcon);
        return;
    }

in pipeline mode the req->ntoread go negative (previous request eat too much
of data by eating start of the next request), and connection is in unusable
state. No more handlers ever called and connection is not dropped. I think
it is rather strange that libevent's HTTP is so archaic. Are there any plans
to implement the modern HTTP with pipelining?

Best regards
Anton Zemlyanov

Reply via email to