/**
* \file compat_libevent.c
- * \brief Wrappers to handle porting between different versions of libevent.
- *
- * In an ideal world, we'd just use Libevent 2.0 from now on. But as of June
- * 2012, Libevent 1.4 is still all over, and some poor souls are stuck on
- * Libevent 1.3e. */
+ * \brief Wrappers and utility functions for Libevent.
+ */
#include "orconfig.h"
#include "compat.h"
#include "orconfig.h"
#include "testsupport.h"
-struct event;
-struct event_base;
+#include <event2/event.h>
+
#ifdef USE_BUFFEREVENTS
-struct bufferevent;
-struct ev_token_bucket_cfg;
-struct bufferevent_rate_limit_group;
+#include <event2/bufferevent.h>
#endif
-#include <event2/util.h>
-
void configure_libevent_logging(void);
void suppress_libevent_log_msg(const char *msg);
void tor_gettimeofday_cached_monotonic(struct timeval *tv);
#ifdef COMPAT_LIBEVENT_PRIVATE
-/** A number representing a version of Libevent.
- This is a 4-byte number, with the first three bytes representing the
- major, minor, and patchlevel respectively of the library. The fourth
- byte is unused.
+/** Macro: returns the number of a Libevent version as a 4-byte number,
+ with the first three bytes representing the major, minor, and patchlevel
+ respectively of the library. The fourth byte is unused.
This is equivalent to the format of LIBEVENT_VERSION_NUMBER on Libevent
- 2.0.1 or later.
-*/
-typedef uint32_t le_version_t;
-
-/** @{ */
-/** Macros: returns the number of a libevent version as a le_version_t */
+ 2.0.1 or later. */
#define V(major, minor, patch) \
(((major) << 24) | ((minor) << 16) | ((patch) << 8))
-/** @} */
STATIC void
libevent_logging_callback(int severity, const char *msg);
#define PERIODIC_TIMER_FLAGS EV_PERSIST
/* DOCDOC poll_interval_tv */
-static struct timeval poll_interval_tv = {15, 0};
-/* Note: If you port this file to plain Libevent 2, you can make
- * poll_interval_tv const. It has to be non-const here because in
- * libevent 1.x, event_add expects a pointer to a non-const struct
- * timeval. */
+static const struct timeval poll_interval_tv = {15, 0};
/** Create a process-termination monitor for the process specifier
* given in <b>process_spec</b>. Return a newly allocated