00001
00002
00003
00004 #ifndef _TOR_COMPAT_LIBEVENT_H
00005 #define _TOR_COMPAT_LIBEVENT_H
00006
00007 #include "orconfig.h"
00008
00009 struct event;
00010 struct event_base;
00011
00012 #ifdef HAVE_EVENT2_EVENT_H
00013 #include <event2/util.h>
00014 #else
00015 #define evutil_socket_t int
00016 #endif
00017
00018 void configure_libevent_logging(void);
00019 void suppress_libevent_log_msg(const char *msg);
00020
00021 #ifdef HAVE_EVENT2_EVENT_H
00022 #define tor_event_new event_new
00023 #define tor_evtimer_new evtimer_new
00024 #define tor_evsignal_new evsignal_new
00025 #define tor_event_free event_free
00026 #define tor_evdns_add_server_port(sock, tcp, cb, data) \
00027 evdns_add_server_port_with_base(tor_libevent_get_base(), \
00028 (sock),(tcp),(cb),(data));
00029
00030 #else
00031 struct event *tor_event_new(struct event_base * base, evutil_socket_t sock,
00032 short what, void (*cb)(evutil_socket_t, short, void *), void *arg);
00033 struct event *tor_evtimer_new(struct event_base * base,
00034 void (*cb)(evutil_socket_t, short, void *), void *arg);
00035 struct event *tor_evsignal_new(struct event_base * base, int sig,
00036 void (*cb)(evutil_socket_t, short, void *), void *arg);
00037 void tor_event_free(struct event *ev);
00038 #define tor_evdns_add_server_port evdns_add_server_port
00039 #endif
00040
00041
00042
00043 #ifdef HAVE_EVENT_BASE_LOOPEXIT
00044 #define tor_event_base_loopexit event_base_loopexit
00045 #else
00046 struct timeval;
00047 int tor_event_base_loopexit(struct event_base *base, struct timeval *tv);
00048 #endif
00049
00050 void tor_libevent_initialize(void);
00051 struct event_base *tor_libevent_get_base(void);
00052 const char *tor_libevent_get_method(void);
00053 void tor_check_libevent_version(const char *m, int server,
00054 const char **badness_out);
00055 void tor_check_libevent_header_compatibility(void);
00056 const char *tor_libevent_get_version_str(void);
00057
00058 #endif
00059