Make Tor compile with Libevent 1.0 again.

This commit is contained in:
Nick Mathewson 2009-06-04 03:24:53 -04:00
parent c0af3cdfb6
commit 33b1d714e7
4 changed files with 23 additions and 3 deletions

View File

@ -273,7 +273,7 @@ save_CPPFLAGS="$CPPFLAGS"
LIBS="-levent $TOR_LIB_WS32 $LIBS"
LDFLAGS="$TOR_LDFLAGS_libevent $LDFLAGS"
CPPFLAGS="$TOR_CPPFLAGS_libevent $CPPFLAGS"
AC_CHECK_FUNCS(event_get_version event_get_version_number event_get_method event_set_log_callback evdns_set_outgoing_bind_address)
AC_CHECK_FUNCS(event_get_version event_get_version_number event_get_method event_set_log_callback evdns_set_outgoing_bind_address event_base_loopexit)
AC_CHECK_MEMBERS([struct event.min_heap_idx], , ,
[#include <event.h>
])

View File

@ -134,7 +134,6 @@ tor_event_free(struct event *ev)
/** Global event base for use by the main thread. */
struct event_base *the_event_base = NULL;
/* This is what passes for version detection on OSX. We set
* MACOSX_KQUEUE_IS_BROKEN to true iff we're on a version of OSX before
* 10.4.0 (aka 1040). */
@ -188,6 +187,18 @@ tor_libevent_get_base(void)
return the_event_base;
}
#ifndef HAVE_EVENT_BASE_LOOPEXIT
/* Replacement for event_base_loopexit on some very old versions of Libevent
that we are not yet brave enough to deprecate. */
int
tor_event_base_loopexit(struct event_base *base, struct timeval *tv)
{
tor_assert(base == the_event_base);
return event_loopexit(tv);
}
#endif
/** Return the name of the Libevent backend we're using. */
const char *
tor_libevent_get_method(void)

View File

@ -33,6 +33,15 @@ struct event *tor_evsignal_new(struct event_base * base, int sig,
void tor_event_free(struct event *ev);
#endif
/* XXXX022 If we can drop support for Libevent before 1.1, we can
* do without this wrapper. */
#ifdef HAVE_EVENT_BASE_LOOPEXIT
#define tor_event_base_loopexit event_base_loopexit
#else
struct timeval;
int tor_event_base_loopexit(struct event_base *base, struct timeval *tv);
#endif
void tor_libevent_initialize(void);
struct event_base *tor_libevent_get_base(void);
const char *tor_libevent_get_method(void);

View File

@ -395,7 +395,7 @@ connection_start_reading_from_linked_conn(connection_t *conn)
* the end of its run through the current connections and lets us
* activate read events for linked connections. */
struct timeval tv = { 0, 0 };
event_base_loopexit(tor_libevent_get_base(), &tv);
tor_event_base_loopexit(tor_libevent_get_base(), &tv);
}
} else {
tor_assert(smartlist_isin(active_linked_connection_lst, conn));