Drop libevent and use our own event handling again.
authorGuus Sliepen <guus@tinc-vpn.org>
Thu, 29 Nov 2012 11:28:23 +0000 (12:28 +0100)
committerGuus Sliepen <guus@tinc-vpn.org>
Thu, 29 Nov 2012 11:28:23 +0000 (12:28 +0100)
commit6bc5d626a8726fc23365ee705761a3c666a08ad4
tree72fc26b25703463fcde13c6cfa13fd1579ee3d53
parentd30b9e1272fef18070d37d10b2b3e4bb2fc07f59
Drop libevent and use our own event handling again.

There are several reasons for this:

- MacOS/X doesn't support polling the tap device using kqueue, requiring a
  workaround to fall back to select().
- On Windows only sockets are properly handled, therefore tinc uses a second
  thread that does a blocking ReadFile() on the TAP-Win32/64 device. However,
  this does not mix well with libevent.
- Libevent, event just the core, is quite large, and although it is easy to get
  and install on many platforms, it can be a burden.
- Libev is more lightweight and seems technically superior, but it doesn't
  abstract away all the platform differences (for example, async events are not
  supported on Windows).
28 files changed:
README
README.git
configure.in
doc/tinc.texi
have.h
m4/libevent.m4 [deleted file]
src/Makefile.am
src/connection.c
src/connection.h
src/control.c
src/event.c [new file with mode: 0644]
src/event.h [new file with mode: 0644]
src/graph.c
src/logger.c
src/meta.c
src/net.c
src/net.h
src/net_packet.c
src/net_setup.c
src/net_socket.c
src/node.c
src/node.h
src/protocol.c
src/route.c
src/sptps_test.c
src/tincctl.c
src/tincd.c
src/top.c