diff options
author | Nick Mathewson <nickm@torproject.org> | 2009-06-04 01:05:23 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2009-06-12 14:27:52 -0400 |
commit | e5b88dc83fb44622f2b0f9c0c242907d1c02311f (patch) | |
tree | 4a3932831da9df966b74ddf59b16aaa2445edb12 /src/common/compat_libevent.h | |
parent | cfce7d5deab7839c0ac67c3777e70a2264176ca0 (diff) | |
download | tor-e5b88dc83fb44622f2b0f9c0c242907d1c02311f.tar.gz tor-e5b88dc83fb44622f2b0f9c0c242907d1c02311f.zip |
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.h | 39 |
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 0000000000..a95285f460 --- /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 + |