aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2009-06-04 03:24:53 -0400
committerNick Mathewson <nickm@torproject.org>2009-06-12 14:27:53 -0400
commit33b1d714e779a714c2d55e5da09d0e3c682f273a (patch)
tree181298ff8014f9463d17f14d52d30150336410a6 /src
parentc0af3cdfb6816659031fed5a1b8feec5d457b608 (diff)
downloadtor-33b1d714e779a714c2d55e5da09d0e3c682f273a.tar.gz
tor-33b1d714e779a714c2d55e5da09d0e3c682f273a.zip
Make Tor compile with Libevent 1.0 again.
Diffstat (limited to 'src')
-rw-r--r--src/common/compat_libevent.c13
-rw-r--r--src/common/compat_libevent.h9
-rw-r--r--src/or/main.c2
3 files changed, 22 insertions, 2 deletions
diff --git a/src/common/compat_libevent.c b/src/common/compat_libevent.c
index ce9f6a0fd3..d9843c9c3c 100644
--- a/src/common/compat_libevent.c
+++ b/src/common/compat_libevent.c
@@ -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)
diff --git a/src/common/compat_libevent.h b/src/common/compat_libevent.h
index 5482c479fe..b70f8d3083 100644
--- a/src/common/compat_libevent.h
+++ b/src/common/compat_libevent.h
@@ -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);
diff --git a/src/or/main.c b/src/or/main.c
index 1b716f93a5..c808845192 100644
--- a/src/or/main.c
+++ b/src/or/main.c
@@ -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));