Merge remote-tracking branch 'origin/patches-2.0'

This commit is contained in:
Nick Mathewson 2011-05-20 23:24:43 -04:00
commit 63d37bdd3e

16
http.c
View File

@ -2300,21 +2300,21 @@ evhttp_make_request(struct evhttp_connection *evcon,
req->evcon = evcon; req->evcon = evcon;
EVUTIL_ASSERT(!(req->flags & EVHTTP_REQ_OWN_CONNECTION)); EVUTIL_ASSERT(!(req->flags & EVHTTP_REQ_OWN_CONNECTION));
TAILQ_INSERT_TAIL(&evcon->requests, req, next);
/* If the connection object is not connected; make it so */ /* If the connection object is not connected; make it so */
if (!evhttp_connected(evcon)) { if (!evhttp_connected(evcon)) {
int res = evhttp_connection_connect(evcon); int res = evhttp_connection_connect(evcon);
/* /* evhttp_connection_fail(), which is called through
* Enqueue the request only if we aren't going to * evhttp_connection_connect(), assumes that req lies in
* return failure from evhttp_make_request(). * evcon->requests. Thus, enqueue the request in advance and r
*/ * it in the error case. */
if (res == 0) if (res != 0)
TAILQ_INSERT_TAIL(&evcon->requests, req, next); TAILQ_REMOVE(&evcon->requests, req, next);
return res; return res;
} }
TAILQ_INSERT_TAIL(&evcon->requests, req, next);
/* /*
* If it's connected already and we are the first in the queue, * If it's connected already and we are the first in the queue,
* then we can dispatch this request immediately. Otherwise, it * then we can dispatch this request immediately. Otherwise, it