aboutsummaryrefslogtreecommitdiff
path: root/src/common/compat_libevent.h
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2009-06-04 01:05:23 -0400
committerNick Mathewson <nickm@torproject.org>2009-06-12 14:27:52 -0400
commite5b88dc83fb44622f2b0f9c0c242907d1c02311f (patch)
tree4a3932831da9df966b74ddf59b16aaa2445edb12 /src/common/compat_libevent.h
parentcfce7d5deab7839c0ac67c3777e70a2264176ca0 (diff)
downloadtor-e5b88dc83fb44622f2b0f9c0c242907d1c02311f.tar
tor-e5b88dc83fb44622f2b0f9c0c242907d1c02311f.tar.gz
Update Tor to use Libevent 2.0 APIs when available.
This patch adds a new compat_libevent.[ch] set of files, and moves our Libevent compatibility and utilitity functions there. We build them into a separate .a so that nothing else in src/commmon depends on Libevent (partially fixing bug 507). Also, do not use our own built-in evdns copy when we have Libevent 2.0, whose evdns is finally good enough (thus fixing Bug 920).
Diffstat (limited to 'src/common/compat_libevent.h')
-rw-r--r--src/common/compat_libevent.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/common/compat_libevent.h b/src/common/compat_libevent.h
new file mode 100644
index 000000000..a95285f46
--- /dev/null
+++ b/src/common/compat_libevent.h
@@ -0,0 +1,39 @@
+/* Copyright (c) 2009, The Tor Project, Inc. */
+/* See LICENSE for licensing information */
+
+#ifndef _TOR_COMPAT_LIBEVENT_H
+#define _TOR_COMPAT_LIBEVENT_H
+
+#include "orconfig.h"
+
+#ifdef HAVE_EVENT2_EVENT_H
+#include <event2/event.h>
+#else
+#include <event.h>
+#define evutil_socket_t int
+#endif
+
+void configure_libevent_logging(void);
+void suppress_libevent_log_msg(const char *msg);
+
+#ifdef HAVE_EVENT2_EVENT_H
+#define tor_event_new event_new
+#define tor_evtimer_new evtimer_new
+#define tor_evsignal_new evsignal_new
+#define tor_event_free event_free
+#else
+struct event *tor_event_new(struct event_base * base, evutil_socket_t sock,
+ short what, void (*cb)(evutil_socket_t, short, void *), void *arg);
+struct event *tor_evtimer_new(struct event_base * base,
+ void (*cb)(evutil_socket_t, short, void *), void *arg);
+struct event *tor_evsignal_new(struct event_base * base, int sig,
+ void (*cb)(evutil_socket_t, short, void *), void *arg);
+void tor_event_free(struct event *ev);
+#endif
+
+void tor_libevent_initialize(void);
+struct event_base *tor_libevent_get_base(void);
+const char *tor_libevent_get_method(void);
+
+#endif
+