Nick just announced two new libevent releases. Here is his summary.
You can find the source in the usual place:
This is a bugfix-only release, and some of the bugs were kind of nasty. I’d recommend that you upgrade, especially if you are writing code that uses epoll or evdns.
Changes in 1.4.12-stable:
- Try to contain degree of failure when running on a win32 version so heavily firewalled that we can’t fake a socketpair.
- Fix an obscure timing-dependent, allocator-dependent crash in the evdns code.
- Use _VA_ARGS_ syntax for varargs macros in event_rpcgen when compiler is not GCC.
- Activate fd events in a pseudorandom order with O(N) backends, so that we don’t systematically favor low fds (select) or earlier-added fds (poll, win32).
- Fix another pair of fencepost bugs in epoll.c. [Patch from Adam Langley.]
- Do not break evdns connections to nameservers when our IP changes.
- Set truncated flag correctly in evdns server replies.
- Disable strict aliasing with GCC: our code is not compliant with it.
The first alpha release in the long-promised Libevent 2.0 series is finally out. You can download Libevent 2.0.2-alpha from:
This is an alpha release. Libevent 2.0 is not finished. There will be bugs, and we make no promises about the stability of any APIs introduced in the 2.0.x-alpha releases. When you find bugs, please let us know.
Libevent 2.0 is intended to be backward compatible with the Libevent 1.4 APIs[*]. Any program that worked with Libevent 1.4 should still work with Libevent 2.0, unless we screwed up. Please test your programs when you have a chance, so that if we did screw up, we can notice soon.
[*] Unless you were messing around with the internals of internal structures.
This release adds many new features to the previous alpha release, and fixes many bugs. See the ChangeLog for full details. Highlights include:
- evdns is now threadsafe, with locking support
- There’s an evconnlistener type that you can use to abstract cross-platform differences in accepting connections.
- The evbuffer interface (and therefore bufferevents) now supports zero-copy much better.
- About a zillion fixes for tricky bugs in the new Libevent 2.0.1-alpha code.
Special thanks to everybody who helped find bugs and improve the code, especially James Mansion, Zack Weinberg, and Joachim Bauch.