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

This commit is contained in:
Nick Mathewson 2012-01-09 16:54:19 -05:00
commit 26e85fcce4

View File

@ -862,6 +862,7 @@ end:
/* === Test for bufferevent_socket_connect_hostname */ /* === Test for bufferevent_socket_connect_hostname */
static int total_connected_or_failed = 0; static int total_connected_or_failed = 0;
static int total_n_accepted = 0;
static struct event_base *be_connect_hostname_base = NULL; static struct event_base *be_connect_hostname_base = NULL;
/* Implements a DNS server for the connect_hostname test and the /* Implements a DNS server for the connect_hostname test and the
@ -995,7 +996,11 @@ nil_accept_cb(struct evconnlistener *l, evutil_socket_t fd, struct sockaddr *s,
{ {
int *p = arg; int *p = arg;
(*p)++; (*p)++;
++total_n_accepted;
/* don't do anything with the socket; let it close when we exit() */ /* don't do anything with the socket; let it close when we exit() */
if (total_n_accepted >= 3 && total_connected_or_failed >= 5)
event_base_loopexit(be_connect_hostname_base,
NULL);
} }
struct be_conn_hostname_result { struct be_conn_hostname_result {
@ -1015,14 +1020,14 @@ be_connect_hostname_event_cb(struct bufferevent *bev, short what, void *ctx)
if ((what & BEV_EVENT_CONNECTED) || (what & BEV_EVENT_ERROR)) { if ((what & BEV_EVENT_CONNECTED) || (what & BEV_EVENT_ERROR)) {
int r; int r;
++total_connected_or_failed;
TT_BLATHER(("Got %d connections or errors.", total_connected_or_failed));
if ((r = bufferevent_socket_get_dns_error(bev))) { if ((r = bufferevent_socket_get_dns_error(bev))) {
got->dnserr = r; got->dnserr = r;
TT_BLATHER(("DNS error %d: %s", r, TT_BLATHER(("DNS error %d: %s", r,
evutil_gai_strerror(r))); evutil_gai_strerror(r)));
} } ++total_connected_or_failed;
if (total_connected_or_failed >= 5) TT_BLATHER(("Got %d connections or errors.", total_connected_or_failed));
if (total_n_accepted >= 3 && total_connected_or_failed >= 5)
event_base_loopexit(be_connect_hostname_base, event_base_loopexit(be_connect_hostname_base,
NULL); NULL);
} }