Race condition between event_persist_closure and event_callback_finalize_many_ #104

Closed
JohnOhl opened this Issue Jan 24, 2014 · 3 comments

Projects

None yet

2 participants

@JohnOhl
JohnOhl commented Jan 24, 2014

Using the latest checkout from git, the following race condition is observable with many bufferevents on a single base.

If bufferevent_free is called while event_persist_closure is currently processing, a segfault can occur. Take the following scenario:

  • event_persist_closure is currently processing on Thread 1
  • bufferevent_free is called from Thread 2, it pends on the base's mutex
  • event_persist closure releases the mutex @ EVBASE_RELEASE_LOCK(base, th_base_lock);
  • Thread 1 then yields processing to thread 2
  • bufferevent_free continues processing after obtaining the base mutex and via bufferevent_decref_and_unlock_; event_callback_finalize_many_ is then executed, changing the callbacks for the bufferevent to bufferevent_finalize_cb_.
  • Thread 2 then yields back to thread 1 who was waiting to execute the callback which was changed from the proper 3 variable callback it was supposed to execute, to bufferevent_finalize_cb_. The wrong callback (bufferevent_finalize_cb_) is then executed causing a segfault.

I can reproduce this in our rather large server application using CentOS 6.4 x86_64 and OSX 10.9.

I added a few extra assertions to the end of event_persist_closure (As follows):

    static inline void
    event_persist_closure(struct event_base *base, struct event *ev)
    {
            ...
        EVBASE_RELEASE_LOCK(base, th_base_lock);
        event_debug((
            "event_persist_closure: event: %p, %s%s%scall %p",
            ev,
            ev->ev_res & EV_READ ? "EV_READ " : " ",
            ev->ev_res & EV_WRITE ? "EV_WRITE " : " ",
            ev->ev_res & EV_CLOSED ? "EV_CLOSED " : " ",
            ev->ev_callback));
        EVUTIL_ASSERT(*ev->ev_callback != bufferevent_finalize_cb_);
        EVUTIL_ASSERT(ev->ev_evcallback.evcb_closure == EV_CLOSURE_EVENT_PERSIST);
        (*ev->ev_callback)(ev->ev_fd, ev->ev_res, ev->ev_arg);
    }

And lastly I added a log to event_process_active_single_queue just before the switch statement:

    event_debug(("closure_switch(%d)", evcb->evcb_closure));
    switch (evcb->evcb_closure) {

A copy of a custom log showing the series of events:

    Thread 1 T:01/24/14 15:46:48 - Event [debug]: closure_switch(2)
    Thread 1 T:01/24/14 15:46:48 - Event [debug]: event_add: event: 0x105019818 (fd 21), EV_READ   EV_TIMEOUT call 0x100058d50
    Thread 1 T:01/24/14 15:46:48 - Event [debug]: event_add: event 0x105019818, timeout in 32313 seconds 403099 useconds, call 0x100058d50
    Thread 1 T:01/24/14 15:46:48 - Event [debug]: event_add_nolock_ in event_persist_closure
    Thread 2 T:01/24/14 15:46:48 - I:127.0.0.1 - Freeing bufferevent
    Thread 2 T:01/24/14 15:46:48 - Event [debug]: event_callback_finalize_many_: 3 events finalizing
    Thread 2 T:01/24/14 15:46:48 - Event [debug]: event_del: 0x105019818 (fd 21), callback 0x100058d50
    Thread 2 T:01/24/14 15:46:48 - Event [debug]: event_del: 0x105019898 (fd 21), callback 0x100058dc0
    Thread 2 T:01/24/14 15:46:48 - I:127.0.0.1 - Freed bufferevent
    Thread 1 T:01/24/14 15:46:48 - Event [debug]: event_persist_closure: event: 0x105019818, EV_READ   call 0x100058d50
    Thread 1 T:01/24/14 15:46:48 - Event [err]: /Users/John/Documents/Git/Server/lib/libevent/event.c:1508: Assertion *ev->ev_callback != bufferevent_finalize_cb_ failed in event_persist_closure

Any thoughts?

@JohnOhl
JohnOhl commented Jan 25, 2014

I've investigated it further and it I'm not positive event_callback_finalize_many_ is so much as changing the pointer for the wrong callback as it is just leaving a garbage value behind that gets picked up in the race via event_persist_closure. I'm not 100% sure of the inner workings of these functions, but please let me know if I'm on to something here ;-).

Assuming all this could be solved by ensuring that only the base-loop thread executes bufferevent_free - I'll try re-arranging some things and see if that solves it in the short term.

Thanks!

@nmathewson
Member

Interesting! I think the solution here is possibly to change the logic so that we grab the relevant values from evcb (including) before we release the lock, but I want to look at the rest of the code a bit before I get too sure about that.

@JohnOhl JohnOhl added a commit to JohnOhl/libevent that referenced this issue Jan 27, 2014
@JohnOhl JohnOhl Tweaked callbacks to prevent race condition (libevent#104) 40830f1
@JohnOhl JohnOhl added a commit to JohnOhl/libevent that referenced this issue Jan 27, 2014
@JohnOhl JohnOhl Tweaked callbacks to prevent race condition (libevent#104) 2ea15ed
@JohnOhl JohnOhl closed this Jan 27, 2014
@JohnOhl JohnOhl reopened this Jan 27, 2014
@nmathewson
Member

I've merged the patch here. Please reopen if this wasn't the right fix.

@nmathewson nmathewson closed this Jan 30, 2014
@azat azat added a commit to azat/libevent that referenced this issue Mar 29, 2014
@azat azat Merge remote-tracking branch 'origin/master' into use-rbtree-for-dns-…
…hostsdb-build

* origin/master:
  Fix a crash in evdns related to shutting down evdns
  Add missing headerfile for cmake
  regress_dns: fix leaks in getaddrinfo_async{,_cancel_stress} tests
  Fix a crash in evdns related to shutting down evdns
  Increment version to 2.1.4-alpha-dev
  Update release date in changelog
  Fixup make install for cmake projects
  Renamed sin to saddr due to name conflict
  Correctly skip ipv6 http test on systems without ipv6
  Remove integer-overflow unit tests
  evtag: detect tags over 32-bits earlier
  Catch over-large port numbers early in http
  Fix ubsan warnings when parsing ipv4/ipv6 addrs
  Fix a use-after-free error on EV_CLOSURE_EVENT_FINALIZE callbacks
  Fix an illegal read error in the evbuffer_add_reference tests
  Add new APIs to whatsnew-2.1
  Increment version to 2.1.4-alpha
  Bring changelog up to date for 2.1.4-alpha
  Avoid double-close paths in http tests
  Add missing include to regress_finalize.h
  Skip http/ipv6_for_domain test when we have no ipv6 support
  Add an include to evrpc-internal to fix openbsd compilation warning
  Heap-allocate zlib data structure in regress_zlib tests
  Fix consts in WIN32-Code/getopt*.[ch]
  Fix duplicate paragraph in evbuffer_ptr documentation
  Initialize async bufferevent timeout CBs unconditionally
  add a cast to https-client.c
  Export event_extra not event_extras.
  Update to the latest version of tinytest
  Fix 'make distcheck' by adding regress.gen.[ch] to DISTCLEANFILES
  Move assert(ev) to before we use ev in EV_CLOSURE_EVENT_FINALIZE case
  Add -Qunused-arguments for clang on macos
  Add option to build shared library
  Do not offer EV_FEATURE_EARLY_CLOSE if we have no EPOLLRDHUP
  Stop checking for inet_aton; we don't use it.
  Rename event_extras to event_extra
  BUGFIX: Fix compilation on systems with EPOLLRDHUP undefined.
  Add cmake-related files to .gitignore
  Added -Qunused-arguments for clang on macosx
  bufferevent_pair: don't call downcast(NULL)
  Tweaked callbacks to prevent race condition (libevent#104)
  Tweaked callbacks to prevent race condition (libevent#104)
  Added a Travis-CI configuration file.
  Check does arch have the epoll_create and __NR_epoll_wait syscalls.
  Check for OSX when checking for clang.
  Guard against EVENT_NOWIN32 being set during testing.
  Fix https-client compilation on Windows.
  CMake: Get rid of python not found warning when regress tests turned off.
  Fix CMake compile when OpenSSL is disabled.
  Split epoll lookup table into a separate header file
  Expand EV_CLOSED documentation a bit
  Disclaimerize cmake a little in the README
  Fix broken autotools build.
  Fix a c90 warning
  Check if we're on OSX before disabling deprecation in le-proxy
  Change all uses of WIN32 to _WIN32
  Fix include bug.
  Implemented EV_CLOSED event for epoll backend (EPOLLRDHUP).
  Forgotten headers for old nmake project compatability.
  Clean up the README some.
  Update README with CMake build instructions.
  Rename README to README.md and use markdown to format.
  Fix so that old nmake project still builds.
  Set USE_DEBUG=1 on EVENT__ENABLE_VERBOSE_DEBUG
  Some work on making it possible to simply do add_subdirectory() on the project.
  Fix typo
  Add CMake config and install targets.
  Fix even more coverity warnings.
  Fix a couple of compilation warnings in regress_http.c
  Remove spurious checks in evrpc.c error cases (coverity)
  Whoops; fix compilation in bench.c
  Fix coverity warnings in benchmark tools.
  Fix a pile of coverity warnings in the unit tests
  Update unit test to make sure that the callback happens after the output data is written
  evhttp_request_set_on_complete_cb to be more specific about what the function actually does and usage
  Provide on request complete callback facility
  Added unit test for max event counts
  Fixed bug using wrong variable in max event compare
  Add access to max event count stats
  Remove unneeded declaration in bufferevent-internal.h
  Fix needless bufferevent includes in evdns.c
  Fix a couple of "#ifdef WIN32" instances
  Sample HTTPS Client: Set hostname for SNI extension (by f69m)
  fix for ServFail from RIPE Atlas release
  Small tweaks to https-client.c
  Minor optimizations on bufferevent_trigger options
  Make bufferevent_trigger_nolock_() inline
  Unit tests for active_by_fd; unsupport active_by_fd(TIMEOUT)
  Add event_base_active_by_signal by analogy
  Sanity-check arguments to event_base_active_by_fd()
  Refactor evmap_{io,signal}_active_() to tolerate bad inputs
  Typo fixes from Linus Nordberg
  Typo fixes from Linus Nordberg
  Added EVENT__ENABLE_GCC_WARNINGS, turns all warnings into errors.
  Only look for ZLib when it is used (if tests are included).
  Fix the "make verify" target on NetBSD
  Add a "make verify_coverage" target generation coverage info.
  Get rid of unknown pragma warnings.
  Minimum required python version is 2.4.
  Change the BSD license from 4 to 3-clause.
  Added a test for testing if kqueue works with pipes.
  Fix kqueue support.
  Get rid of deprecation warnings for OpenSSL on OSX 10.7+
  Fix the make "verify" target on Windows.
  Clarify event_base_loop exit conditions
  Added a "make verify" target.
  Only test the event backends available on the system.
  Don't segfault on no found event backend.
  Fix bench_cascade program on Windows.
  Only include WIN32 getopt where it is used.
  Add copyright and licensing files for CMake modules.
  Use evutil_closesocket instead.
  Added some GCC specific options.
  Link libm on unix platforms.
  Generate a dummy evconfig-private.h so things build properly.
  More work on adding tests to CMake project
  Add all tests and benchmarks to CMake project.
  Initial CMake commit.
  Fix non-C89 variable declaration.
  Fix non-C89 variable declaration.
  Rename flush_outdated_host_addresses to clear_host_addresses
  bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated addresses
  bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated adresses
  Clarifications in response to merge req. comments
  start writing a changelog for 2.1.4-(beta?)
  update the 2.0 changelog
  Add an option to trigger bufferevent event callbacks
  Add an option to trigger bufferevent I/O callbacks
  Add watermark introspection
  Document deferred eventcb behaviour
  Fix a typo
  Try another doxygen tweak
  Small doxygen tweaks
  Allow registering callback for parsing HTTP headers
  Add a variant of evhttp_send_reply_chunk() with a callback on evhttp_write_buffer()
  https-client: code cleanup
  POST supported, args supported
  event_base_active_by_fd
5344ae4
@azat azat added a commit to azat/libevent-deb that referenced this issue Apr 15, 2014
@azat azat Merge remote-tracking branch 'github/master' into 2.1-testing
* github/master:
  ignore one more test binary
  tree.h: drop duplicated content of tree.h
  Fix a crash in evdns related to shutting down evdns
  Add missing headerfile for cmake
  regress_dns: fix leaks in getaddrinfo_async{,_cancel_stress} tests
  Fix a crash in evdns related to shutting down evdns
  Increment version to 2.1.4-alpha-dev
  Update release date in changelog
  Fixup make install for cmake projects
  Renamed sin to saddr due to name conflict
  Correctly skip ipv6 http test on systems without ipv6
  Remove integer-overflow unit tests
  evtag: detect tags over 32-bits earlier
  Catch over-large port numbers early in http
  Fix ubsan warnings when parsing ipv4/ipv6 addrs
  Fix a use-after-free error on EV_CLOSURE_EVENT_FINALIZE callbacks
  Fix an illegal read error in the evbuffer_add_reference tests
  Add new APIs to whatsnew-2.1
  Increment version to 2.1.4-alpha
  Bring changelog up to date for 2.1.4-alpha
  Avoid double-close paths in http tests
  Add missing include to regress_finalize.h
  Skip http/ipv6_for_domain test when we have no ipv6 support
  Add an include to evrpc-internal to fix openbsd compilation warning
  Heap-allocate zlib data structure in regress_zlib tests
  Fix consts in WIN32-Code/getopt*.[ch]
  Fix duplicate paragraph in evbuffer_ptr documentation
  Initialize async bufferevent timeout CBs unconditionally
  add a cast to https-client.c
  Export event_extra not event_extras.
  Update to the latest version of tinytest
  Fix 'make distcheck' by adding regress.gen.[ch] to DISTCLEANFILES
  Move assert(ev) to before we use ev in EV_CLOSURE_EVENT_FINALIZE case
  Add -Qunused-arguments for clang on macos
  Add option to build shared library
  Do not offer EV_FEATURE_EARLY_CLOSE if we have no EPOLLRDHUP
  Stop checking for inet_aton; we don't use it.
  Rename event_extras to event_extra
  BUGFIX: Fix compilation on systems with EPOLLRDHUP undefined.
  Add cmake-related files to .gitignore
  Added -Qunused-arguments for clang on macosx
  bufferevent_pair: don't call downcast(NULL)
  Tweaked callbacks to prevent race condition (libevent/libevent#104)
  Tweaked callbacks to prevent race condition (libevent/libevent#104)

Conflicts:
	.gitignore
9767fee
@azat azat added a commit to azat/libevent-deb that referenced this issue Sep 28, 2014
@azat azat Merge remote-tracking branch 'main/master' into 2.1.4-release-1
* main/master: (2897 commits)
  [Bugfix] fix bufferevent setwatermark suspend_read
  Fix several memory leaks in the unit tests.
  Fix for a677b72bd6d9d378daf9775966aa8ca574e26e67
  Make a buffer larger in the tests to avoid a scary evbuffer_copyout_from()
  Use a more precise calculation for max in time-ratelim.c
  Use evutil_weakrand() in unit tests.
  Fix a c90 warning
  Fix a dead-code warning in unit tests. CID 1193548
  Fix a use-after-free in unit tests. CID 752027
  Fix use-after-free error in EV_CLOSURE_EVENT callback
  regress_buffer: fix 'memcmp' compare size
  use correct tt macro for pointer compare
  make bufferevent_getwatermark api more robust
  [Bugfix] fix grammer error
  updates in cmake build
  Correctly handle allocation failures in evdns_getaddrinfo
  Consistently check for failure from evbuffer_pullup()
  Use FindClose for handle from FindFirstFile in http-server.c
  Change return type of evutil_load_windows_system_library_ to HMODULE
  Fix issue #127, double free for filterevents that use BEV_OPT_CLOSE_ON_FREE
  Add a few files created by "make verify" to .gitignore.
  test/regress: add simplestsignal: to track reorder bugs separately
  add a --disable-samples configure flag
  ignore config.cache/test-driver files
  Handle ENOTCAPABLE from FreeBSD - this is returned if an event in the changelist is for an FD that has been closed.
  Make http-server.c output into good html5
  Update to a more recent tinytest_macros.
  ignore one more test binary
  regress dns: drop alarm() (since windows don't have it)
  evdns: we don't need to add retry timer in transmit_to it will be done on fail
  evdns: add regress test for flag EVDNS_BASE_DISABLE_WHEN_INACTIVE without ns
  evdns: add regress for EVDNS_BASE_DISABLE_WHEN_INACTIVE base flag
  evdns: disable probing with EVDNS_BASE_DISABLE_WHEN_INACTIVE
  tree.h: drop duplicated content of tree.h
  test/http: add regress test for set family to AF_INET6
  test: add regress for evhttp_connection_set_family() with AF_INET and AF_UNSPEC
  test: add family argument for http_connection_test_()
  Fix a crash in evdns related to shutting down evdns
  Add missing headerfile for cmake
  regress_dns: fix leaks in getaddrinfo_async{,_cancel_stress} tests
  Fix a crash in evdns related to shutting down evdns
  Increment version to 2.1.4-alpha-dev
  Update release date in changelog
  Don't truncate hosts file path on Windows.
  Load hosts file on Windows.
  Add evhttp_connection_set_family() to set addrinfo->family for DNS requests
  Fixup make install for cmake projects
  Renamed sin to saddr due to name conflict
  Correctly skip ipv6 http test on systems without ipv6
  Remove integer-overflow unit tests
  evtag: detect tags over 32-bits earlier
  Catch over-large port numbers early in http
  Fix ubsan warnings when parsing ipv4/ipv6 addrs
  Fix a use-after-free error on EV_CLOSURE_EVENT_FINALIZE callbacks
  Fix an illegal read error in the evbuffer_add_reference tests
  Add new APIs to whatsnew-2.1
  Increment version to 2.1.4-alpha
  Bring changelog up to date for 2.1.4-alpha
  Avoid double-close paths in http tests
  Add missing include to regress_finalize.h
  Skip http/ipv6_for_domain test when we have no ipv6 support
  Add an include to evrpc-internal to fix openbsd compilation warning
  Heap-allocate zlib data structure in regress_zlib tests
  Fix consts in WIN32-Code/getopt*.[ch]
  Fix duplicate paragraph in evbuffer_ptr documentation
  Initialize async bufferevent timeout CBs unconditionally
  add a cast to https-client.c
  Export event_extra not event_extras.
  Update to the latest version of tinytest
  Fix 'make distcheck' by adding regress.gen.[ch] to DISTCLEANFILES
  Move assert(ev) to before we use ev in EV_CLOSURE_EVENT_FINALIZE case
  Add -Qunused-arguments for clang on macos
  Add option to build shared library
  Do not offer EV_FEATURE_EARLY_CLOSE if we have no EPOLLRDHUP
  Stop checking for inet_aton; we don't use it.
  Rename event_extras to event_extra
  BUGFIX: Fix compilation on systems with EPOLLRDHUP undefined.
  Add cmake-related files to .gitignore
  Added -Qunused-arguments for clang on macosx
  bufferevent_pair: don't call downcast(NULL)
  Tweaked callbacks to prevent race condition (https://github.com/libevent/libevent/issues/104)
  Tweaked callbacks to prevent race condition (https://github.com/libevent/libevent/issues/104)
  Added a Travis-CI configuration file.
  Check does arch have the epoll_create and __NR_epoll_wait syscalls.
  Check for OSX when checking for clang.
  Guard against EVENT_NOWIN32 being set during testing.
  Fix https-client compilation on Windows.
  CMake: Get rid of python not found warning when regress tests turned off.
  Fix CMake compile when OpenSSL is disabled.
  Split epoll lookup table into a separate header file
  Expand EV_CLOSED documentation a bit
  Disclaimerize cmake a little in the README
  Fix broken autotools build.
  Fix a c90 warning
  Check if we're on OSX before disabling deprecation in le-proxy
  Change all uses of WIN32 to _WIN32
  Fix include bug.
  Implemented EV_CLOSED event for epoll backend (EPOLLRDHUP).
  Forgotten headers for old nmake project compatability.
  Clean up the README some.
  Update README with CMake build instructions.
  Rename README to README.md and use markdown to format.
  Fix so that old nmake project still builds.
  Set USE_DEBUG=1 on EVENT__ENABLE_VERBOSE_DEBUG
  Some work on making it possible to simply do add_subdirectory() on the project.
  Fix typo
  Add CMake config and install targets.
  Fix even more coverity warnings.
  Fix a couple of compilation warnings in regress_http.c
  Remove spurious checks in evrpc.c error cases (coverity)
  Whoops; fix compilation in bench.c
  Fix coverity warnings in benchmark tools.
  Fix a pile of coverity warnings in the unit tests
  Update unit test to make sure that the callback happens after the output data is written
  evhttp_request_set_on_complete_cb to be more specific about what the function actually does and usage
  Provide on request complete callback facility
  Added unit test for max event counts
  Fixed bug using wrong variable in max event compare
  Add access to max event count stats
  Remove unneeded declaration in bufferevent-internal.h
  Fix needless bufferevent includes in evdns.c
  Fix a couple of "#ifdef WIN32" instances
  Sample HTTPS Client: Set hostname for SNI extension (by f69m)
  fix for ServFail from RIPE Atlas release
  Small tweaks to https-client.c
  Minor optimizations on bufferevent_trigger options
  Make bufferevent_trigger_nolock_() inline
  Unit tests for active_by_fd; unsupport active_by_fd(TIMEOUT)
  Add event_base_active_by_signal by analogy
  Sanity-check arguments to event_base_active_by_fd()
  Refactor evmap_{io,signal}_active_() to tolerate bad inputs
  Typo fixes from Linus Nordberg
  Typo fixes from Linus Nordberg
  Added EVENT__ENABLE_GCC_WARNINGS, turns all warnings into errors.
  Only look for ZLib when it is used (if tests are included).
  Fix the "make verify" target on NetBSD
  Add a "make verify_coverage" target generation coverage info.
  Get rid of unknown pragma warnings.
  Minimum required python version is 2.4.
  Change the BSD license from 4 to 3-clause.
  Added a test for testing if kqueue works with pipes.
  Fix kqueue support.
  Get rid of deprecation warnings for OpenSSL on OSX 10.7+
  Fix the make "verify" target on Windows.
  Clarify event_base_loop exit conditions
  Added a "make verify" target.
  Only test the event backends available on the system.
  Don't segfault on no found event backend.
  Fix bench_cascade program on Windows.
  Only include WIN32 getopt where it is used.
  Add copyright and licensing files for CMake modules.
  Use evutil_closesocket instead.
  Added some GCC specific options.
  Link libm on unix platforms.
  Generate a dummy evconfig-private.h so things build properly.
  More work on adding tests to CMake project
  Add all tests and benchmarks to CMake project.
  Initial CMake commit.
  Fix non-C89 variable declaration.
  Fix non-C89 variable declaration.
  Rename flush_outdated_host_addresses to clear_host_addresses
  bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated addresses
  bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated adresses
  Clarifications in response to merge req. comments
  start writing a changelog for 2.1.4-(beta?)
  update the 2.0 changelog
  Add an option to trigger bufferevent event callbacks
  Add an option to trigger bufferevent I/O callbacks
  Add watermark introspection
  Document deferred eventcb behaviour
  Fix a typo
  Try another doxygen tweak
  Small doxygen tweaks
  Allow registering callback for parsing HTTP headers
  Add a variant of evhttp_send_reply_chunk() with a callback on evhttp_write_buffer()
  Avoid redundant invocations of init_extension_functions for IOCP
  regress_http: add tests for evhttp_connection_get_addr()
  http: implement new evhttp_connection_get_addr() api.
  Tweak indentation
  regress_main: logging all if env EVENT_DEBUG_LOGGING_ALL isset
  add a http default content type option
  Fix another arc4random_buf-related warning
  Fix a compiler warning when checking for arc4random_buf linker breakage.
  rpcgen: Generate regress.gen.[c,h] in build rather than src dir
  Avoid racy bufferevent activation
  Fix reinit of fds with EV_WRITE but not EV_READ.
  Check CLOCK_MONOTONIC_* at runtime if needed.
  Really remove RNG seeds from the stack
  Oops; revert testing code
  Avoid other RNG initialization FS reads when urandom file is specified
  Finish a sentence
  sample: drop uri_root from base_url in http-server.
  Add an assertion for another of the complaints from coverity. See 1b065d07df196
  test_evutil_rtrim: add another missing check.
  Finalize tests: add a missing check
  DNS tests: add a missing check
  Fix some crash-on-fail cases in DNS regression tests
  Add missing check to test_evbuffer_file_segment_add_cleanup_cb
  Fix a logic error in test_evbuffer_freeze
  Fix a (failure-only) null dereference in the unit tests
  Use void casts to suppress some "unchecked return value" warns
  sample/le-proxy: Fail more gracefully if opening listener fails
  Fix an unlikely but possible error case for http connections
  Move event_debug_note_teardown_ before mm_free.
  Add some assertions to please coverity.
  Fix compilation
  Add evutil_secure_rng_set_urandom_device_file
  Remove an unreachable return statement in minheap-internal.h
  Avoid leaking segment mappings when offset is not a page multiple
  Add checks for evhttp_connection_get_server() in unit tests.
  Add evhttp_connection_get_server().
  Add Maxime Henrion to README
  libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer)
  Pass and return const for bufferevent_get_token_bucket_cfg
  Add function to fetch underlying ratelimit cfg
  We should return after arc4random_buf()
  Don't use return since return type is void and build error occurs using clang
  Added event_base_get_num_events()
  Document that arc4random is not a great cryptographic PRNG.
  When we seed from /proc/sys/kernel/random/uuid, count it as success
  restore the comment
  Fix SEGFAULT after evdns_base_resume if no nameservers installed.
  Actually use the log facility for reporting evdns problems.
  Use windows vsnprintf fixup logic on all windows environments
  Remove a debugging assert that should not have been left in
  Fix locking in bufferevent_get_options_().
  Fix a double close() bug in evhttp when the underlying bufferevent uses BEV_OPT_CLOSE_ON_FREE.
  Avoid redundant syscall if making a socket cloexec twice
  Avoid redundant syscall to make a nonblocking socket nonblocking
  If evsel->del() fails, don't leave the evmap in an inconsistent state.
  Fix dns/leak_resume_send_err test.
  Add tests for evdns_base_resume().
  Fix SEGFAULT after evdns_base_resume if no nameservers installed.
  Whoops. It is gdi.lib, not gdi32.lib. (github issue #61)
  Missed lock acquire/release in event_base_cancel_single_callback_()
  Fix test compilation with nmake: add the gdi.lib dependency
  Checking request nameserver for NULL, before using it.
  Bump version to 2.1.3-alpha-dev
  Add regress_finalize to makefile.nmake
  Set a release date
  Make http/connection_retry off-by-default
  Fix a windows compilation regression
  Fix a bug in fixing a bug in out-of-tree test-dumpevents
  Make regress_finalize work with malloc replacement disabled
  Fix some out-of-tree build bugs
  Incremement version to 2.1.3-alpha
  Add acknowledgements to readme
  Start editing the changelog for 2.1.3-alpha
  Mark the finalize stuff as experiemental in case it needs to change
  Start a changelog for Libevent 2.0.22-stable
  Clarify an important point about event_base_foreach_event()
  Fix a bug in the new main/event_foreach test
  More unit tests for initializing common timeouts.
  A test for event_get_assignment()
  Unit tests for event_base_gettimeofday_cached() and event_base_update_cache_time()
  New tests for event_base_foreach_event()
  New test for active_later->active transition on event_active
  Remove a no-longer-true XXXX comment.
  Make the event_finalize* functions return an error code
  More documentation for finalization feature
  Remove bufferevent_del_generic_timeout_cbs as now unused
  Always run pending finalizers when event_base_free() is called
  Use finalization feature so bufferevents can avoid deadlocks
  Add some verbose notes to bufferevent unit tests
  Implement event_finalize() and related functions to avoid certain deadlocks
  Make all tests pass under EVENT_DEBUG_MODE=1
  Drop extra header http_struct.h from regress_http.c
  Add test for EVREQ_HTTP_REQUEST_CANCEL into http_cancel_test()
  Add new error_cb for actual reporting of HTTP request errors.
  Fix another warning introduced in 0c6ec5d8
  Fix a warning introduced in 0c6ec5d8
  evdns: New flag to make evdns not prevent the event loop from exiting
  event_base_update_cache_time should be a no-op if the loop isn't running
  https-client: code cleanup
  Add a test with an active_later event at event_base_free time.
  Another tweak to https-client.c
  Remove http_struct.h usage in sample/https-client.c
  Add an environment variable (EVENT_DEBUG_MODE) to run unit tests in debug mode
  Do not build strlcpy.c when it will have no code.
  Specify return behavior in header for evbuffer_pullup() in corner case
  Fix a typo in a comment in buffer.h. Spotted by Alt_F4
  build test/test-script.sh on systems with a less-featureful $<
  Make --disable-libevent-regress work again
  POST supported, args supported
  Double-check next timeout when adding events
  Test: decoding just part of string with evhttp_decode_uri_internal()
  Move prototype of evhttp_decode_uri_internal() to http-internal.h
  uri decode: changed the test for the existence of the next character
  uri decode: fix for warning "use of uninitialised value"
  pull in wildcard matching code from cURL
  avoid sign mismatch warning in openssl_hostname_validation.c
  use iSECPartners code to validate hostname in certificate
  use Debian's default root certificate location
  better handling of OpenSSL errors
  https-client was putting newlines at 256-byte boundaries
  use ${OPENSSL_LIBS} instead of -lssl -lcrypto
  Add sample/https-client.c, an example of stacking evhttp as a client on top of bufferevent_ssl.
  test filling up the hash table a bit
  use hashtable instead of linked list to cache winsock errors
  make sure caching works, and we don't leak memory
  use FormatMessage for winsock errors
  a program to print out the error strings for winsock errors
  fix #73 and fix http_connection_fail_test to catch it
  Unit test for event_remove_timer with EV_PERSIST.
  Make event_remove_timer behave correctly with persistent timers
  Avoid using $(top_srcdir) in TESTS.
  Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat
  Avoid using top_srcdir in TESTS-new automakes do not like this
  Rename configure.in to configure.ac to appease newer autoconfs
  Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat
  "buffer" spelling
  remove all exes on "make clean", not just regress.exe
  Fix a locking error in bufferevent_socket_get_dns_error.
  Preliminary changes for Minix3.
  Add regress test ipv6_for_domain.
  Implement EVUTIL_ERR_IS_EAGAIN on windows.
  Fix ipv6 support for http. When URL contain domain, not IP address.
  Fix a mistake in evbuffer_remove() arguments in example http server code
  fix some hinky indentation in evhttp_make_request
  Fix typo : Dispatching instead of Dispaching
  event_base_active_by_fd
  Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5)
  Fix missing AC_PROG_SED on older Autoconfs
  When EWOULDBLOCK is not EAGAIN, treat it as equivalent to it
  Fix harmless clang enum warning
  Fix comment to refer to sample/include.am correctly
  Avoid double-close on getsockname error in evutil_ersatz_socketpair
  Avoid leaking fds on evconnlistener with no callback set
  Fix cut-and-paste err in whatsnew-2.1
  minor documentation typos
  Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled
  Increment version to 2.0.21-stable-dev
  Increment version to 2.1.2-alpha-dev
  Fix a bug when running "make verify" out-of-tree
  Clean up and clarify a little more documentation
  Make the argument to bufferevent_get_priority const
  Avoid defining recommended functions in terms of deprecated ones
  Update "what's new in Libevent 2.1"
  Bump versions to 2.1.2-alpha
  Update changelog for 2.1.2-alpha
  Update ChangeLog-2.0
  Fix a gcc warning in rtrim test
  Fix a warning when building without threading.
  Increment libtool version for 2.0.21 too
  Increment version to 2.0.21-stable
  Changelog for 2.0.21-stable
  Make ssl version check in unit tests work
  avoid valgrind false positive by zeroing epoll_event
  Make bufferevent_set_timeouts(bev, NULL, NULL) have plausible semantics
  Add an event_remove_timer() to remove timer on an event without deleting it
  Fix a couple of compile warnings in the unit tests
  Avoid crash when event_pending() called with no event_base set on event
  Use EVUTIL_SOCKET_ERROR() wrapper to save/restor errno in evhttp_connection_fail_
  add evhttp_request_get_response_code_line
  Move evutil_rtrim_lws_ to evutil.c where it belongs
  Remove internal ws from multiline http headers correctly
  Remove trailing tabs in HTTP headers as well.
  Clean up rtrim implementation
  ignore LWS after field-content in headers
  Use correct openssl libs and includes in pkgconfig file
  remove stray 'x' so print_err will compile when uncommented
  Make rpcgen_wrapper.sh work on systems without a "python2" binary
  Add a unit test in which an event is created with event_base_once() but never fires
  Free dangling event_once objects on event_base_free()
  Warn when openssl version in unit test mismatches compiled version.
  Fix renegotiation test to work around openssl 1.0.1 bug
  Use the same CFLAGS for openssl when building unit tests as with libevent
  preserve errno in evhttp_connection_fail_ for inspection by the callback
  Fix event_dlist definition when sys/queue not included
  Clean up unit test for evbuffer_file_segment_add_cleanup_cb a little
  Add a new callback to get called on evbuffer_file_segment free
  Fix compilation on mingw64 with -DUSE_DEBUG
  Fix a few mingw64 incompatibilities introduced since 2.0
  Fix some warnings found cross-compiling with mingw32
  Compile without warnings on mingw64
  Close IOCP listener socket on free when LEV_OPT_CLOSE_ON_FREE is set
  fix a few trivial documentation typos
  Use python2 rather than python
  Use python2 rather than python
  No need to reserve space if reading is suspended.
  Stop looping in "consider_reading" if reading is suspended.
  Fix typo : events instead of evets
  FIx another memleak on OOM in evdns
  Avoid a memory-leak on OOM in evdns.
  Add missing return value in event_base_foreach_event
  Don't discard SSL read event when timeout and read come close together
  Tweak patch for event_base_foreach_event()
  Expose event_base_foreach_event() as a public API.
  Prevent reference leak of bufferevent if getaddrinfo fails.
  Rename configure.in to configure.ac.
  We now require automake 1.9 or later. Modernize!
  Fix handling of no-python case for nonrecursive make
  Be quiet when making regress.gen.[ch]
  New --quiet option for event_rpcgen.py
  Make quiet build even quieter
  Rename subordinate Makefile.ams to include.am
  Switch to non-recursive makefiles
  Enable silent build rules by default. Override with V=1
  Use newer syntax for autoconf/automake init
  Increment version to 2.0.20-stable-dev
  Update ChangeLog-2.0
  Add a date to the changelog
  Increment version to 2.0.20-stable
  Initial changelog and credits for 2.0.20
  Add missing implementation for event_enable_debug_logging
  Rename event_enable_lock_debuging() to ..._debugging()
  Correctly invoke callbacks when a SSL bufferevent reads some and then blocks.
  Avoid test -e; older shs don't have one.
  Add deferred_cb_skew to list of timing-dependent tests
  Avoid unused-var warning on systems with clock_gettime but without CLOCK_MONOTONIC_COARSE
  Add explicit AC_PROG_SED to configure.in so all autoconfs will expose $(SED)
  Fix an unused variable warning on *BSD.
  Avoid segfault on weird timeout during name lookup.
  Extract common error-handling code in evconnlistener_new_bind
  Avoid double-free on error in evbuffer_add_file. Found by coverity.
  Check return value when using LEV_OPT_DEFERRED_ACCEPT. Found by coverity
  Check more setsockopt return values when binding sockets. Found by coverity
  memset sockaddr_in before using it. Found by coverity.
  Move assignment outside tt_assert in ssl unit tests. Appeases coverity.
  Add checks to various return values in unit tests. Found by coverity
  Avoid possible needless call to writev. Found by coverity.
  Remove unused variable; spotted by coverity
  Fix a shadowed variable in addfile_test_readcb; found by coverity
  Avoid memory leak in test_event_calloc unit test; found by coverity
  Add checks for functions in test-ratelim.c; found by Coverity
  Avoid more crashes/bad calls in unit tests; found by coverity
  Add some missing null checks to unit tests; found by coverity
  Fix resource leaks in the unit tests; found by coverity
  Fix various check-after-dereference issues in unit tests: found by coverity
  Set umask before calling mkstemp in unit tests. Found by coverity
  Fix another possible uninitialized read in dns regression tests. Found by coverity.
  Fix possible uninitialized read in dns regression tests. Found by coverity.
  Remove deadcode in http regression tests. Found by coverity.
  Add process.h include to evutil.c for _getpid
  Fix tinytset_skip to work with new tinytest_set_flag_ signature
  Fix compile error in win32 listener.c
  Fix a memory leak on error in evhttp_uriencode
  Win32: avoid crash when waiting forever on zero fds.
  Additional comments about OPENSSL_DIR variable, prompted by Dave Hart
  attempt to support OpenSSL in Makefile.nmake
  Make load-dependent monotonic timer tests off-by-default
  Avoid (unlikely) overflow in bench_httpclient.c
  Check return value of write() in regress.c
  Make all tests that hit the network disabled by default
  Update to latest tinytest (911b4f0349377)
  Make test_evutil_monotonic a little more tolerant
  Make th_base_lock nonrecursive
  remove a now-unused var in thread_deferred_cb_skew test
  Avoid a resource leak on error in http client benchmark
  Simplify and correct evutil_open_closeonexec_
  Avoid giving a spurious warning when timerfd support is unavailable
  Make event_pending() threadsafe.
  Add GCC annotations so that the vsprintf functions get checked properly
  Make the Makefile.nmake warning slightly less dire
  Add evutil_time.obj to Makefile.nmake
  Fix a couple of memory leaks (found with Valgrind).
  Fix a comment in test-fdleak after 077c7e949.
  Correctly check for arc4random_buf
  check for arc4random_buf at runtime, on OS X
  Make it more clear that NOLOCK means "I promise, no multithreading"
  Add caveat to docs about bufferevent_free() with data in outbuf
  Be more clear that LEV_OPT_DEFERRED_ACCEPT has tricky prereqs
  Remove unnecessary code in configure.in.
  Add an event_base_loopcontinue() to tell libevent to rescan right away
  Restore our priority-inversion-prevention code with deferreds
  Give event_base_process_active a single exit path
  Make event_base_getnpriorities work with old "implicit base" code
  Add a bufferevent_get_priority() function
  New event_get_priority() function to return an event's priority
  Replace more deferred_cb names with event_callback
  Replace deferred_cbs with event_callback-based implementation.
  event_base_assert_ok: check value of event_active_count for correctness
  Add "active later" event_callbacks to supersede deferred
  Remove the unused bits from EVLIST_ALL
  Refactor the callback part of an event into its own event_callback type
  Bump version to 2.0.19-stable-dev
  Increment version to 2.0.19-stable
  Oops; fix the *right* windows compile issue
  Fix win32 build issues: sleep, pid_t
  Start changelog for 2.0.19-stable
  Fix evdns build with threads disabled
  When retransmitting a timed-out DNS request, pick a fresh nameserver.
  Make some evdns.c debug logs more verbose
  dns-example.c can now take a resolv.conf file on the commandline
  Correctly handle running on a system where accept4 doesn't work.
  Work-around a stupid gcov-breaking bug in OSX 10.6
  Fixed potential double-readcb execution with openssl bufferevents.
  If a higher-priority event becomes active, don't continue running events of the current priority.
  Generate event-config.h with a single sed script
  Generate event-config.h with a single sed script
  When PRECISE_TIMERS is set with epoll, use timerfd for microsecond precision
  Improve the monotonic-time unit test: make it check the step size
  Simple unit tests for monotonic timers
  Implement fast/precise monotonic clocks on Windows
  Add EVENT_PRECISE_TIMER environment var for selecting precise-but-slow timer
  Refactor monotonic timer handling into a new type and set of functions; add a gettimeofday-based ratcheting implementation
  Split out time-related prototypes into time-internal.h
  Split out time-related evutil functions into a new evutil_time.c
  Split long lists in Makefile.am into one-item-per-line
  Shave 700 msec off the persistent_timeout_jump test
  If time has jumped so we'd reschedule a periodic event in the past, schedule it for the future instead
  Refactor event_persist_closure: raise and extract some common logic
  remove redundant DNS_ERR_CANCEL check, move comment
  cancel the probe request when the server is freed, and ignore cancelled probe callbacks
  Note that make_base_notifiable should not be necessary
  Implement a GetTickCount-based monotonic timer for Windows
  On Linux, use CLOCK_MONOTONIC_COARSE by default
  EVENT_BASE_FLAG_PRECISE_TIMER indicates we want fine timer precision
  Move use_monotonic and friends into event_base
  Work-around a stupid gcov-breaking bug in OSX 10.6
  Replace pipe-based notification with EVFILT_USER where possible
  Do not track use_monotonic field when is no monotonic clock
  Use mach_absolute_time() for monotonic clock support on OSX.
  Tweak the new evutil_weakrand_() code
  Change evutil_weakrand_() to avoid platform random()
  Simplify test.sh code significantly.
  Increment the version to 2.1.1-alpha-dev
  Backport: provide EVENT_LOG_* names, and deprecate _EVENT_LOG_*
  fix some typos in the 2.1 changelog
  Bump the version to Libevent 2.1.1-alpha
  Fix the website URL in the readme
  Try to finalize changelog situation for 2.1.1-alpha
  Add pending names to the README; add more entries to the changelog
  Include ws2tcpip.h from util.h to get EAI_* definitions.
  Fix some compilation warnings with msvc
  Oops; fix a merge conflict that got committed into event2/event-config.h.  Now msvc builds work again.
  Decrease MAX_REQUESTS in test-fdleak
  Include util-internal.h earlier in test-dumpevents to fix solaris build
  Fix compilation with mm-replacement disabled.
  make event_base_get_running_event build with threads disabled.
  Make check-dumpevents work with out-of-tree builds
  Make check-dumpevents.py actually get included in the tarballs
  Configure with gcc older than 2.95
  Missing ) in bufferevent_ratelim.c comment. Found by rransom
  Add missing ) to changelog; spotted by rransom
  Add a missing name to the readme.
  Increase duration and tolerance on http/connection_retry test
  Fix a compilation error with MSVC 2005 due to use of mode_t
  Temporarily disable event_queue_reinsert_timeout
  Make libevent_global_shutdown() idempotent
  Updates for whatsnew-2.1.txt
  Require at least Python 2.4 for check-dumpevents.py.
  Fix a typo in the bufferevent documentation
  Test more bufferevent_ratelim features
  Add event_base_get_running_event() to get the event* whose cb we are in
  More coverage on reinsert_timeout tests
  Make test-dumpevents build on Linux
  Fix a nasty bug in event_queue_reinsert_timeout()
  Add a unit test for event_base_dump_events()
  event_base_dump_events: Report active events tersely, and note internal events
  Fix compilation of evutil_rand on osx
  Fix typo in whatsnew-2.1.txt
  Use libevent_global_shutdown() to clean up in unit tests.
  Distribute whatsnew-2.1.txt.
  Fix another bug from rebase of libevent_global_shutdown patch
  Write a first draft of whatsnew-2.1.txt
  Tweak changelog for 2.1 even more
  Add more things to the 2.1 changelog
  Add an empty changelog section for 2.0.19-stable
  Bump version to 2.0.18-stable-dev
  Bump version to 2.0.18-stable
  Add credits to README
  Changelog for libevent 2.0.18-stable
  Add a new libevent_global_shutdown() to free all globals before exiting.
  event-read-fifo: Use EV_PERSIST appropriately
  Rename event-test.c to event-read-fifo.c.
  On Unix, remove event.fifo left by sample/event-test.c.
  Fix up sample/event-test.c to use newer interfaces and make it actually work.
  Now that event_assign() special-cases event_self_cbarg(), event_new() can stop
  Add a test for using event_self_cbarg() with event_assign().
  event_self_cbarg() works with event_assign() for consistency with event_new().
  Properly zero the kevent in kq_setup_kevent()
  Don't do clang version detection when disabling some flags
  Add a regression test for event_self_cbarg().
  Update sample/signal-test.c to use the new event_self_cbarg().
  Add event_self_cbarg() to be used in conjunction with event_new().
  event_rpcgen.py now prints status information to stdout and errors to stderr.
  Add netinet/in.h include to fix test-fdleak on openbsd
  Restore accidentally disabled nanosleep implementation of evutil_usleep.
  Fix doxygen to use new macro conventions
  Clean up lingering _identifiers.
  Apply the naming convention to our EVUTIL_IS* functions
  Have all visible internal function names end with an underscore.
  Fix some problems introduced by automated identifier cleanup script
  Make event_rpcgen.py output conform to indentifier conventions, more
  Fix all identifiers with names beginning with underscore.
  Make the generated event-config.h use correct include guards
  Stop referring to an obsolete include guard in bench_http.h
  Make event_rpcgen.py output conform to indentifier conventions
  Convert include-guard macro convention to avoid reserved identifiers
  Generate event-config.h using the correct macros.
  Convert event-config.h macros to avoid reserved identifiers
  Make event-config.h depend on Makefile.am
  Check for NULL return on win32 mm_calloc, and set ENOMEM.
  Do not use system EAI/AI values if we are not using the system getaddrinfo.
  Replace sole internal user of socklen_t with ev_socklen_t
  Fix evmap to work with HT-backed IO maps again.
  evutil_accept4() should take ev_socklen_t
  test-fdleak: Avoid perror, since it does not capture windows socket errors
  remove debugging prints
  test-fdleak: Call event callbacks event_cb.
  Remove fixed port from test-fdleak, so two instances can run in parallel
  Remove an unsafe programming practice from test-fdleak; add XX comments
  Try and fix compilation and running of test-fdleak on Windows.
  Allow compilation on machines that do not have setrlimit.
  Simply test-fdleak by running server & client sockets in the same event loop.
  Add a new test: test-fdleak which tests for fd leaks by creating many sockets.
  If accept4 is absent, fall back to accept.
  Avoid leaking fd in evutil_socket() by Linux.
  Remove the last vestiges of _EVENT_USE_EVENTLIST
  Add doxygen for event_base_dump_events
  Refactor the functions that run over every event.
  Fix an "unused return value" warning on write() in signal handler
  Start work on a 2.1 changelog and whats-new
  Add another caveat to the TCP_DEFER_ACCEPT documentation
  Support TCP_DEFER_ACCEPT sockopts for listeners
  Stop crashing in evdns when nameserver probes give a weird error
  Changed OPENSSL_LDFLAGS to OPENSSL_LIBADD
  Added OPENSSL_LDFLAGS env variable which is appended to SSL checks.
  If open(O_CLOEXEC) fails, fall back to fcntl(CLOEXEC)
  Fix up usage of reserved identifiers in ht-internal.h
  Port changes from Tor for ht-internal.h
  Invert the sense and the name of HT_CACHE_HASH_VALUES
  Synchronize with upstream tinytest
  Merge in a punctuation fix from upstream tinytest
  Move libevent 1.x headers to include/, to put all public headers in one place.
  Tweak the evutil_open_closeonexec patch to work on windows, old unixes.
  Make uses of open() close-on-exec safe by introducing evutil_open_closeonexec.
  Add a bufferevent_getcb() to find a bufferevent's current callbacks
  Also make win32select.c conditional for IDE users
  Add an empty section to the changelog for 2.0.18-stable
  Correct a name in the credits. oops
  Bump version to 2.0.17-stable-dev
  Update the credits in the readme
  Finalize the changelog
  Fix compilation on osx
  Update copyright notices to 2012
  Bump version to 2.0.17-stable
  Prefer epoll_create1 on Linuxen that have it
  Save some syscalls when constructing a socket for a bufferevent
  Save some syscalls when creating evdns sockets
  Save syscalls when constructing listener sockets for evhttp
  Use pipes for telling signals to main thread when possible
  Use a wrapper function to create the notification pipe/socketpair/eventfd
  The LEV_OPT_CLOSE_ON_EXEC flag now applies to accepted listener sockets too
  Minimize syscalls during socket creation in listener.c
  Infrastructure for using faster/fewer syscalls when creating sockets
  In the kqueue backend, do not report EBADF as an EV_READ
  Avoid crash when freeing event_iocp and using event_set_mem_functions
  Put #ifdef around some files to support alternate build systems.
  Bring the changelog up to date
  Loop on filtering SSL reads until we are blocked or exhausted.
  Replace more C99/C++ comments with oldschool /* */ comments
  Use C-style comments in C source files (for compatibility with compilers such as xlc on AIX).
  evdns: fix a bug in circular-queue implementation
  Fix a compile warning in event_reinit
  Remove the eventqueue list and the ev_next pointers.
  Make test-changelist faster
  Check changelist as part of checking representational integrity
  Restore fast-path event_reinit() for slower backends
  Make event_reinit() more robust and maintainable
  Better workaround for Linux 3.2 edge-triggered epoll bug
  Do a memberwise comparison of threading function tables
  When including an -internal.h header outside the main tree, do so early
  Allow more slop in deferred_cb_skew test; freebsd needs it
  Remove a couple of now-unused variables
  Make event_base integrity check work on windows
  Start writing a changelog for 2.0.17-stable
  Use test_timeval_diff_eq more consistently
  Make regression tests run over 3x faster.
  New evhttp function to adjust initial retry timeout
  Reduce the timeout in the main/fork test.
  Add an (internal) usleep function for use by unit tests
  Oops:remove an accidentally committed "sleep(1)" in a unit test
  Workaround in the unit tests for an apparent epoll bug in Linux 3.2
  Fix a fd leak in event_reinit()
  Fix a list corruption bug when using event_reinit() with signals present
  Check event_base correctness at end of each unit test
  Fix compilation of windows evutil_check_ifaddrs
  Add function to check referential integrity of an event_base
  Force strict validation of HTTP version in response.
  Suppress a gcc warning from ignoring fwrite return in http-sample.c
  Fix a race condition in the dns/bufferevent_connect_hostname test.
  Make evconnlistener work around bug in older Linux when getting nmapped
  Remove bogus casts of socket to int before calling ev_callback
  Backport evhttp_connection_get_bufferevent to Libevent 2.0
  Slightly clarify evbuffer_peek documentation
  Fix behavior of evbuffer_peek(buf,-1,NULL,NULL,0)
  Remove some accidentally-committed debugging code
  whitespace fixes
  check for sysctl before we use it
  Split up extra-long AC_CHECK_FUNCS/HEADERS lines in configure.in
  Use getifaddrs to detect our interfaces if possible
  Changed use of refcounts to make sure referenced chains are freed in all cases.
  Add evbuffer_copyout_from to copy data from the middle of a buffer
  Bypass event_add when using event_base_once() for a 0-sec timeout
  Fix a silly compilation error with the sun compiler
  Be absolutely sure to clear pncalls before leaving event_signal_closure
  fix windows compilation issues with new file segment code
  Fix two issues in the allow_dirty_shutdown code.
  Tweak allow_dirty_shutdown documentation
  Allow users to set allow_dirty_shutdown
  bev_ssl: Be more specific in event callbacks. evhttp in particular gets confused without at least one of BEV_EVENT_{READING|WRITING}.
  Increment version to 2.0.16-stable-dev
  Increment version to 2.0.16-stable
  Revise 2.0.16-stable changelog
  add comment to new consider_reading code
  Avoid spinning on OpenSSL reads
  Move SSL rate-limit enforcement into bytes_to_read()
  Refactor amount-to-read calculations in buffervent_ssl consider_reading()
  Revert "Avoid potential SSL read spinlocks"
  Revert "openssl bufferevent has the same issue with writing as prior commit."
  Add new entries to changelog, new credits to README
  Fix DNS memleak checks when running with malloc-replacement/debugging disabled
  Don't try to make notifiable event_base when no threading fns are configured
  Warn when unable to construct base because of failing make_base_notifiable
  openssl bufferevent has the same issue with writing as prior commit.
  Avoid potential SSL read spinlocks
  unit tests for EVBUFFER_EOL_NUL
  New EVBUFFER_EOL_NUL to read NUL-terminated strings from an evbuffer
  Tweaks, fixups, and comments on evbuffer_add_iovec
  Added evbuffer_add_iovec and unit tests.
  Improve win32 behavior of dns-sample.c codex
  Fix typo in whatsnew-2.0.txt
  Use the free-trailing-chains function in evbuffer_insert_chain too
  Fix an evbuffer crash in evbuffer_remove_buffer()
  improve test to remove at least one buffer from src
  unit test for remove_buffer bug
  Fix compile warning from saying event2/*.h inside a comment
  epoll: close fd on alloc fail at initialization
  evhttp: Add evhttp_foreach_bound_socket.
  Update copyright dates to 2011.
  New event_base_update_cache_time() to set cached_tv to current time
  Add argument checks to some memory functions in `event.c'.
  Add note about evhttp_send_reply_end to its doxygen
  More detailed message in case of libevent self-debugging failure.
  Style and comment tweaks for dns/leak* tests
  Test for commit aff6ba1
  Empty DNS reply with OK status is another way to say NODATA.
  Tests for 94fba5b and f72e8f6
  fixed typo
  added comments to describe refcounting of multicase chains
  Bump version to 2.0.15-stable-dev
  Credit a patch from a one-named user
  Increment version to 2.0.15-stable
  Add changelog for 2.0.15-stable
  bufferevent: Add functions to set/get max_single_read/write values.
  Make evbase_priority_init() and evbase_get_npriorities() threadsafe
  Add event_base_get_npriorities() function.
  refer to non-deprecated evdns functions in comments
  Make evbuffer_file_segment_types adaptable
  New EVLOOP_NO_EXIT_ON_EMPTY option to keep looping even when no events are pending
  Allow evconnlistener to be created in disabled state.
  Fix some "value never used" warnings with gcc 4.6.1
  Make write-checking fixes use tt_fail_perror
  Fixed compiler warnings for unchecked read/write calls.
  Prefer mmap to sendfile unless a DRAINS_TO_FD flag is set. Allows add_file to work with SSL.
  Make evbuffer callbacks get the right n_added value after evbuffer_add
  Use _SOURCES, not _sources, in sample/Makefile.am
  le-proxy and regress depend on openssl directly
  Add DNS_ERR_NODATA error code to handle empty replies.
  Fix docstring in dns.h
  Build with large-file support on platforms where it matters
  Clarify event_enable_debug_logging a little
  Remove calls to deprecated bufferevent functions from evhttp.c
  Add evhttp callback for bufferevent creation; this lets evhttp support SSL.
  Implement --enable-gcc-hardening configure option
  Make gcc warnings on by default, and --enable-gcc-warnings only add -Werror
  When a signal callback is activated to run multiple times, allow event_base_loopbreak to work even before they all have run.
  DNS: add ttl for negative answers using RFC 2308 idea.
  Make --enable-verbose-debug option match its help text
  Increment version to 2.0.14-stable-dev
  Credit new contributors for 2.0.14-stable
  Pick a release date for the changelog
  Bump version to 2.0.14-stable
  Use SIG_IGN instead of a do-nothing handler for signal events with kqueue
  Fix OSX build: $(OPENSSL_INCS) needs to be after $(AM_CPPFLAGS).
  clear read watermark on underlying bufferevent when creating filtering bev to fix potentially failing fragmented ssl handshakes
  Checkpoint changelog entries for 2.0.14-stable
  Correctly terminate IO on an async bufferevent on bufferevent_free
  Have test-ratelim.c support IOCP
  Make IOCP rate-limiting group support stricter and less surprising.
  Support negative arguments to _bufferevent_decrement_(read/write)_buckets()
  We need AM_CPPFLAGS when compiling bufferevent_openssl.c
  Use pkg-config (if available) to handle OpenSSL.
  Provide the autoconf m4 macros for the new OpenSSL via pkg-config stuff.
  Cleanup on 7c11e51e1ab: fix strtol usage
  Cleanup on 7c11e51e1ab: restore c90 declaration compliance
  Clean up some problems identified by Coverity.
  Make rate limiting work with common_timeout logic
  Make overlapped reads result in evbuffer callbacks getting invoked
  IOCP: don't launch reads or writes on an unconnected socket
  Try to fix 'make distcheck' errors when building out-of-tree
  Make the priority inversion code use gettime(), not evutil_gettimeofday()
  Make max_dispatch_interval able to apply only to low-priority events
  Optimization in event_process_active(): ignore maxcb & endtime for highest priority events.
  Make sure max_dispatch_callbacks is never negative
  Add event_config function to limit time/callbacks between calls to dispatch
  Solaris sendfile: correctly detect amount of data sent
  Fix request_finished memory leak with debugging turned on.
  Fix evsig_dealloc memory leak with debugging turned on.
  Another docstring fix.
  more event dbg updates
  Fix handling of group rate limits under 64 bytes of burst
  added timeout debug logs to include event ptr.
  Added usec debug in another area for debug
  Debug addition for printing usec on TIMEOUT debugging.
  Ignore deprecation warnings on OS X
  prevent nested multicast references, reworked locking
  support adding buffers to other buffers non-destructively
  Allow OS-neutral builds for platforms where some versions have arc4random_buf
  changed to --enable-verbose-debug
  Propagate errors on the underlying bufferevent to the user.
  Added --enable-event-debugging in configure
  Add missing break to evhttp_parse_request_line
  Fix typo in event_compat.h comments.
  Bump version to 2.0.13-stable-dev
  Bump version to 2.0.13-dev
  acks and changelog for 2.0.13-stable
  Give Makefile.am echo a non-null argument. msys likes this
  Fix a warning in evutil_rand when building with threads disabled
  Use AM_CPPFLAGS in sample/Makefile.am, not AM_CFLAGS
  Add doxygen to .gitignore
  Fix up test_evutil_snprintf
  Fix a test-call accidentally in the last commit
  More abstraction in test.sh
  Update Doxyfile to produce more useful output
  Revise the event/evbuffer/bufferevent doxygen for clarity and accuracy
  Use "unlimited select" on OSX so that we can have more than FD_SETSIZE fds
  Fix select.c compilation on systems with no NFDBITS
  Speed up invoke_callbacks on evbuffers when there are no callbacks
  Fix bug in SSL bufferevents backed by a bev with a write high-watermarks
  Fix a few warnings on OpenBSD
  Fix AIX build issue with TAILQ_FOREACH definition
  Don't install event_rpcgen.py when --disable-libevent-install is used
  Set the special "not found" evbuffer_ptr consistantly.
  Don't break when building tests from git without python installed
  Improve evbuffer_ptr documentation
  Tweaks to return types with end-of-buf ptrs
  Allow evbuffer_ptr to point to position 0 in an empty evbuffer
  Allow evbuffer_ptr_set to yield a point just after the end of the buffer.
  Add failing test for evbuffer_search_range.
  Simplify windows commandname logic in tinytest
  Fix tinytest invocation from windows shell
  Use the correct printf args when formatting size_t
  Check if the `evhttp_new_object' function in `http.c' returns NULL.
  Report kqueue ebadf, epipe, and eperm as EV_READ events
  Replace an assertion for event_base_free(NULL) with a check-and-warn
  Add some missing checks for mm_calloc failures
  Remove a needless branch in evbuffer_drain()
  Fix a bug in the improved EOL_CRLF code
  Fix incorrect results from evbuffer_search_eol(EOL_LF)
  Bump version to 2.0.12-stable-dev
  tweak date on changelog
  Changelog and new credits for 2.0.12-stable
  Bump version to 2.0.12-stable.  Not release just yet
  Fix regress_ssl.c build on openbsd
  Fix windows file segment mappings
  Avoid a segfault when all methods are disabled or broken
  Try to squeeze a little more speed out of EVBUFFER_EOL_CRLF
  cygwin: make it possible to build DLLs
  Roughly 20% speed increase when line-draining a buffer using EVBUFFER_EOL_CRLF
  Fix a fencepost bug in the select backend
  Make the new http_connect_fail_test use a multicast addr, not broadcast
  InitializeCriticalSectionAndSpinCount requires _WIN32_WINNT >= 0x0403.
  Allow base-notification functions to exist without setting an fd
  Reenable main/many_events_slow_add for evport in 2.1
  evport: Remove artificial low limit on max events per getn call
  evport: don't scan more events in ed_pending than needed
  evport: Use portev_user to remember fdinfo struct
  evport: Remove a linear search over recent events when reactivating them
  evport: use evmap_io to track fdinfo status. Should save time and RAM.
  Fix a couple of signed/unsigned warnings in http.c
  Disable main/many_events_slow_add with evport backend
  Fix compilation.
  updated EV_S(s)IZE definitions
  Added overflow checks in evhttp_read_body and evhttp_get_body
  Added several checks for under/overflow conditions in evhttp_handle_chunked_read
  Always use evutil_snprintf, even if OS provides it
  Do not define WIN32 in Makefile.nmake
  In configure, test for _WIN32 not WIN32.
  Use "_WIN32", not WIN32: it's standard and we don't need to fake it
  Use evutil_gettimeofday instead of relying on the system gettimeofday.
  Fix winsock2.h #include issues with MSVC
  Make sure TINYTEST_LOCAL is defined when building tinytest.c
  unistd.h and sys/time.h might not exist.
  MSVC does not provide S_ISDIR, so provide it manually.
  Bring in the compile script from automake, if needed.
  Make the tests build when OpenSSL is not available.
  Link with -lshell32 and -ladvapi32 on Win32.
  Fix new warnings from GCC 4.6
  Prevent size_t overflow in evhttp_htmlescape.
  Fix a bug that prevented us from configuring IPv6 nameservers.
  Test case for 0848814ac49616
  Fix failing assertion introducd in commit 0d6622e
  Fix compilation with GCC 2, which had no __builtin_expect
  Fix a compile warning with zlib 1.2.4 and 1.2.5
  Correctly detect openssl on windows
  Performance tweak to evhttp_parse_request_line.
  Move the win32 detection in configure.in
  Use OPENSSL_LIBS in Makefile.am
  Libtool brings in the dependencies of libevent_openssl.la automatically
  libssl depends on libcrypto, not the other way around.
  Oops; that new unit test breaks for epoll.  Fix it.
  Fix a warn-and-fail bug in kqueue by providing kevent() room to report errors
  Add missing words to EVLOOP_NONBLOCK documentation
  Bump version to 2.0.11-stable-dev
  Increment version number to 2.0.11-stable
  Add more people to the acknowledgments
  Changelog for 2.0.11-stable
  Fix clang warning when resetting connection
  Use AM_CONDITIONAL, not AC_SUBST, to tell automake to build regress
  Fix msvc build: it needed to know about _EVENT_HAVE_STRUCT_SOCKADDR_STORAGE
  Try to fix up CHECK_REGRESS hack to not break on win32
  Add missing header for regress_http compilation on win32
  call setsockopt correctly on connecting() IOCP-bufferevents so shutdown() will work
  Zero a struct sockaddr_in before using it
  Remote some dead code from dns-example.c
  Check return value of evbuffer_add_cb in tests
  Be nice and "handle" error return values in sample code
  Refactor test_getaddrinfo_async_cancel_stress()
  add some (void) casts for unused variables
  Actually send NULL request in http_bad_request_test
  Add a forgotten return value check in the unit tests
  Add an assert to appease clang's static analyzer
  Fix possible NULL-deref in evdns_cancel_request
  Add a forgotten NULL check to evhttp_parse_headers
  Fix compilation under LLVM/clang with --enable-gcc-warnings
  Complain if the caller tries to change threading cbs after setting them
  Avoid race-condition when initializing global locks
  Fix a memory leak on win32 socket->event map.
  Handle calloc failure in evdns. (Found by Dave Hart)
  Fix a crash bug in evdns server circular list code
  Fix a couple of memory leaks in samples/http-server.c. Found by Dave Hart.
  Avoid a free(NULL) if out-of-memory in evdns_getaddrinfo. Found by Dave Hart
  Fix the check for multicast or broadcast addresses in evutil_check_interfaces
  Check for allocation failures in apply_socktype_protocol_hack
  Fix the case when failed evhttp_make_request() leaved request in the queue.
  Fix subtle recursion in evhttp_connection_cb_cleanup().
  Reset outgoing connection when read data in idle state.
  Add comment to configure.in to explain gc-sections test logic
  Fix for --gc-sections on NetBSD
  Fix make distcheck & installation of libevent 1 headers
  Fix incorrect assertions and possible use-after-free in evrpc_free()
  munge the debug_lock signature before freeing it: it might help us catch use-after-free
  Add a magic number to debug_locks to better catch lock-coding errors.
  In the 2.1 branch, let's try out lazy gettimeofday/clock_gettime comparison
  Disable lazy gettimeofday/clock_gettime comparison for now
  Followup for Tomash Brechko's http patch
  Workaround libevent bug https://sourceforge.net/tracker/index.php?func=detail&aid=3078187&group_id=50884&atid=461324
  Have event_base_gettimeofday_cached() always return wall-clock time
  Make --no-libevent-install apply to event1 headers too
  Make --no-libevent-install apply to headers too
  Continue AM_CFLAGS to AM_CPPFLAGS correction
  Make event_count maintainance branchless at the expense of an extra shift. Needs benchmarking
  possible optimization: split event_queue_insert/remove into separate functions. needs testing
  Add new evhttp_{connection_}set_timeout_tv() functions to set finger-grained http timeouts
  Make -ffunction-sections off-by-default in 2.0.x
  Remove nonfunctional enable_libevent_(install|regress)_def variables
  Use $(), not @@, for LIBEVENT_GC_SECTIONS
  Be explicit about how long event loops run in event.h documentation
  Use %s with printf in test.sh
  Correct an AM_CFLAGS to an AM_CPPFLAGS in test/Makefile.am
  Add configure options to disable installation, regression tests
  Add -D_OSF_SOURCE to fix hpux builds
  Use the gcc -ffunction-segments feature to allow gc when linking with static libevent
  Check for getservbyname even if not on win32.
  Fix autoconf bracket issues; make check for getaddrinfo include netdb.h
  Skip check for zlib if we have no zlib.h
  Make test-eof fail with a timeout if we never get an eof.
  FIX: comment internal headers used in sample code.
  NM: Fix sample/http-server ipv6 fixes
  Include util-internal.h as needed to build on platforms with no sockaddr_storage
  Include arpa/inet.h as needed on HPUX
  Correctly detect and stop non-chunked http requests when the body is too long
  fix spelling mistake in whatsnew-2.0.txt
  Correct evhttp_del_accept_socket documentation on whether socket is closed
  Clarify event_set_mem_functions doc
  Make URI parser able to tolerate nonconformant URIs.
  Fix a type error in our (unused) arc4random_stir()
  Fix warnings about AC_LANG_PROGRAM usage
  Save a needless comparison when removing/adjusting timeouts
  Remove a needless base-notify when rescheduling the first timeout
  Optimize the case where we reinsert an existing timeout
  Fix test.sh output on solaris
  Do not check for gethostbyname_r versions if we have getaddrinfo
  Add compile-time check for AF_UNSPEC==PF_UNSPEC
  Fix http unit test on non-windows platforms without getaddrinfo
  Build on systems without AI_PASSIVE
  Try to build correctly on platforms with no IPv6 support
  Build correctly on platforms without sockaddr_storage
  Fall back to sscanf if we have no other way to implement strtoll
  Make --enable-gcc-warnings a no-op if not using gcc
  Allow use of --enable-silent-rules for quieter compilation with automake 1.11
  Correctly free selectop fields when select_resize fails in select_init
  Handle resize failures in the select backend better.
  Use event_err() only if the failure is truly unrecoverable.
  Detect and handle more allocation failures.
  Add evconfig-private to remaining files
  Shell hack for weird mkdir -p commands
  ...
db297a7
@azat azat added a commit to azat/libevent-deb that referenced this issue Sep 28, 2014
@azat azat Merge remote-tracking branch 'main/master' into 2.1.4-release-2
* main/master: (2897 commits)
  [Bugfix] fix bufferevent setwatermark suspend_read
  Fix several memory leaks in the unit tests.
  Fix for a677b72bd6d9d378daf9775966aa8ca574e26e67
  Make a buffer larger in the tests to avoid a scary evbuffer_copyout_from()
  Use a more precise calculation for max in time-ratelim.c
  Use evutil_weakrand() in unit tests.
  Fix a c90 warning
  Fix a dead-code warning in unit tests. CID 1193548
  Fix a use-after-free in unit tests. CID 752027
  Fix use-after-free error in EV_CLOSURE_EVENT callback
  regress_buffer: fix 'memcmp' compare size
  use correct tt macro for pointer compare
  make bufferevent_getwatermark api more robust
  [Bugfix] fix grammer error
  updates in cmake build
  Correctly handle allocation failures in evdns_getaddrinfo
  Consistently check for failure from evbuffer_pullup()
  Use FindClose for handle from FindFirstFile in http-server.c
  Change return type of evutil_load_windows_system_library_ to HMODULE
  Fix issue #127, double free for filterevents that use BEV_OPT_CLOSE_ON_FREE
  Add a few files created by "make verify" to .gitignore.
  test/regress: add simplestsignal: to track reorder bugs separately
  add a --disable-samples configure flag
  ignore config.cache/test-driver files
  Handle ENOTCAPABLE from FreeBSD - this is returned if an event in the changelist is for an FD that has been closed.
  Make http-server.c output into good html5
  Update to a more recent tinytest_macros.
  ignore one more test binary
  regress dns: drop alarm() (since windows don't have it)
  evdns: we don't need to add retry timer in transmit_to it will be done on fail
  evdns: add regress test for flag EVDNS_BASE_DISABLE_WHEN_INACTIVE without ns
  evdns: add regress for EVDNS_BASE_DISABLE_WHEN_INACTIVE base flag
  evdns: disable probing with EVDNS_BASE_DISABLE_WHEN_INACTIVE
  tree.h: drop duplicated content of tree.h
  test/http: add regress test for set family to AF_INET6
  test: add regress for evhttp_connection_set_family() with AF_INET and AF_UNSPEC
  test: add family argument for http_connection_test_()
  Fix a crash in evdns related to shutting down evdns
  Add missing headerfile for cmake
  regress_dns: fix leaks in getaddrinfo_async{,_cancel_stress} tests
  Fix a crash in evdns related to shutting down evdns
  Increment version to 2.1.4-alpha-dev
  Update release date in changelog
  Don't truncate hosts file path on Windows.
  Load hosts file on Windows.
  Add evhttp_connection_set_family() to set addrinfo->family for DNS requests
  Fixup make install for cmake projects
  Renamed sin to saddr due to name conflict
  Correctly skip ipv6 http test on systems without ipv6
  Remove integer-overflow unit tests
  evtag: detect tags over 32-bits earlier
  Catch over-large port numbers early in http
  Fix ubsan warnings when parsing ipv4/ipv6 addrs
  Fix a use-after-free error on EV_CLOSURE_EVENT_FINALIZE callbacks
  Fix an illegal read error in the evbuffer_add_reference tests
  Add new APIs to whatsnew-2.1
  Increment version to 2.1.4-alpha
  Bring changelog up to date for 2.1.4-alpha
  Avoid double-close paths in http tests
  Add missing include to regress_finalize.h
  Skip http/ipv6_for_domain test when we have no ipv6 support
  Add an include to evrpc-internal to fix openbsd compilation warning
  Heap-allocate zlib data structure in regress_zlib tests
  Fix consts in WIN32-Code/getopt*.[ch]
  Fix duplicate paragraph in evbuffer_ptr documentation
  Initialize async bufferevent timeout CBs unconditionally
  add a cast to https-client.c
  Export event_extra not event_extras.
  Update to the latest version of tinytest
  Fix 'make distcheck' by adding regress.gen.[ch] to DISTCLEANFILES
  Move assert(ev) to before we use ev in EV_CLOSURE_EVENT_FINALIZE case
  Add -Qunused-arguments for clang on macos
  Add option to build shared library
  Do not offer EV_FEATURE_EARLY_CLOSE if we have no EPOLLRDHUP
  Stop checking for inet_aton; we don't use it.
  Rename event_extras to event_extra
  BUGFIX: Fix compilation on systems with EPOLLRDHUP undefined.
  Add cmake-related files to .gitignore
  Added -Qunused-arguments for clang on macosx
  bufferevent_pair: don't call downcast(NULL)
  Tweaked callbacks to prevent race condition (https://github.com/libevent/libevent/issues/104)
  Tweaked callbacks to prevent race condition (https://github.com/libevent/libevent/issues/104)
  Added a Travis-CI configuration file.
  Check does arch have the epoll_create and __NR_epoll_wait syscalls.
  Check for OSX when checking for clang.
  Guard against EVENT_NOWIN32 being set during testing.
  Fix https-client compilation on Windows.
  CMake: Get rid of python not found warning when regress tests turned off.
  Fix CMake compile when OpenSSL is disabled.
  Split epoll lookup table into a separate header file
  Expand EV_CLOSED documentation a bit
  Disclaimerize cmake a little in the README
  Fix broken autotools build.
  Fix a c90 warning
  Check if we're on OSX before disabling deprecation in le-proxy
  Change all uses of WIN32 to _WIN32
  Fix include bug.
  Implemented EV_CLOSED event for epoll backend (EPOLLRDHUP).
  Forgotten headers for old nmake project compatability.
  Clean up the README some.
  Update README with CMake build instructions.
  Rename README to README.md and use markdown to format.
  Fix so that old nmake project still builds.
  Set USE_DEBUG=1 on EVENT__ENABLE_VERBOSE_DEBUG
  Some work on making it possible to simply do add_subdirectory() on the project.
  Fix typo
  Add CMake config and install targets.
  Fix even more coverity warnings.
  Fix a couple of compilation warnings in regress_http.c
  Remove spurious checks in evrpc.c error cases (coverity)
  Whoops; fix compilation in bench.c
  Fix coverity warnings in benchmark tools.
  Fix a pile of coverity warnings in the unit tests
  Update unit test to make sure that the callback happens after the output data is written
  evhttp_request_set_on_complete_cb to be more specific about what the function actually does and usage
  Provide on request complete callback facility
  Added unit test for max event counts
  Fixed bug using wrong variable in max event compare
  Add access to max event count stats
  Remove unneeded declaration in bufferevent-internal.h
  Fix needless bufferevent includes in evdns.c
  Fix a couple of "#ifdef WIN32" instances
  Sample HTTPS Client: Set hostname for SNI extension (by f69m)
  fix for ServFail from RIPE Atlas release
  Small tweaks to https-client.c
  Minor optimizations on bufferevent_trigger options
  Make bufferevent_trigger_nolock_() inline
  Unit tests for active_by_fd; unsupport active_by_fd(TIMEOUT)
  Add event_base_active_by_signal by analogy
  Sanity-check arguments to event_base_active_by_fd()
  Refactor evmap_{io,signal}_active_() to tolerate bad inputs
  Typo fixes from Linus Nordberg
  Typo fixes from Linus Nordberg
  Added EVENT__ENABLE_GCC_WARNINGS, turns all warnings into errors.
  Only look for ZLib when it is used (if tests are included).
  Fix the "make verify" target on NetBSD
  Add a "make verify_coverage" target generation coverage info.
  Get rid of unknown pragma warnings.
  Minimum required python version is 2.4.
  Change the BSD license from 4 to 3-clause.
  Added a test for testing if kqueue works with pipes.
  Fix kqueue support.
  Get rid of deprecation warnings for OpenSSL on OSX 10.7+
  Fix the make "verify" target on Windows.
  Clarify event_base_loop exit conditions
  Added a "make verify" target.
  Only test the event backends available on the system.
  Don't segfault on no found event backend.
  Fix bench_cascade program on Windows.
  Only include WIN32 getopt where it is used.
  Add copyright and licensing files for CMake modules.
  Use evutil_closesocket instead.
  Added some GCC specific options.
  Link libm on unix platforms.
  Generate a dummy evconfig-private.h so things build properly.
  More work on adding tests to CMake project
  Add all tests and benchmarks to CMake project.
  Initial CMake commit.
  Fix non-C89 variable declaration.
  Fix non-C89 variable declaration.
  Rename flush_outdated_host_addresses to clear_host_addresses
  bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated addresses
  bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated adresses
  Clarifications in response to merge req. comments
  start writing a changelog for 2.1.4-(beta?)
  update the 2.0 changelog
  Add an option to trigger bufferevent event callbacks
  Add an option to trigger bufferevent I/O callbacks
  Add watermark introspection
  Document deferred eventcb behaviour
  Fix a typo
  Try another doxygen tweak
  Small doxygen tweaks
  Allow registering callback for parsing HTTP headers
  Add a variant of evhttp_send_reply_chunk() with a callback on evhttp_write_buffer()
  Avoid redundant invocations of init_extension_functions for IOCP
  regress_http: add tests for evhttp_connection_get_addr()
  http: implement new evhttp_connection_get_addr() api.
  Tweak indentation
  regress_main: logging all if env EVENT_DEBUG_LOGGING_ALL isset
  add a http default content type option
  Fix another arc4random_buf-related warning
  Fix a compiler warning when checking for arc4random_buf linker breakage.
  rpcgen: Generate regress.gen.[c,h] in build rather than src dir
  Avoid racy bufferevent activation
  Fix reinit of fds with EV_WRITE but not EV_READ.
  Check CLOCK_MONOTONIC_* at runtime if needed.
  Really remove RNG seeds from the stack
  Oops; revert testing code
  Avoid other RNG initialization FS reads when urandom file is specified
  Finish a sentence
  sample: drop uri_root from base_url in http-server.
  Add an assertion for another of the complaints from coverity. See 1b065d07df196
  test_evutil_rtrim: add another missing check.
  Finalize tests: add a missing check
  DNS tests: add a missing check
  Fix some crash-on-fail cases in DNS regression tests
  Add missing check to test_evbuffer_file_segment_add_cleanup_cb
  Fix a logic error in test_evbuffer_freeze
  Fix a (failure-only) null dereference in the unit tests
  Use void casts to suppress some "unchecked return value" warns
  sample/le-proxy: Fail more gracefully if opening listener fails
  Fix an unlikely but possible error case for http connections
  Move event_debug_note_teardown_ before mm_free.
  Add some assertions to please coverity.
  Fix compilation
  Add evutil_secure_rng_set_urandom_device_file
  Remove an unreachable return statement in minheap-internal.h
  Avoid leaking segment mappings when offset is not a page multiple
  Add checks for evhttp_connection_get_server() in unit tests.
  Add evhttp_connection_get_server().
  Add Maxime Henrion to README
  libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer)
  Pass and return const for bufferevent_get_token_bucket_cfg
  Add function to fetch underlying ratelimit cfg
  We should return after arc4random_buf()
  Don't use return since return type is void and build error occurs using clang
  Added event_base_get_num_events()
  Document that arc4random is not a great cryptographic PRNG.
  When we seed from /proc/sys/kernel/random/uuid, count it as success
  restore the comment
  Fix SEGFAULT after evdns_base_resume if no nameservers installed.
  Actually use the log facility for reporting evdns problems.
  Use windows vsnprintf fixup logic on all windows environments
  Remove a debugging assert that should not have been left in
  Fix locking in bufferevent_get_options_().
  Fix a double close() bug in evhttp when the underlying bufferevent uses BEV_OPT_CLOSE_ON_FREE.
  Avoid redundant syscall if making a socket cloexec twice
  Avoid redundant syscall to make a nonblocking socket nonblocking
  If evsel->del() fails, don't leave the evmap in an inconsistent state.
  Fix dns/leak_resume_send_err test.
  Add tests for evdns_base_resume().
  Fix SEGFAULT after evdns_base_resume if no nameservers installed.
  Whoops. It is gdi.lib, not gdi32.lib. (github issue #61)
  Missed lock acquire/release in event_base_cancel_single_callback_()
  Fix test compilation with nmake: add the gdi.lib dependency
  Checking request nameserver for NULL, before using it.
  Bump version to 2.1.3-alpha-dev
  Add regress_finalize to makefile.nmake
  Set a release date
  Make http/connection_retry off-by-default
  Fix a windows compilation regression
  Fix a bug in fixing a bug in out-of-tree test-dumpevents
  Make regress_finalize work with malloc replacement disabled
  Fix some out-of-tree build bugs
  Incremement version to 2.1.3-alpha
  Add acknowledgements to readme
  Start editing the changelog for 2.1.3-alpha
  Mark the finalize stuff as experiemental in case it needs to change
  Start a changelog for Libevent 2.0.22-stable
  Clarify an important point about event_base_foreach_event()
  Fix a bug in the new main/event_foreach test
  More unit tests for initializing common timeouts.
  A test for event_get_assignment()
  Unit tests for event_base_gettimeofday_cached() and event_base_update_cache_time()
  New tests for event_base_foreach_event()
  New test for active_later->active transition on event_active
  Remove a no-longer-true XXXX comment.
  Make the event_finalize* functions return an error code
  More documentation for finalization feature
  Remove bufferevent_del_generic_timeout_cbs as now unused
  Always run pending finalizers when event_base_free() is called
  Use finalization feature so bufferevents can avoid deadlocks
  Add some verbose notes to bufferevent unit tests
  Implement event_finalize() and related functions to avoid certain deadlocks
  Make all tests pass under EVENT_DEBUG_MODE=1
  Drop extra header http_struct.h from regress_http.c
  Add test for EVREQ_HTTP_REQUEST_CANCEL into http_cancel_test()
  Add new error_cb for actual reporting of HTTP request errors.
  Fix another warning introduced in 0c6ec5d8
  Fix a warning introduced in 0c6ec5d8
  evdns: New flag to make evdns not prevent the event loop from exiting
  event_base_update_cache_time should be a no-op if the loop isn't running
  https-client: code cleanup
  Add a test with an active_later event at event_base_free time.
  Another tweak to https-client.c
  Remove http_struct.h usage in sample/https-client.c
  Add an environment variable (EVENT_DEBUG_MODE) to run unit tests in debug mode
  Do not build strlcpy.c when it will have no code.
  Specify return behavior in header for evbuffer_pullup() in corner case
  Fix a typo in a comment in buffer.h. Spotted by Alt_F4
  build test/test-script.sh on systems with a less-featureful $<
  Make --disable-libevent-regress work again
  POST supported, args supported
  Double-check next timeout when adding events
  Test: decoding just part of string with evhttp_decode_uri_internal()
  Move prototype of evhttp_decode_uri_internal() to http-internal.h
  uri decode: changed the test for the existence of the next character
  uri decode: fix for warning "use of uninitialised value"
  pull in wildcard matching code from cURL
  avoid sign mismatch warning in openssl_hostname_validation.c
  use iSECPartners code to validate hostname in certificate
  use Debian's default root certificate location
  better handling of OpenSSL errors
  https-client was putting newlines at 256-byte boundaries
  use ${OPENSSL_LIBS} instead of -lssl -lcrypto
  Add sample/https-client.c, an example of stacking evhttp as a client on top of bufferevent_ssl.
  test filling up the hash table a bit
  use hashtable instead of linked list to cache winsock errors
  make sure caching works, and we don't leak memory
  use FormatMessage for winsock errors
  a program to print out the error strings for winsock errors
  fix #73 and fix http_connection_fail_test to catch it
  Unit test for event_remove_timer with EV_PERSIST.
  Make event_remove_timer behave correctly with persistent timers
  Avoid using $(top_srcdir) in TESTS.
  Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat
  Avoid using top_srcdir in TESTS-new automakes do not like this
  Rename configure.in to configure.ac to appease newer autoconfs
  Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat
  "buffer" spelling
  remove all exes on "make clean", not just regress.exe
  Fix a locking error in bufferevent_socket_get_dns_error.
  Preliminary changes for Minix3.
  Add regress test ipv6_for_domain.
  Implement EVUTIL_ERR_IS_EAGAIN on windows.
  Fix ipv6 support for http. When URL contain domain, not IP address.
  Fix a mistake in evbuffer_remove() arguments in example http server code
  fix some hinky indentation in evhttp_make_request
  Fix typo : Dispatching instead of Dispaching
  event_base_active_by_fd
  Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5)
  Fix missing AC_PROG_SED on older Autoconfs
  When EWOULDBLOCK is not EAGAIN, treat it as equivalent to it
  Fix harmless clang enum warning
  Fix comment to refer to sample/include.am correctly
  Avoid double-close on getsockname error in evutil_ersatz_socketpair
  Avoid leaking fds on evconnlistener with no callback set
  Fix cut-and-paste err in whatsnew-2.1
  minor documentation typos
  Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled
  Increment version to 2.0.21-stable-dev
  Increment version to 2.1.2-alpha-dev
  Fix a bug when running "make verify" out-of-tree
  Clean up and clarify a little more documentation
  Make the argument to bufferevent_get_priority const
  Avoid defining recommended functions in terms of deprecated ones
  Update "what's new in Libevent 2.1"
  Bump versions to 2.1.2-alpha
  Update changelog for 2.1.2-alpha
  Update ChangeLog-2.0
  Fix a gcc warning in rtrim test
  Fix a warning when building without threading.
  Increment libtool version for 2.0.21 too
  Increment version to 2.0.21-stable
  Changelog for 2.0.21-stable
  Make ssl version check in unit tests work
  avoid valgrind false positive by zeroing epoll_event
  Make bufferevent_set_timeouts(bev, NULL, NULL) have plausible semantics
  Add an event_remove_timer() to remove timer on an event without deleting it
  Fix a couple of compile warnings in the unit tests
  Avoid crash when event_pending() called with no event_base set on event
  Use EVUTIL_SOCKET_ERROR() wrapper to save/restor errno in evhttp_connection_fail_
  add evhttp_request_get_response_code_line
  Move evutil_rtrim_lws_ to evutil.c where it belongs
  Remove internal ws from multiline http headers correctly
  Remove trailing tabs in HTTP headers as well.
  Clean up rtrim implementation
  ignore LWS after field-content in headers
  Use correct openssl libs and includes in pkgconfig file
  remove stray 'x' so print_err will compile when uncommented
  Make rpcgen_wrapper.sh work on systems without a "python2" binary
  Add a unit test in which an event is created with event_base_once() but never fires
  Free dangling event_once objects on event_base_free()
  Warn when openssl version in unit test mismatches compiled version.
  Fix renegotiation test to work around openssl 1.0.1 bug
  Use the same CFLAGS for openssl when building unit tests as with libevent
  preserve errno in evhttp_connection_fail_ for inspection by the callback
  Fix event_dlist definition when sys/queue not included
  Clean up unit test for evbuffer_file_segment_add_cleanup_cb a little
  Add a new callback to get called on evbuffer_file_segment free
  Fix compilation on mingw64 with -DUSE_DEBUG
  Fix a few mingw64 incompatibilities introduced since 2.0
  Fix some warnings found cross-compiling with mingw32
  Compile without warnings on mingw64
  Close IOCP listener socket on free when LEV_OPT_CLOSE_ON_FREE is set
  fix a few trivial documentation typos
  Use python2 rather than python
  Use python2 rather than python
  No need to reserve space if reading is suspended.
  Stop looping in "consider_reading" if reading is suspended.
  Fix typo : events instead of evets
  FIx another memleak on OOM in evdns
  Avoid a memory-leak on OOM in evdns.
  Add missing return value in event_base_foreach_event
  Don't discard SSL read event when timeout and read come close together
  Tweak patch for event_base_foreach_event()
  Expose event_base_foreach_event() as a public API.
  Prevent reference leak of bufferevent if getaddrinfo fails.
  Rename configure.in to configure.ac.
  We now require automake 1.9 or later. Modernize!
  Fix handling of no-python case for nonrecursive make
  Be quiet when making regress.gen.[ch]
  New --quiet option for event_rpcgen.py
  Make quiet build even quieter
  Rename subordinate Makefile.ams to include.am
  Switch to non-recursive makefiles
  Enable silent build rules by default. Override with V=1
  Use newer syntax for autoconf/automake init
  Increment version to 2.0.20-stable-dev
  Update ChangeLog-2.0
  Add a date to the changelog
  Increment version to 2.0.20-stable
  Initial changelog and credits for 2.0.20
  Add missing implementation for event_enable_debug_logging
  Rename event_enable_lock_debuging() to ..._debugging()
  Correctly invoke callbacks when a SSL bufferevent reads some and then blocks.
  Avoid test -e; older shs don't have one.
  Add deferred_cb_skew to list of timing-dependent tests
  Avoid unused-var warning on systems with clock_gettime but without CLOCK_MONOTONIC_COARSE
  Add explicit AC_PROG_SED to configure.in so all autoconfs will expose $(SED)
  Fix an unused variable warning on *BSD.
  Avoid segfault on weird timeout during name lookup.
  Extract common error-handling code in evconnlistener_new_bind
  Avoid double-free on error in evbuffer_add_file. Found by coverity.
  Check return value when using LEV_OPT_DEFERRED_ACCEPT. Found by coverity
  Check more setsockopt return values when binding sockets. Found by coverity
  memset sockaddr_in before using it. Found by coverity.
  Move assignment outside tt_assert in ssl unit tests. Appeases coverity.
  Add checks to various return values in unit tests. Found by coverity
  Avoid possible needless call to writev. Found by coverity.
  Remove unused variable; spotted by coverity
  Fix a shadowed variable in addfile_test_readcb; found by coverity
  Avoid memory leak in test_event_calloc unit test; found by coverity
  Add checks for functions in test-ratelim.c; found by Coverity
  Avoid more crashes/bad calls in unit tests; found by coverity
  Add some missing null checks to unit tests; found by coverity
  Fix resource leaks in the unit tests; found by coverity
  Fix various check-after-dereference issues in unit tests: found by coverity
  Set umask before calling mkstemp in unit tests. Found by coverity
  Fix another possible uninitialized read in dns regression tests. Found by coverity.
  Fix possible uninitialized read in dns regression tests. Found by coverity.
  Remove deadcode in http regression tests. Found by coverity.
  Add process.h include to evutil.c for _getpid
  Fix tinytset_skip to work with new tinytest_set_flag_ signature
  Fix compile error in win32 listener.c
  Fix a memory leak on error in evhttp_uriencode
  Win32: avoid crash when waiting forever on zero fds.
  Additional comments about OPENSSL_DIR variable, prompted by Dave Hart
  attempt to support OpenSSL in Makefile.nmake
  Make load-dependent monotonic timer tests off-by-default
  Avoid (unlikely) overflow in bench_httpclient.c
  Check return value of write() in regress.c
  Make all tests that hit the network disabled by default
  Update to latest tinytest (911b4f0349377)
  Make test_evutil_monotonic a little more tolerant
  Make th_base_lock nonrecursive
  remove a now-unused var in thread_deferred_cb_skew test
  Avoid a resource leak on error in http client benchmark
  Simplify and correct evutil_open_closeonexec_
  Avoid giving a spurious warning when timerfd support is unavailable
  Make event_pending() threadsafe.
  Add GCC annotations so that the vsprintf functions get checked properly
  Make the Makefile.nmake warning slightly less dire
  Add evutil_time.obj to Makefile.nmake
  Fix a couple of memory leaks (found with Valgrind).
  Fix a comment in test-fdleak after 077c7e949.
  Correctly check for arc4random_buf
  check for arc4random_buf at runtime, on OS X
  Make it more clear that NOLOCK means "I promise, no multithreading"
  Add caveat to docs about bufferevent_free() with data in outbuf
  Be more clear that LEV_OPT_DEFERRED_ACCEPT has tricky prereqs
  Remove unnecessary code in configure.in.
  Add an event_base_loopcontinue() to tell libevent to rescan right away
  Restore our priority-inversion-prevention code with deferreds
  Give event_base_process_active a single exit path
  Make event_base_getnpriorities work with old "implicit base" code
  Add a bufferevent_get_priority() function
  New event_get_priority() function to return an event's priority
  Replace more deferred_cb names with event_callback
  Replace deferred_cbs with event_callback-based implementation.
  event_base_assert_ok: check value of event_active_count for correctness
  Add "active later" event_callbacks to supersede deferred
  Remove the unused bits from EVLIST_ALL
  Refactor the callback part of an event into its own event_callback type
  Bump version to 2.0.19-stable-dev
  Increment version to 2.0.19-stable
  Oops; fix the *right* windows compile issue
  Fix win32 build issues: sleep, pid_t
  Start changelog for 2.0.19-stable
  Fix evdns build with threads disabled
  When retransmitting a timed-out DNS request, pick a fresh nameserver.
  Make some evdns.c debug logs more verbose
  dns-example.c can now take a resolv.conf file on the commandline
  Correctly handle running on a system where accept4 doesn't work.
  Work-around a stupid gcov-breaking bug in OSX 10.6
  Fixed potential double-readcb execution with openssl bufferevents.
  If a higher-priority event becomes active, don't continue running events of the current priority.
  Generate event-config.h with a single sed script
  Generate event-config.h with a single sed script
  When PRECISE_TIMERS is set with epoll, use timerfd for microsecond precision
  Improve the monotonic-time unit test: make it check the step size
  Simple unit tests for monotonic timers
  Implement fast/precise monotonic clocks on Windows
  Add EVENT_PRECISE_TIMER environment var for selecting precise-but-slow timer
  Refactor monotonic timer handling into a new type and set of functions; add a gettimeofday-based ratcheting implementation
  Split out time-related prototypes into time-internal.h
  Split out time-related evutil functions into a new evutil_time.c
  Split long lists in Makefile.am into one-item-per-line
  Shave 700 msec off the persistent_timeout_jump test
  If time has jumped so we'd reschedule a periodic event in the past, schedule it for the future instead
  Refactor event_persist_closure: raise and extract some common logic
  remove redundant DNS_ERR_CANCEL check, move comment
  cancel the probe request when the server is freed, and ignore cancelled probe callbacks
  Note that make_base_notifiable should not be necessary
  Implement a GetTickCount-based monotonic timer for Windows
  On Linux, use CLOCK_MONOTONIC_COARSE by default
  EVENT_BASE_FLAG_PRECISE_TIMER indicates we want fine timer precision
  Move use_monotonic and friends into event_base
  Work-around a stupid gcov-breaking bug in OSX 10.6
  Replace pipe-based notification with EVFILT_USER where possible
  Do not track use_monotonic field when is no monotonic clock
  Use mach_absolute_time() for monotonic clock support on OSX.
  Tweak the new evutil_weakrand_() code
  Change evutil_weakrand_() to avoid platform random()
  Simplify test.sh code significantly.
  Increment the version to 2.1.1-alpha-dev
  Backport: provide EVENT_LOG_* names, and deprecate _EVENT_LOG_*
  fix some typos in the 2.1 changelog
  Bump the version to Libevent 2.1.1-alpha
  Fix the website URL in the readme
  Try to finalize changelog situation for 2.1.1-alpha
  Add pending names to the README; add more entries to the changelog
  Include ws2tcpip.h from util.h to get EAI_* definitions.
  Fix some compilation warnings with msvc
  Oops; fix a merge conflict that got committed into event2/event-config.h.  Now msvc builds work again.
  Decrease MAX_REQUESTS in test-fdleak
  Include util-internal.h earlier in test-dumpevents to fix solaris build
  Fix compilation with mm-replacement disabled.
  make event_base_get_running_event build with threads disabled.
  Make check-dumpevents work with out-of-tree builds
  Make check-dumpevents.py actually get included in the tarballs
  Configure with gcc older than 2.95
  Missing ) in bufferevent_ratelim.c comment. Found by rransom
  Add missing ) to changelog; spotted by rransom
  Add a missing name to the readme.
  Increase duration and tolerance on http/connection_retry test
  Fix a compilation error with MSVC 2005 due to use of mode_t
  Temporarily disable event_queue_reinsert_timeout
  Make libevent_global_shutdown() idempotent
  Updates for whatsnew-2.1.txt
  Require at least Python 2.4 for check-dumpevents.py.
  Fix a typo in the bufferevent documentation
  Test more bufferevent_ratelim features
  Add event_base_get_running_event() to get the event* whose cb we are in
  More coverage on reinsert_timeout tests
  Make test-dumpevents build on Linux
  Fix a nasty bug in event_queue_reinsert_timeout()
  Add a unit test for event_base_dump_events()
  event_base_dump_events: Report active events tersely, and note internal events
  Fix compilation of evutil_rand on osx
  Fix typo in whatsnew-2.1.txt
  Use libevent_global_shutdown() to clean up in unit tests.
  Distribute whatsnew-2.1.txt.
  Fix another bug from rebase of libevent_global_shutdown patch
  Write a first draft of whatsnew-2.1.txt
  Tweak changelog for 2.1 even more
  Add more things to the 2.1 changelog
  Add an empty changelog section for 2.0.19-stable
  Bump version to 2.0.18-stable-dev
  Bump version to 2.0.18-stable
  Add credits to README
  Changelog for libevent 2.0.18-stable
  Add a new libevent_global_shutdown() to free all globals before exiting.
  event-read-fifo: Use EV_PERSIST appropriately
  Rename event-test.c to event-read-fifo.c.
  On Unix, remove event.fifo left by sample/event-test.c.
  Fix up sample/event-test.c to use newer interfaces and make it actually work.
  Now that event_assign() special-cases event_self_cbarg(), event_new() can stop
  Add a test for using event_self_cbarg() with event_assign().
  event_self_cbarg() works with event_assign() for consistency with event_new().
  Properly zero the kevent in kq_setup_kevent()
  Don't do clang version detection when disabling some flags
  Add a regression test for event_self_cbarg().
  Update sample/signal-test.c to use the new event_self_cbarg().
  Add event_self_cbarg() to be used in conjunction with event_new().
  event_rpcgen.py now prints status information to stdout and errors to stderr.
  Add netinet/in.h include to fix test-fdleak on openbsd
  Restore accidentally disabled nanosleep implementation of evutil_usleep.
  Fix doxygen to use new macro conventions
  Clean up lingering _identifiers.
  Apply the naming convention to our EVUTIL_IS* functions
  Have all visible internal function names end with an underscore.
  Fix some problems introduced by automated identifier cleanup script
  Make event_rpcgen.py output conform to indentifier conventions, more
  Fix all identifiers with names beginning with underscore.
  Make the generated event-config.h use correct include guards
  Stop referring to an obsolete include guard in bench_http.h
  Make event_rpcgen.py output conform to indentifier conventions
  Convert include-guard macro convention to avoid reserved identifiers
  Generate event-config.h using the correct macros.
  Convert event-config.h macros to avoid reserved identifiers
  Make event-config.h depend on Makefile.am
  Check for NULL return on win32 mm_calloc, and set ENOMEM.
  Do not use system EAI/AI values if we are not using the system getaddrinfo.
  Replace sole internal user of socklen_t with ev_socklen_t
  Fix evmap to work with HT-backed IO maps again.
  evutil_accept4() should take ev_socklen_t
  test-fdleak: Avoid perror, since it does not capture windows socket errors
  remove debugging prints
  test-fdleak: Call event callbacks event_cb.
  Remove fixed port from test-fdleak, so two instances can run in parallel
  Remove an unsafe programming practice from test-fdleak; add XX comments
  Try and fix compilation and running of test-fdleak on Windows.
  Allow compilation on machines that do not have setrlimit.
  Simply test-fdleak by running server & client sockets in the same event loop.
  Add a new test: test-fdleak which tests for fd leaks by creating many sockets.
  If accept4 is absent, fall back to accept.
  Avoid leaking fd in evutil_socket() by Linux.
  Remove the last vestiges of _EVENT_USE_EVENTLIST
  Add doxygen for event_base_dump_events
  Refactor the functions that run over every event.
  Fix an "unused return value" warning on write() in signal handler
  Start work on a 2.1 changelog and whats-new
  Add another caveat to the TCP_DEFER_ACCEPT documentation
  Support TCP_DEFER_ACCEPT sockopts for listeners
  Stop crashing in evdns when nameserver probes give a weird error
  Changed OPENSSL_LDFLAGS to OPENSSL_LIBADD
  Added OPENSSL_LDFLAGS env variable which is appended to SSL checks.
  If open(O_CLOEXEC) fails, fall back to fcntl(CLOEXEC)
  Fix up usage of reserved identifiers in ht-internal.h
  Port changes from Tor for ht-internal.h
  Invert the sense and the name of HT_CACHE_HASH_VALUES
  Synchronize with upstream tinytest
  Merge in a punctuation fix from upstream tinytest
  Move libevent 1.x headers to include/, to put all public headers in one place.
  Tweak the evutil_open_closeonexec patch to work on windows, old unixes.
  Make uses of open() close-on-exec safe by introducing evutil_open_closeonexec.
  Add a bufferevent_getcb() to find a bufferevent's current callbacks
  Also make win32select.c conditional for IDE users
  Add an empty section to the changelog for 2.0.18-stable
  Correct a name in the credits. oops
  Bump version to 2.0.17-stable-dev
  Update the credits in the readme
  Finalize the changelog
  Fix compilation on osx
  Update copyright notices to 2012
  Bump version to 2.0.17-stable
  Prefer epoll_create1 on Linuxen that have it
  Save some syscalls when constructing a socket for a bufferevent
  Save some syscalls when creating evdns sockets
  Save syscalls when constructing listener sockets for evhttp
  Use pipes for telling signals to main thread when possible
  Use a wrapper function to create the notification pipe/socketpair/eventfd
  The LEV_OPT_CLOSE_ON_EXEC flag now applies to accepted listener sockets too
  Minimize syscalls during socket creation in listener.c
  Infrastructure for using faster/fewer syscalls when creating sockets
  In the kqueue backend, do not report EBADF as an EV_READ
  Avoid crash when freeing event_iocp and using event_set_mem_functions
  Put #ifdef around some files to support alternate build systems.
  Bring the changelog up to date
  Loop on filtering SSL reads until we are blocked or exhausted.
  Replace more C99/C++ comments with oldschool /* */ comments
  Use C-style comments in C source files (for compatibility with compilers such as xlc on AIX).
  evdns: fix a bug in circular-queue implementation
  Fix a compile warning in event_reinit
  Remove the eventqueue list and the ev_next pointers.
  Make test-changelist faster
  Check changelist as part of checking representational integrity
  Restore fast-path event_reinit() for slower backends
  Make event_reinit() more robust and maintainable
  Better workaround for Linux 3.2 edge-triggered epoll bug
  Do a memberwise comparison of threading function tables
  When including an -internal.h header outside the main tree, do so early
  Allow more slop in deferred_cb_skew test; freebsd needs it
  Remove a couple of now-unused variables
  Make event_base integrity check work on windows
  Start writing a changelog for 2.0.17-stable
  Use test_timeval_diff_eq more consistently
  Make regression tests run over 3x faster.
  New evhttp function to adjust initial retry timeout
  Reduce the timeout in the main/fork test.
  Add an (internal) usleep function for use by unit tests
  Oops:remove an accidentally committed "sleep(1)" in a unit test
  Workaround in the unit tests for an apparent epoll bug in Linux 3.2
  Fix a fd leak in event_reinit()
  Fix a list corruption bug when using event_reinit() with signals present
  Check event_base correctness at end of each unit test
  Fix compilation of windows evutil_check_ifaddrs
  Add function to check referential integrity of an event_base
  Force strict validation of HTTP version in response.
  Suppress a gcc warning from ignoring fwrite return in http-sample.c
  Fix a race condition in the dns/bufferevent_connect_hostname test.
  Make evconnlistener work around bug in older Linux when getting nmapped
  Remove bogus casts of socket to int before calling ev_callback
  Backport evhttp_connection_get_bufferevent to Libevent 2.0
  Slightly clarify evbuffer_peek documentation
  Fix behavior of evbuffer_peek(buf,-1,NULL,NULL,0)
  Remove some accidentally-committed debugging code
  whitespace fixes
  check for sysctl before we use it
  Split up extra-long AC_CHECK_FUNCS/HEADERS lines in configure.in
  Use getifaddrs to detect our interfaces if possible
  Changed use of refcounts to make sure referenced chains are freed in all cases.
  Add evbuffer_copyout_from to copy data from the middle of a buffer
  Bypass event_add when using event_base_once() for a 0-sec timeout
  Fix a silly compilation error with the sun compiler
  Be absolutely sure to clear pncalls before leaving event_signal_closure
  fix windows compilation issues with new file segment code
  Fix two issues in the allow_dirty_shutdown code.
  Tweak allow_dirty_shutdown documentation
  Allow users to set allow_dirty_shutdown
  bev_ssl: Be more specific in event callbacks. evhttp in particular gets confused without at least one of BEV_EVENT_{READING|WRITING}.
  Increment version to 2.0.16-stable-dev
  Increment version to 2.0.16-stable
  Revise 2.0.16-stable changelog
  add comment to new consider_reading code
  Avoid spinning on OpenSSL reads
  Move SSL rate-limit enforcement into bytes_to_read()
  Refactor amount-to-read calculations in buffervent_ssl consider_reading()
  Revert "Avoid potential SSL read spinlocks"
  Revert "openssl bufferevent has the same issue with writing as prior commit."
  Add new entries to changelog, new credits to README
  Fix DNS memleak checks when running with malloc-replacement/debugging disabled
  Don't try to make notifiable event_base when no threading fns are configured
  Warn when unable to construct base because of failing make_base_notifiable
  openssl bufferevent has the same issue with writing as prior commit.
  Avoid potential SSL read spinlocks
  unit tests for EVBUFFER_EOL_NUL
  New EVBUFFER_EOL_NUL to read NUL-terminated strings from an evbuffer
  Tweaks, fixups, and comments on evbuffer_add_iovec
  Added evbuffer_add_iovec and unit tests.
  Improve win32 behavior of dns-sample.c codex
  Fix typo in whatsnew-2.0.txt
  Use the free-trailing-chains function in evbuffer_insert_chain too
  Fix an evbuffer crash in evbuffer_remove_buffer()
  improve test to remove at least one buffer from src
  unit test for remove_buffer bug
  Fix compile warning from saying event2/*.h inside a comment
  epoll: close fd on alloc fail at initialization
  evhttp: Add evhttp_foreach_bound_socket.
  Update copyright dates to 2011.
  New event_base_update_cache_time() to set cached_tv to current time
  Add argument checks to some memory functions in `event.c'.
  Add note about evhttp_send_reply_end to its doxygen
  More detailed message in case of libevent self-debugging failure.
  Style and comment tweaks for dns/leak* tests
  Test for commit aff6ba1
  Empty DNS reply with OK status is another way to say NODATA.
  Tests for 94fba5b and f72e8f6
  fixed typo
  added comments to describe refcounting of multicase chains
  Bump version to 2.0.15-stable-dev
  Credit a patch from a one-named user
  Increment version to 2.0.15-stable
  Add changelog for 2.0.15-stable
  bufferevent: Add functions to set/get max_single_read/write values.
  Make evbase_priority_init() and evbase_get_npriorities() threadsafe
  Add event_base_get_npriorities() function.
  refer to non-deprecated evdns functions in comments
  Make evbuffer_file_segment_types adaptable
  New EVLOOP_NO_EXIT_ON_EMPTY option to keep looping even when no events are pending
  Allow evconnlistener to be created in disabled state.
  Fix some "value never used" warnings with gcc 4.6.1
  Make write-checking fixes use tt_fail_perror
  Fixed compiler warnings for unchecked read/write calls.
  Prefer mmap to sendfile unless a DRAINS_TO_FD flag is set. Allows add_file to work with SSL.
  Make evbuffer callbacks get the right n_added value after evbuffer_add
  Use _SOURCES, not _sources, in sample/Makefile.am
  le-proxy and regress depend on openssl directly
  Add DNS_ERR_NODATA error code to handle empty replies.
  Fix docstring in dns.h
  Build with large-file support on platforms where it matters
  Clarify event_enable_debug_logging a little
  Remove calls to deprecated bufferevent functions from evhttp.c
  Add evhttp callback for bufferevent creation; this lets evhttp support SSL.
  Implement --enable-gcc-hardening configure option
  Make gcc warnings on by default, and --enable-gcc-warnings only add -Werror
  When a signal callback is activated to run multiple times, allow event_base_loopbreak to work even before they all have run.
  DNS: add ttl for negative answers using RFC 2308 idea.
  Make --enable-verbose-debug option match its help text
  Increment version to 2.0.14-stable-dev
  Credit new contributors for 2.0.14-stable
  Pick a release date for the changelog
  Bump version to 2.0.14-stable
  Use SIG_IGN instead of a do-nothing handler for signal events with kqueue
  Fix OSX build: $(OPENSSL_INCS) needs to be after $(AM_CPPFLAGS).
  clear read watermark on underlying bufferevent when creating filtering bev to fix potentially failing fragmented ssl handshakes
  Checkpoint changelog entries for 2.0.14-stable
  Correctly terminate IO on an async bufferevent on bufferevent_free
  Have test-ratelim.c support IOCP
  Make IOCP rate-limiting group support stricter and less surprising.
  Support negative arguments to _bufferevent_decrement_(read/write)_buckets()
  We need AM_CPPFLAGS when compiling bufferevent_openssl.c
  Use pkg-config (if available) to handle OpenSSL.
  Provide the autoconf m4 macros for the new OpenSSL via pkg-config stuff.
  Cleanup on 7c11e51e1ab: fix strtol usage
  Cleanup on 7c11e51e1ab: restore c90 declaration compliance
  Clean up some problems identified by Coverity.
  Make rate limiting work with common_timeout logic
  Make overlapped reads result in evbuffer callbacks getting invoked
  IOCP: don't launch reads or writes on an unconnected socket
  Try to fix 'make distcheck' errors when building out-of-tree
  Make the priority inversion code use gettime(), not evutil_gettimeofday()
  Make max_dispatch_interval able to apply only to low-priority events
  Optimization in event_process_active(): ignore maxcb & endtime for highest priority events.
  Make sure max_dispatch_callbacks is never negative
  Add event_config function to limit time/callbacks between calls to dispatch
  Solaris sendfile: correctly detect amount of data sent
  Fix request_finished memory leak with debugging turned on.
  Fix evsig_dealloc memory leak with debugging turned on.
  Another docstring fix.
  more event dbg updates
  Fix handling of group rate limits under 64 bytes of burst
  added timeout debug logs to include event ptr.
  Added usec debug in another area for debug
  Debug addition for printing usec on TIMEOUT debugging.
  Ignore deprecation warnings on OS X
  prevent nested multicast references, reworked locking
  support adding buffers to other buffers non-destructively
  Allow OS-neutral builds for platforms where some versions have arc4random_buf
  changed to --enable-verbose-debug
  Propagate errors on the underlying bufferevent to the user.
  Added --enable-event-debugging in configure
  Add missing break to evhttp_parse_request_line
  Fix typo in event_compat.h comments.
  Bump version to 2.0.13-stable-dev
  Bump version to 2.0.13-dev
  acks and changelog for 2.0.13-stable
  Give Makefile.am echo a non-null argument. msys likes this
  Fix a warning in evutil_rand when building with threads disabled
  Use AM_CPPFLAGS in sample/Makefile.am, not AM_CFLAGS
  Add doxygen to .gitignore
  Fix up test_evutil_snprintf
  Fix a test-call accidentally in the last commit
  More abstraction in test.sh
  Update Doxyfile to produce more useful output
  Revise the event/evbuffer/bufferevent doxygen for clarity and accuracy
  Use "unlimited select" on OSX so that we can have more than FD_SETSIZE fds
  Fix select.c compilation on systems with no NFDBITS
  Speed up invoke_callbacks on evbuffers when there are no callbacks
  Fix bug in SSL bufferevents backed by a bev with a write high-watermarks
  Fix a few warnings on OpenBSD
  Fix AIX build issue with TAILQ_FOREACH definition
  Don't install event_rpcgen.py when --disable-libevent-install is used
  Set the special "not found" evbuffer_ptr consistantly.
  Don't break when building tests from git without python installed
  Improve evbuffer_ptr documentation
  Tweaks to return types with end-of-buf ptrs
  Allow evbuffer_ptr to point to position 0 in an empty evbuffer
  Allow evbuffer_ptr_set to yield a point just after the end of the buffer.
  Add failing test for evbuffer_search_range.
  Simplify windows commandname logic in tinytest
  Fix tinytest invocation from windows shell
  Use the correct printf args when formatting size_t
  Check if the `evhttp_new_object' function in `http.c' returns NULL.
  Report kqueue ebadf, epipe, and eperm as EV_READ events
  Replace an assertion for event_base_free(NULL) with a check-and-warn
  Add some missing checks for mm_calloc failures
  Remove a needless branch in evbuffer_drain()
  Fix a bug in the improved EOL_CRLF code
  Fix incorrect results from evbuffer_search_eol(EOL_LF)
  Bump version to 2.0.12-stable-dev
  tweak date on changelog
  Changelog and new credits for 2.0.12-stable
  Bump version to 2.0.12-stable.  Not release just yet
  Fix regress_ssl.c build on openbsd
  Fix windows file segment mappings
  Avoid a segfault when all methods are disabled or broken
  Try to squeeze a little more speed out of EVBUFFER_EOL_CRLF
  cygwin: make it possible to build DLLs
  Roughly 20% speed increase when line-draining a buffer using EVBUFFER_EOL_CRLF
  Fix a fencepost bug in the select backend
  Make the new http_connect_fail_test use a multicast addr, not broadcast
  InitializeCriticalSectionAndSpinCount requires _WIN32_WINNT >= 0x0403.
  Allow base-notification functions to exist without setting an fd
  Reenable main/many_events_slow_add for evport in 2.1
  evport: Remove artificial low limit on max events per getn call
  evport: don't scan more events in ed_pending than needed
  evport: Use portev_user to remember fdinfo struct
  evport: Remove a linear search over recent events when reactivating them
  evport: use evmap_io to track fdinfo status. Should save time and RAM.
  Fix a couple of signed/unsigned warnings in http.c
  Disable main/many_events_slow_add with evport backend
  Fix compilation.
  updated EV_S(s)IZE definitions
  Added overflow checks in evhttp_read_body and evhttp_get_body
  Added several checks for under/overflow conditions in evhttp_handle_chunked_read
  Always use evutil_snprintf, even if OS provides it
  Do not define WIN32 in Makefile.nmake
  In configure, test for _WIN32 not WIN32.
  Use "_WIN32", not WIN32: it's standard and we don't need to fake it
  Use evutil_gettimeofday instead of relying on the system gettimeofday.
  Fix winsock2.h #include issues with MSVC
  Make sure TINYTEST_LOCAL is defined when building tinytest.c
  unistd.h and sys/time.h might not exist.
  MSVC does not provide S_ISDIR, so provide it manually.
  Bring in the compile script from automake, if needed.
  Make the tests build when OpenSSL is not available.
  Link with -lshell32 and -ladvapi32 on Win32.
  Fix new warnings from GCC 4.6
  Prevent size_t overflow in evhttp_htmlescape.
  Fix a bug that prevented us from configuring IPv6 nameservers.
  Test case for 0848814ac49616
  Fix failing assertion introducd in commit 0d6622e
  Fix compilation with GCC 2, which had no __builtin_expect
  Fix a compile warning with zlib 1.2.4 and 1.2.5
  Correctly detect openssl on windows
  Performance tweak to evhttp_parse_request_line.
  Move the win32 detection in configure.in
  Use OPENSSL_LIBS in Makefile.am
  Libtool brings in the dependencies of libevent_openssl.la automatically
  libssl depends on libcrypto, not the other way around.
  Oops; that new unit test breaks for epoll.  Fix it.
  Fix a warn-and-fail bug in kqueue by providing kevent() room to report errors
  Add missing words to EVLOOP_NONBLOCK documentation
  Bump version to 2.0.11-stable-dev
  Increment version number to 2.0.11-stable
  Add more people to the acknowledgments
  Changelog for 2.0.11-stable
  Fix clang warning when resetting connection
  Use AM_CONDITIONAL, not AC_SUBST, to tell automake to build regress
  Fix msvc build: it needed to know about _EVENT_HAVE_STRUCT_SOCKADDR_STORAGE
  Try to fix up CHECK_REGRESS hack to not break on win32
  Add missing header for regress_http compilation on win32
  call setsockopt correctly on connecting() IOCP-bufferevents so shutdown() will work
  Zero a struct sockaddr_in before using it
  Remote some dead code from dns-example.c
  Check return value of evbuffer_add_cb in tests
  Be nice and "handle" error return values in sample code
  Refactor test_getaddrinfo_async_cancel_stress()
  add some (void) casts for unused variables
  Actually send NULL request in http_bad_request_test
  Add a forgotten return value check in the unit tests
  Add an assert to appease clang's static analyzer
  Fix possible NULL-deref in evdns_cancel_request
  Add a forgotten NULL check to evhttp_parse_headers
  Fix compilation under LLVM/clang with --enable-gcc-warnings
  Complain if the caller tries to change threading cbs after setting them
  Avoid race-condition when initializing global locks
  Fix a memory leak on win32 socket->event map.
  Handle calloc failure in evdns. (Found by Dave Hart)
  Fix a crash bug in evdns server circular list code
  Fix a couple of memory leaks in samples/http-server.c. Found by Dave Hart.
  Avoid a free(NULL) if out-of-memory in evdns_getaddrinfo. Found by Dave Hart
  Fix the check for multicast or broadcast addresses in evutil_check_interfaces
  Check for allocation failures in apply_socktype_protocol_hack
  Fix the case when failed evhttp_make_request() leaved request in the queue.
  Fix subtle recursion in evhttp_connection_cb_cleanup().
  Reset outgoing connection when read data in idle state.
  Add comment to configure.in to explain gc-sections test logic
  Fix for --gc-sections on NetBSD
  Fix make distcheck & installation of libevent 1 headers
  Fix incorrect assertions and possible use-after-free in evrpc_free()
  munge the debug_lock signature before freeing it: it might help us catch use-after-free
  Add a magic number to debug_locks to better catch lock-coding errors.
  In the 2.1 branch, let's try out lazy gettimeofday/clock_gettime comparison
  Disable lazy gettimeofday/clock_gettime comparison for now
  Followup for Tomash Brechko's http patch
  Workaround libevent bug https://sourceforge.net/tracker/index.php?func=detail&aid=3078187&group_id=50884&atid=461324
  Have event_base_gettimeofday_cached() always return wall-clock time
  Make --no-libevent-install apply to event1 headers too
  Make --no-libevent-install apply to headers too
  Continue AM_CFLAGS to AM_CPPFLAGS correction
  Make event_count maintainance branchless at the expense of an extra shift. Needs benchmarking
  possible optimization: split event_queue_insert/remove into separate functions. needs testing
  Add new evhttp_{connection_}set_timeout_tv() functions to set finger-grained http timeouts
  Make -ffunction-sections off-by-default in 2.0.x
  Remove nonfunctional enable_libevent_(install|regress)_def variables
  Use $(), not @@, for LIBEVENT_GC_SECTIONS
  Be explicit about how long event loops run in event.h documentation
  Use %s with printf in test.sh
  Correct an AM_CFLAGS to an AM_CPPFLAGS in test/Makefile.am
  Add configure options to disable installation, regression tests
  Add -D_OSF_SOURCE to fix hpux builds
  Use the gcc -ffunction-segments feature to allow gc when linking with static libevent
  Check for getservbyname even if not on win32.
  Fix autoconf bracket issues; make check for getaddrinfo include netdb.h
  Skip check for zlib if we have no zlib.h
  Make test-eof fail with a timeout if we never get an eof.
  FIX: comment internal headers used in sample code.
  NM: Fix sample/http-server ipv6 fixes
  Include util-internal.h as needed to build on platforms with no sockaddr_storage
  Include arpa/inet.h as needed on HPUX
  Correctly detect and stop non-chunked http requests when the body is too long
  fix spelling mistake in whatsnew-2.0.txt
  Correct evhttp_del_accept_socket documentation on whether socket is closed
  Clarify event_set_mem_functions doc
  Make URI parser able to tolerate nonconformant URIs.
  Fix a type error in our (unused) arc4random_stir()
  Fix warnings about AC_LANG_PROGRAM usage
  Save a needless comparison when removing/adjusting timeouts
  Remove a needless base-notify when rescheduling the first timeout
  Optimize the case where we reinsert an existing timeout
  Fix test.sh output on solaris
  Do not check for gethostbyname_r versions if we have getaddrinfo
  Add compile-time check for AF_UNSPEC==PF_UNSPEC
  Fix http unit test on non-windows platforms without getaddrinfo
  Build on systems without AI_PASSIVE
  Try to build correctly on platforms with no IPv6 support
  Build correctly on platforms without sockaddr_storage
  Fall back to sscanf if we have no other way to implement strtoll
  Make --enable-gcc-warnings a no-op if not using gcc
  Allow use of --enable-silent-rules for quieter compilation with automake 1.11
  Correctly free selectop fields when select_resize fails in select_init
  Handle resize failures in the select backend better.
  Use event_err() only if the failure is truly unrecoverable.
  Detect and handle more allocation failures.
  Add evconfig-private to remaining files
  Shell hack for weird mkdir -p commands
  ...
aa0a752
@azat azat added a commit to azat/libevent-deb that referenced this issue Sep 29, 2014
@azat azat Merge remote-tracking branch 'main/master' into 2.1.4-release-3
* main/master: (2897 commits)
  [Bugfix] fix bufferevent setwatermark suspend_read
  Fix several memory leaks in the unit tests.
  Fix for a677b72bd6d9d378daf9775966aa8ca574e26e67
  Make a buffer larger in the tests to avoid a scary evbuffer_copyout_from()
  Use a more precise calculation for max in time-ratelim.c
  Use evutil_weakrand() in unit tests.
  Fix a c90 warning
  Fix a dead-code warning in unit tests. CID 1193548
  Fix a use-after-free in unit tests. CID 752027
  Fix use-after-free error in EV_CLOSURE_EVENT callback
  regress_buffer: fix 'memcmp' compare size
  use correct tt macro for pointer compare
  make bufferevent_getwatermark api more robust
  [Bugfix] fix grammer error
  updates in cmake build
  Correctly handle allocation failures in evdns_getaddrinfo
  Consistently check for failure from evbuffer_pullup()
  Use FindClose for handle from FindFirstFile in http-server.c
  Change return type of evutil_load_windows_system_library_ to HMODULE
  Fix issue #127, double free for filterevents that use BEV_OPT_CLOSE_ON_FREE
  Add a few files created by "make verify" to .gitignore.
  test/regress: add simplestsignal: to track reorder bugs separately
  add a --disable-samples configure flag
  ignore config.cache/test-driver files
  Handle ENOTCAPABLE from FreeBSD - this is returned if an event in the changelist is for an FD that has been closed.
  Make http-server.c output into good html5
  Update to a more recent tinytest_macros.
  ignore one more test binary
  regress dns: drop alarm() (since windows don't have it)
  evdns: we don't need to add retry timer in transmit_to it will be done on fail
  evdns: add regress test for flag EVDNS_BASE_DISABLE_WHEN_INACTIVE without ns
  evdns: add regress for EVDNS_BASE_DISABLE_WHEN_INACTIVE base flag
  evdns: disable probing with EVDNS_BASE_DISABLE_WHEN_INACTIVE
  tree.h: drop duplicated content of tree.h
  test/http: add regress test for set family to AF_INET6
  test: add regress for evhttp_connection_set_family() with AF_INET and AF_UNSPEC
  test: add family argument for http_connection_test_()
  Fix a crash in evdns related to shutting down evdns
  Add missing headerfile for cmake
  regress_dns: fix leaks in getaddrinfo_async{,_cancel_stress} tests
  Fix a crash in evdns related to shutting down evdns
  Increment version to 2.1.4-alpha-dev
  Update release date in changelog
  Don't truncate hosts file path on Windows.
  Load hosts file on Windows.
  Add evhttp_connection_set_family() to set addrinfo->family for DNS requests
  Fixup make install for cmake projects
  Renamed sin to saddr due to name conflict
  Correctly skip ipv6 http test on systems without ipv6
  Remove integer-overflow unit tests
  evtag: detect tags over 32-bits earlier
  Catch over-large port numbers early in http
  Fix ubsan warnings when parsing ipv4/ipv6 addrs
  Fix a use-after-free error on EV_CLOSURE_EVENT_FINALIZE callbacks
  Fix an illegal read error in the evbuffer_add_reference tests
  Add new APIs to whatsnew-2.1
  Increment version to 2.1.4-alpha
  Bring changelog up to date for 2.1.4-alpha
  Avoid double-close paths in http tests
  Add missing include to regress_finalize.h
  Skip http/ipv6_for_domain test when we have no ipv6 support
  Add an include to evrpc-internal to fix openbsd compilation warning
  Heap-allocate zlib data structure in regress_zlib tests
  Fix consts in WIN32-Code/getopt*.[ch]
  Fix duplicate paragraph in evbuffer_ptr documentation
  Initialize async bufferevent timeout CBs unconditionally
  add a cast to https-client.c
  Export event_extra not event_extras.
  Update to the latest version of tinytest
  Fix 'make distcheck' by adding regress.gen.[ch] to DISTCLEANFILES
  Move assert(ev) to before we use ev in EV_CLOSURE_EVENT_FINALIZE case
  Add -Qunused-arguments for clang on macos
  Add option to build shared library
  Do not offer EV_FEATURE_EARLY_CLOSE if we have no EPOLLRDHUP
  Stop checking for inet_aton; we don't use it.
  Rename event_extras to event_extra
  BUGFIX: Fix compilation on systems with EPOLLRDHUP undefined.
  Add cmake-related files to .gitignore
  Added -Qunused-arguments for clang on macosx
  bufferevent_pair: don't call downcast(NULL)
  Tweaked callbacks to prevent race condition (https://github.com/libevent/libevent/issues/104)
  Tweaked callbacks to prevent race condition (https://github.com/libevent/libevent/issues/104)
  Added a Travis-CI configuration file.
  Check does arch have the epoll_create and __NR_epoll_wait syscalls.
  Check for OSX when checking for clang.
  Guard against EVENT_NOWIN32 being set during testing.
  Fix https-client compilation on Windows.
  CMake: Get rid of python not found warning when regress tests turned off.
  Fix CMake compile when OpenSSL is disabled.
  Split epoll lookup table into a separate header file
  Expand EV_CLOSED documentation a bit
  Disclaimerize cmake a little in the README
  Fix broken autotools build.
  Fix a c90 warning
  Check if we're on OSX before disabling deprecation in le-proxy
  Change all uses of WIN32 to _WIN32
  Fix include bug.
  Implemented EV_CLOSED event for epoll backend (EPOLLRDHUP).
  Forgotten headers for old nmake project compatability.
  Clean up the README some.
  Update README with CMake build instructions.
  Rename README to README.md and use markdown to format.
  Fix so that old nmake project still builds.
  Set USE_DEBUG=1 on EVENT__ENABLE_VERBOSE_DEBUG
  Some work on making it possible to simply do add_subdirectory() on the project.
  Fix typo
  Add CMake config and install targets.
  Fix even more coverity warnings.
  Fix a couple of compilation warnings in regress_http.c
  Remove spurious checks in evrpc.c error cases (coverity)
  Whoops; fix compilation in bench.c
  Fix coverity warnings in benchmark tools.
  Fix a pile of coverity warnings in the unit tests
  Update unit test to make sure that the callback happens after the output data is written
  evhttp_request_set_on_complete_cb to be more specific about what the function actually does and usage
  Provide on request complete callback facility
  Added unit test for max event counts
  Fixed bug using wrong variable in max event compare
  Add access to max event count stats
  Remove unneeded declaration in bufferevent-internal.h
  Fix needless bufferevent includes in evdns.c
  Fix a couple of "#ifdef WIN32" instances
  Sample HTTPS Client: Set hostname for SNI extension (by f69m)
  fix for ServFail from RIPE Atlas release
  Small tweaks to https-client.c
  Minor optimizations on bufferevent_trigger options
  Make bufferevent_trigger_nolock_() inline
  Unit tests for active_by_fd; unsupport active_by_fd(TIMEOUT)
  Add event_base_active_by_signal by analogy
  Sanity-check arguments to event_base_active_by_fd()
  Refactor evmap_{io,signal}_active_() to tolerate bad inputs
  Typo fixes from Linus Nordberg
  Typo fixes from Linus Nordberg
  Added EVENT__ENABLE_GCC_WARNINGS, turns all warnings into errors.
  Only look for ZLib when it is used (if tests are included).
  Fix the "make verify" target on NetBSD
  Add a "make verify_coverage" target generation coverage info.
  Get rid of unknown pragma warnings.
  Minimum required python version is 2.4.
  Change the BSD license from 4 to 3-clause.
  Added a test for testing if kqueue works with pipes.
  Fix kqueue support.
  Get rid of deprecation warnings for OpenSSL on OSX 10.7+
  Fix the make "verify" target on Windows.
  Clarify event_base_loop exit conditions
  Added a "make verify" target.
  Only test the event backends available on the system.
  Don't segfault on no found event backend.
  Fix bench_cascade program on Windows.
  Only include WIN32 getopt where it is used.
  Add copyright and licensing files for CMake modules.
  Use evutil_closesocket instead.
  Added some GCC specific options.
  Link libm on unix platforms.
  Generate a dummy evconfig-private.h so things build properly.
  More work on adding tests to CMake project
  Add all tests and benchmarks to CMake project.
  Initial CMake commit.
  Fix non-C89 variable declaration.
  Fix non-C89 variable declaration.
  Rename flush_outdated_host_addresses to clear_host_addresses
  bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated addresses
  bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated adresses
  Clarifications in response to merge req. comments
  start writing a changelog for 2.1.4-(beta?)
  update the 2.0 changelog
  Add an option to trigger bufferevent event callbacks
  Add an option to trigger bufferevent I/O callbacks
  Add watermark introspection
  Document deferred eventcb behaviour
  Fix a typo
  Try another doxygen tweak
  Small doxygen tweaks
  Allow registering callback for parsing HTTP headers
  Add a variant of evhttp_send_reply_chunk() with a callback on evhttp_write_buffer()
  Avoid redundant invocations of init_extension_functions for IOCP
  regress_http: add tests for evhttp_connection_get_addr()
  http: implement new evhttp_connection_get_addr() api.
  Tweak indentation
  regress_main: logging all if env EVENT_DEBUG_LOGGING_ALL isset
  add a http default content type option
  Fix another arc4random_buf-related warning
  Fix a compiler warning when checking for arc4random_buf linker breakage.
  rpcgen: Generate regress.gen.[c,h] in build rather than src dir
  Avoid racy bufferevent activation
  Fix reinit of fds with EV_WRITE but not EV_READ.
  Check CLOCK_MONOTONIC_* at runtime if needed.
  Really remove RNG seeds from the stack
  Oops; revert testing code
  Avoid other RNG initialization FS reads when urandom file is specified
  Finish a sentence
  sample: drop uri_root from base_url in http-server.
  Add an assertion for another of the complaints from coverity. See 1b065d07df196
  test_evutil_rtrim: add another missing check.
  Finalize tests: add a missing check
  DNS tests: add a missing check
  Fix some crash-on-fail cases in DNS regression tests
  Add missing check to test_evbuffer_file_segment_add_cleanup_cb
  Fix a logic error in test_evbuffer_freeze
  Fix a (failure-only) null dereference in the unit tests
  Use void casts to suppress some "unchecked return value" warns
  sample/le-proxy: Fail more gracefully if opening listener fails
  Fix an unlikely but possible error case for http connections
  Move event_debug_note_teardown_ before mm_free.
  Add some assertions to please coverity.
  Fix compilation
  Add evutil_secure_rng_set_urandom_device_file
  Remove an unreachable return statement in minheap-internal.h
  Avoid leaking segment mappings when offset is not a page multiple
  Add checks for evhttp_connection_get_server() in unit tests.
  Add evhttp_connection_get_server().
  Add Maxime Henrion to README
  libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer)
  Pass and return const for bufferevent_get_token_bucket_cfg
  Add function to fetch underlying ratelimit cfg
  We should return after arc4random_buf()
  Don't use return since return type is void and build error occurs using clang
  Added event_base_get_num_events()
  Document that arc4random is not a great cryptographic PRNG.
  When we seed from /proc/sys/kernel/random/uuid, count it as success
  restore the comment
  Fix SEGFAULT after evdns_base_resume if no nameservers installed.
  Actually use the log facility for reporting evdns problems.
  Use windows vsnprintf fixup logic on all windows environments
  Remove a debugging assert that should not have been left in
  Fix locking in bufferevent_get_options_().
  Fix a double close() bug in evhttp when the underlying bufferevent uses BEV_OPT_CLOSE_ON_FREE.
  Avoid redundant syscall if making a socket cloexec twice
  Avoid redundant syscall to make a nonblocking socket nonblocking
  If evsel->del() fails, don't leave the evmap in an inconsistent state.
  Fix dns/leak_resume_send_err test.
  Add tests for evdns_base_resume().
  Fix SEGFAULT after evdns_base_resume if no nameservers installed.
  Whoops. It is gdi.lib, not gdi32.lib. (github issue #61)
  Missed lock acquire/release in event_base_cancel_single_callback_()
  Fix test compilation with nmake: add the gdi.lib dependency
  Checking request nameserver for NULL, before using it.
  Bump version to 2.1.3-alpha-dev
  Add regress_finalize to makefile.nmake
  Set a release date
  Make http/connection_retry off-by-default
  Fix a windows compilation regression
  Fix a bug in fixing a bug in out-of-tree test-dumpevents
  Make regress_finalize work with malloc replacement disabled
  Fix some out-of-tree build bugs
  Incremement version to 2.1.3-alpha
  Add acknowledgements to readme
  Start editing the changelog for 2.1.3-alpha
  Mark the finalize stuff as experiemental in case it needs to change
  Start a changelog for Libevent 2.0.22-stable
  Clarify an important point about event_base_foreach_event()
  Fix a bug in the new main/event_foreach test
  More unit tests for initializing common timeouts.
  A test for event_get_assignment()
  Unit tests for event_base_gettimeofday_cached() and event_base_update_cache_time()
  New tests for event_base_foreach_event()
  New test for active_later->active transition on event_active
  Remove a no-longer-true XXXX comment.
  Make the event_finalize* functions return an error code
  More documentation for finalization feature
  Remove bufferevent_del_generic_timeout_cbs as now unused
  Always run pending finalizers when event_base_free() is called
  Use finalization feature so bufferevents can avoid deadlocks
  Add some verbose notes to bufferevent unit tests
  Implement event_finalize() and related functions to avoid certain deadlocks
  Make all tests pass under EVENT_DEBUG_MODE=1
  Drop extra header http_struct.h from regress_http.c
  Add test for EVREQ_HTTP_REQUEST_CANCEL into http_cancel_test()
  Add new error_cb for actual reporting of HTTP request errors.
  Fix another warning introduced in 0c6ec5d8
  Fix a warning introduced in 0c6ec5d8
  evdns: New flag to make evdns not prevent the event loop from exiting
  event_base_update_cache_time should be a no-op if the loop isn't running
  https-client: code cleanup
  Add a test with an active_later event at event_base_free time.
  Another tweak to https-client.c
  Remove http_struct.h usage in sample/https-client.c
  Add an environment variable (EVENT_DEBUG_MODE) to run unit tests in debug mode
  Do not build strlcpy.c when it will have no code.
  Specify return behavior in header for evbuffer_pullup() in corner case
  Fix a typo in a comment in buffer.h. Spotted by Alt_F4
  build test/test-script.sh on systems with a less-featureful $<
  Make --disable-libevent-regress work again
  POST supported, args supported
  Double-check next timeout when adding events
  Test: decoding just part of string with evhttp_decode_uri_internal()
  Move prototype of evhttp_decode_uri_internal() to http-internal.h
  uri decode: changed the test for the existence of the next character
  uri decode: fix for warning "use of uninitialised value"
  pull in wildcard matching code from cURL
  avoid sign mismatch warning in openssl_hostname_validation.c
  use iSECPartners code to validate hostname in certificate
  use Debian's default root certificate location
  better handling of OpenSSL errors
  https-client was putting newlines at 256-byte boundaries
  use ${OPENSSL_LIBS} instead of -lssl -lcrypto
  Add sample/https-client.c, an example of stacking evhttp as a client on top of bufferevent_ssl.
  test filling up the hash table a bit
  use hashtable instead of linked list to cache winsock errors
  make sure caching works, and we don't leak memory
  use FormatMessage for winsock errors
  a program to print out the error strings for winsock errors
  fix #73 and fix http_connection_fail_test to catch it
  Unit test for event_remove_timer with EV_PERSIST.
  Make event_remove_timer behave correctly with persistent timers
  Avoid using $(top_srcdir) in TESTS.
  Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat
  Avoid using top_srcdir in TESTS-new automakes do not like this
  Rename configure.in to configure.ac to appease newer autoconfs
  Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat
  "buffer" spelling
  remove all exes on "make clean", not just regress.exe
  Fix a locking error in bufferevent_socket_get_dns_error.
  Preliminary changes for Minix3.
  Add regress test ipv6_for_domain.
  Implement EVUTIL_ERR_IS_EAGAIN on windows.
  Fix ipv6 support for http. When URL contain domain, not IP address.
  Fix a mistake in evbuffer_remove() arguments in example http server code
  fix some hinky indentation in evhttp_make_request
  Fix typo : Dispatching instead of Dispaching
  event_base_active_by_fd
  Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5)
  Fix missing AC_PROG_SED on older Autoconfs
  When EWOULDBLOCK is not EAGAIN, treat it as equivalent to it
  Fix harmless clang enum warning
  Fix comment to refer to sample/include.am correctly
  Avoid double-close on getsockname error in evutil_ersatz_socketpair
  Avoid leaking fds on evconnlistener with no callback set
  Fix cut-and-paste err in whatsnew-2.1
  minor documentation typos
  Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled
  Increment version to 2.0.21-stable-dev
  Increment version to 2.1.2-alpha-dev
  Fix a bug when running "make verify" out-of-tree
  Clean up and clarify a little more documentation
  Make the argument to bufferevent_get_priority const
  Avoid defining recommended functions in terms of deprecated ones
  Update "what's new in Libevent 2.1"
  Bump versions to 2.1.2-alpha
  Update changelog for 2.1.2-alpha
  Update ChangeLog-2.0
  Fix a gcc warning in rtrim test
  Fix a warning when building without threading.
  Increment libtool version for 2.0.21 too
  Increment version to 2.0.21-stable
  Changelog for 2.0.21-stable
  Make ssl version check in unit tests work
  avoid valgrind false positive by zeroing epoll_event
  Make bufferevent_set_timeouts(bev, NULL, NULL) have plausible semantics
  Add an event_remove_timer() to remove timer on an event without deleting it
  Fix a couple of compile warnings in the unit tests
  Avoid crash when event_pending() called with no event_base set on event
  Use EVUTIL_SOCKET_ERROR() wrapper to save/restor errno in evhttp_connection_fail_
  add evhttp_request_get_response_code_line
  Move evutil_rtrim_lws_ to evutil.c where it belongs
  Remove internal ws from multiline http headers correctly
  Remove trailing tabs in HTTP headers as well.
  Clean up rtrim implementation
  ignore LWS after field-content in headers
  Use correct openssl libs and includes in pkgconfig file
  remove stray 'x' so print_err will compile when uncommented
  Make rpcgen_wrapper.sh work on systems without a "python2" binary
  Add a unit test in which an event is created with event_base_once() but never fires
  Free dangling event_once objects on event_base_free()
  Warn when openssl version in unit test mismatches compiled version.
  Fix renegotiation test to work around openssl 1.0.1 bug
  Use the same CFLAGS for openssl when building unit tests as with libevent
  preserve errno in evhttp_connection_fail_ for inspection by the callback
  Fix event_dlist definition when sys/queue not included
  Clean up unit test for evbuffer_file_segment_add_cleanup_cb a little
  Add a new callback to get called on evbuffer_file_segment free
  Fix compilation on mingw64 with -DUSE_DEBUG
  Fix a few mingw64 incompatibilities introduced since 2.0
  Fix some warnings found cross-compiling with mingw32
  Compile without warnings on mingw64
  Close IOCP listener socket on free when LEV_OPT_CLOSE_ON_FREE is set
  fix a few trivial documentation typos
  Use python2 rather than python
  Use python2 rather than python
  No need to reserve space if reading is suspended.
  Stop looping in "consider_reading" if reading is suspended.
  Fix typo : events instead of evets
  FIx another memleak on OOM in evdns
  Avoid a memory-leak on OOM in evdns.
  Add missing return value in event_base_foreach_event
  Don't discard SSL read event when timeout and read come close together
  Tweak patch for event_base_foreach_event()
  Expose event_base_foreach_event() as a public API.
  Prevent reference leak of bufferevent if getaddrinfo fails.
  Rename configure.in to configure.ac.
  We now require automake 1.9 or later. Modernize!
  Fix handling of no-python case for nonrecursive make
  Be quiet when making regress.gen.[ch]
  New --quiet option for event_rpcgen.py
  Make quiet build even quieter
  Rename subordinate Makefile.ams to include.am
  Switch to non-recursive makefiles
  Enable silent build rules by default. Override with V=1
  Use newer syntax for autoconf/automake init
  Increment version to 2.0.20-stable-dev
  Update ChangeLog-2.0
  Add a date to the changelog
  Increment version to 2.0.20-stable
  Initial changelog and credits for 2.0.20
  Add missing implementation for event_enable_debug_logging
  Rename event_enable_lock_debuging() to ..._debugging()
  Correctly invoke callbacks when a SSL bufferevent reads some and then blocks.
  Avoid test -e; older shs don't have one.
  Add deferred_cb_skew to list of timing-dependent tests
  Avoid unused-var warning on systems with clock_gettime but without CLOCK_MONOTONIC_COARSE
  Add explicit AC_PROG_SED to configure.in so all autoconfs will expose $(SED)
  Fix an unused variable warning on *BSD.
  Avoid segfault on weird timeout during name lookup.
  Extract common error-handling code in evconnlistener_new_bind
  Avoid double-free on error in evbuffer_add_file. Found by coverity.
  Check return value when using LEV_OPT_DEFERRED_ACCEPT. Found by coverity
  Check more setsockopt return values when binding sockets. Found by coverity
  memset sockaddr_in before using it. Found by coverity.
  Move assignment outside tt_assert in ssl unit tests. Appeases coverity.
  Add checks to various return values in unit tests. Found by coverity
  Avoid possible needless call to writev. Found by coverity.
  Remove unused variable; spotted by coverity
  Fix a shadowed variable in addfile_test_readcb; found by coverity
  Avoid memory leak in test_event_calloc unit test; found by coverity
  Add checks for functions in test-ratelim.c; found by Coverity
  Avoid more crashes/bad calls in unit tests; found by coverity
  Add some missing null checks to unit tests; found by coverity
  Fix resource leaks in the unit tests; found by coverity
  Fix various check-after-dereference issues in unit tests: found by coverity
  Set umask before calling mkstemp in unit tests. Found by coverity
  Fix another possible uninitialized read in dns regression tests. Found by coverity.
  Fix possible uninitialized read in dns regression tests. Found by coverity.
  Remove deadcode in http regression tests. Found by coverity.
  Add process.h include to evutil.c for _getpid
  Fix tinytset_skip to work with new tinytest_set_flag_ signature
  Fix compile error in win32 listener.c
  Fix a memory leak on error in evhttp_uriencode
  Win32: avoid crash when waiting forever on zero fds.
  Additional comments about OPENSSL_DIR variable, prompted by Dave Hart
  attempt to support OpenSSL in Makefile.nmake
  Make load-dependent monotonic timer tests off-by-default
  Avoid (unlikely) overflow in bench_httpclient.c
  Check return value of write() in regress.c
  Make all tests that hit the network disabled by default
  Update to latest tinytest (911b4f0349377)
  Make test_evutil_monotonic a little more tolerant
  Make th_base_lock nonrecursive
  remove a now-unused var in thread_deferred_cb_skew test
  Avoid a resource leak on error in http client benchmark
  Simplify and correct evutil_open_closeonexec_
  Avoid giving a spurious warning when timerfd support is unavailable
  Make event_pending() threadsafe.
  Add GCC annotations so that the vsprintf functions get checked properly
  Make the Makefile.nmake warning slightly less dire
  Add evutil_time.obj to Makefile.nmake
  Fix a couple of memory leaks (found with Valgrind).
  Fix a comment in test-fdleak after 077c7e949.
  Correctly check for arc4random_buf
  check for arc4random_buf at runtime, on OS X
  Make it more clear that NOLOCK means "I promise, no multithreading"
  Add caveat to docs about bufferevent_free() with data in outbuf
  Be more clear that LEV_OPT_DEFERRED_ACCEPT has tricky prereqs
  Remove unnecessary code in configure.in.
  Add an event_base_loopcontinue() to tell libevent to rescan right away
  Restore our priority-inversion-prevention code with deferreds
  Give event_base_process_active a single exit path
  Make event_base_getnpriorities work with old "implicit base" code
  Add a bufferevent_get_priority() function
  New event_get_priority() function to return an event's priority
  Replace more deferred_cb names with event_callback
  Replace deferred_cbs with event_callback-based implementation.
  event_base_assert_ok: check value of event_active_count for correctness
  Add "active later" event_callbacks to supersede deferred
  Remove the unused bits from EVLIST_ALL
  Refactor the callback part of an event into its own event_callback type
  Bump version to 2.0.19-stable-dev
  Increment version to 2.0.19-stable
  Oops; fix the *right* windows compile issue
  Fix win32 build issues: sleep, pid_t
  Start changelog for 2.0.19-stable
  Fix evdns build with threads disabled
  When retransmitting a timed-out DNS request, pick a fresh nameserver.
  Make some evdns.c debug logs more verbose
  dns-example.c can now take a resolv.conf file on the commandline
  Correctly handle running on a system where accept4 doesn't work.
  Work-around a stupid gcov-breaking bug in OSX 10.6
  Fixed potential double-readcb execution with openssl bufferevents.
  If a higher-priority event becomes active, don't continue running events of the current priority.
  Generate event-config.h with a single sed script
  Generate event-config.h with a single sed script
  When PRECISE_TIMERS is set with epoll, use timerfd for microsecond precision
  Improve the monotonic-time unit test: make it check the step size
  Simple unit tests for monotonic timers
  Implement fast/precise monotonic clocks on Windows
  Add EVENT_PRECISE_TIMER environment var for selecting precise-but-slow timer
  Refactor monotonic timer handling into a new type and set of functions; add a gettimeofday-based ratcheting implementation
  Split out time-related prototypes into time-internal.h
  Split out time-related evutil functions into a new evutil_time.c
  Split long lists in Makefile.am into one-item-per-line
  Shave 700 msec off the persistent_timeout_jump test
  If time has jumped so we'd reschedule a periodic event in the past, schedule it for the future instead
  Refactor event_persist_closure: raise and extract some common logic
  remove redundant DNS_ERR_CANCEL check, move comment
  cancel the probe request when the server is freed, and ignore cancelled probe callbacks
  Note that make_base_notifiable should not be necessary
  Implement a GetTickCount-based monotonic timer for Windows
  On Linux, use CLOCK_MONOTONIC_COARSE by default
  EVENT_BASE_FLAG_PRECISE_TIMER indicates we want fine timer precision
  Move use_monotonic and friends into event_base
  Work-around a stupid gcov-breaking bug in OSX 10.6
  Replace pipe-based notification with EVFILT_USER where possible
  Do not track use_monotonic field when is no monotonic clock
  Use mach_absolute_time() for monotonic clock support on OSX.
  Tweak the new evutil_weakrand_() code
  Change evutil_weakrand_() to avoid platform random()
  Simplify test.sh code significantly.
  Increment the version to 2.1.1-alpha-dev
  Backport: provide EVENT_LOG_* names, and deprecate _EVENT_LOG_*
  fix some typos in the 2.1 changelog
  Bump the version to Libevent 2.1.1-alpha
  Fix the website URL in the readme
  Try to finalize changelog situation for 2.1.1-alpha
  Add pending names to the README; add more entries to the changelog
  Include ws2tcpip.h from util.h to get EAI_* definitions.
  Fix some compilation warnings with msvc
  Oops; fix a merge conflict that got committed into event2/event-config.h.  Now msvc builds work again.
  Decrease MAX_REQUESTS in test-fdleak
  Include util-internal.h earlier in test-dumpevents to fix solaris build
  Fix compilation with mm-replacement disabled.
  make event_base_get_running_event build with threads disabled.
  Make check-dumpevents work with out-of-tree builds
  Make check-dumpevents.py actually get included in the tarballs
  Configure with gcc older than 2.95
  Missing ) in bufferevent_ratelim.c comment. Found by rransom
  Add missing ) to changelog; spotted by rransom
  Add a missing name to the readme.
  Increase duration and tolerance on http/connection_retry test
  Fix a compilation error with MSVC 2005 due to use of mode_t
  Temporarily disable event_queue_reinsert_timeout
  Make libevent_global_shutdown() idempotent
  Updates for whatsnew-2.1.txt
  Require at least Python 2.4 for check-dumpevents.py.
  Fix a typo in the bufferevent documentation
  Test more bufferevent_ratelim features
  Add event_base_get_running_event() to get the event* whose cb we are in
  More coverage on reinsert_timeout tests
  Make test-dumpevents build on Linux
  Fix a nasty bug in event_queue_reinsert_timeout()
  Add a unit test for event_base_dump_events()
  event_base_dump_events: Report active events tersely, and note internal events
  Fix compilation of evutil_rand on osx
  Fix typo in whatsnew-2.1.txt
  Use libevent_global_shutdown() to clean up in unit tests.
  Distribute whatsnew-2.1.txt.
  Fix another bug from rebase of libevent_global_shutdown patch
  Write a first draft of whatsnew-2.1.txt
  Tweak changelog for 2.1 even more
  Add more things to the 2.1 changelog
  Add an empty changelog section for 2.0.19-stable
  Bump version to 2.0.18-stable-dev
  Bump version to 2.0.18-stable
  Add credits to README
  Changelog for libevent 2.0.18-stable
  Add a new libevent_global_shutdown() to free all globals before exiting.
  event-read-fifo: Use EV_PERSIST appropriately
  Rename event-test.c to event-read-fifo.c.
  On Unix, remove event.fifo left by sample/event-test.c.
  Fix up sample/event-test.c to use newer interfaces and make it actually work.
  Now that event_assign() special-cases event_self_cbarg(), event_new() can stop
  Add a test for using event_self_cbarg() with event_assign().
  event_self_cbarg() works with event_assign() for consistency with event_new().
  Properly zero the kevent in kq_setup_kevent()
  Don't do clang version detection when disabling some flags
  Add a regression test for event_self_cbarg().
  Update sample/signal-test.c to use the new event_self_cbarg().
  Add event_self_cbarg() to be used in conjunction with event_new().
  event_rpcgen.py now prints status information to stdout and errors to stderr.
  Add netinet/in.h include to fix test-fdleak on openbsd
  Restore accidentally disabled nanosleep implementation of evutil_usleep.
  Fix doxygen to use new macro conventions
  Clean up lingering _identifiers.
  Apply the naming convention to our EVUTIL_IS* functions
  Have all visible internal function names end with an underscore.
  Fix some problems introduced by automated identifier cleanup script
  Make event_rpcgen.py output conform to indentifier conventions, more
  Fix all identifiers with names beginning with underscore.
  Make the generated event-config.h use correct include guards
  Stop referring to an obsolete include guard in bench_http.h
  Make event_rpcgen.py output conform to indentifier conventions
  Convert include-guard macro convention to avoid reserved identifiers
  Generate event-config.h using the correct macros.
  Convert event-config.h macros to avoid reserved identifiers
  Make event-config.h depend on Makefile.am
  Check for NULL return on win32 mm_calloc, and set ENOMEM.
  Do not use system EAI/AI values if we are not using the system getaddrinfo.
  Replace sole internal user of socklen_t with ev_socklen_t
  Fix evmap to work with HT-backed IO maps again.
  evutil_accept4() should take ev_socklen_t
  test-fdleak: Avoid perror, since it does not capture windows socket errors
  remove debugging prints
  test-fdleak: Call event callbacks event_cb.
  Remove fixed port from test-fdleak, so two instances can run in parallel
  Remove an unsafe programming practice from test-fdleak; add XX comments
  Try and fix compilation and running of test-fdleak on Windows.
  Allow compilation on machines that do not have setrlimit.
  Simply test-fdleak by running server & client sockets in the same event loop.
  Add a new test: test-fdleak which tests for fd leaks by creating many sockets.
  If accept4 is absent, fall back to accept.
  Avoid leaking fd in evutil_socket() by Linux.
  Remove the last vestiges of _EVENT_USE_EVENTLIST
  Add doxygen for event_base_dump_events
  Refactor the functions that run over every event.
  Fix an "unused return value" warning on write() in signal handler
  Start work on a 2.1 changelog and whats-new
  Add another caveat to the TCP_DEFER_ACCEPT documentation
  Support TCP_DEFER_ACCEPT sockopts for listeners
  Stop crashing in evdns when nameserver probes give a weird error
  Changed OPENSSL_LDFLAGS to OPENSSL_LIBADD
  Added OPENSSL_LDFLAGS env variable which is appended to SSL checks.
  If open(O_CLOEXEC) fails, fall back to fcntl(CLOEXEC)
  Fix up usage of reserved identifiers in ht-internal.h
  Port changes from Tor for ht-internal.h
  Invert the sense and the name of HT_CACHE_HASH_VALUES
  Synchronize with upstream tinytest
  Merge in a punctuation fix from upstream tinytest
  Move libevent 1.x headers to include/, to put all public headers in one place.
  Tweak the evutil_open_closeonexec patch to work on windows, old unixes.
  Make uses of open() close-on-exec safe by introducing evutil_open_closeonexec.
  Add a bufferevent_getcb() to find a bufferevent's current callbacks
  Also make win32select.c conditional for IDE users
  Add an empty section to the changelog for 2.0.18-stable
  Correct a name in the credits. oops
  Bump version to 2.0.17-stable-dev
  Update the credits in the readme
  Finalize the changelog
  Fix compilation on osx
  Update copyright notices to 2012
  Bump version to 2.0.17-stable
  Prefer epoll_create1 on Linuxen that have it
  Save some syscalls when constructing a socket for a bufferevent
  Save some syscalls when creating evdns sockets
  Save syscalls when constructing listener sockets for evhttp
  Use pipes for telling signals to main thread when possible
  Use a wrapper function to create the notification pipe/socketpair/eventfd
  The LEV_OPT_CLOSE_ON_EXEC flag now applies to accepted listener sockets too
  Minimize syscalls during socket creation in listener.c
  Infrastructure for using faster/fewer syscalls when creating sockets
  In the kqueue backend, do not report EBADF as an EV_READ
  Avoid crash when freeing event_iocp and using event_set_mem_functions
  Put #ifdef around some files to support alternate build systems.
  Bring the changelog up to date
  Loop on filtering SSL reads until we are blocked or exhausted.
  Replace more C99/C++ comments with oldschool /* */ comments
  Use C-style comments in C source files (for compatibility with compilers such as xlc on AIX).
  evdns: fix a bug in circular-queue implementation
  Fix a compile warning in event_reinit
  Remove the eventqueue list and the ev_next pointers.
  Make test-changelist faster
  Check changelist as part of checking representational integrity
  Restore fast-path event_reinit() for slower backends
  Make event_reinit() more robust and maintainable
  Better workaround for Linux 3.2 edge-triggered epoll bug
  Do a memberwise comparison of threading function tables
  When including an -internal.h header outside the main tree, do so early
  Allow more slop in deferred_cb_skew test; freebsd needs it
  Remove a couple of now-unused variables
  Make event_base integrity check work on windows
  Start writing a changelog for 2.0.17-stable
  Use test_timeval_diff_eq more consistently
  Make regression tests run over 3x faster.
  New evhttp function to adjust initial retry timeout
  Reduce the timeout in the main/fork test.
  Add an (internal) usleep function for use by unit tests
  Oops:remove an accidentally committed "sleep(1)" in a unit test
  Workaround in the unit tests for an apparent epoll bug in Linux 3.2
  Fix a fd leak in event_reinit()
  Fix a list corruption bug when using event_reinit() with signals present
  Check event_base correctness at end of each unit test
  Fix compilation of windows evutil_check_ifaddrs
  Add function to check referential integrity of an event_base
  Force strict validation of HTTP version in response.
  Suppress a gcc warning from ignoring fwrite return in http-sample.c
  Fix a race condition in the dns/bufferevent_connect_hostname test.
  Make evconnlistener work around bug in older Linux when getting nmapped
  Remove bogus casts of socket to int before calling ev_callback
  Backport evhttp_connection_get_bufferevent to Libevent 2.0
  Slightly clarify evbuffer_peek documentation
  Fix behavior of evbuffer_peek(buf,-1,NULL,NULL,0)
  Remove some accidentally-committed debugging code
  whitespace fixes
  check for sysctl before we use it
  Split up extra-long AC_CHECK_FUNCS/HEADERS lines in configure.in
  Use getifaddrs to detect our interfaces if possible
  Changed use of refcounts to make sure referenced chains are freed in all cases.
  Add evbuffer_copyout_from to copy data from the middle of a buffer
  Bypass event_add when using event_base_once() for a 0-sec timeout
  Fix a silly compilation error with the sun compiler
  Be absolutely sure to clear pncalls before leaving event_signal_closure
  fix windows compilation issues with new file segment code
  Fix two issues in the allow_dirty_shutdown code.
  Tweak allow_dirty_shutdown documentation
  Allow users to set allow_dirty_shutdown
  bev_ssl: Be more specific in event callbacks. evhttp in particular gets confused without at least one of BEV_EVENT_{READING|WRITING}.
  Increment version to 2.0.16-stable-dev
  Increment version to 2.0.16-stable
  Revise 2.0.16-stable changelog
  add comment to new consider_reading code
  Avoid spinning on OpenSSL reads
  Move SSL rate-limit enforcement into bytes_to_read()
  Refactor amount-to-read calculations in buffervent_ssl consider_reading()
  Revert "Avoid potential SSL read spinlocks"
  Revert "openssl bufferevent has the same issue with writing as prior commit."
  Add new entries to changelog, new credits to README
  Fix DNS memleak checks when running with malloc-replacement/debugging disabled
  Don't try to make notifiable event_base when no threading fns are configured
  Warn when unable to construct base because of failing make_base_notifiable
  openssl bufferevent has the same issue with writing as prior commit.
  Avoid potential SSL read spinlocks
  unit tests for EVBUFFER_EOL_NUL
  New EVBUFFER_EOL_NUL to read NUL-terminated strings from an evbuffer
  Tweaks, fixups, and comments on evbuffer_add_iovec
  Added evbuffer_add_iovec and unit tests.
  Improve win32 behavior of dns-sample.c codex
  Fix typo in whatsnew-2.0.txt
  Use the free-trailing-chains function in evbuffer_insert_chain too
  Fix an evbuffer crash in evbuffer_remove_buffer()
  improve test to remove at least one buffer from src
  unit test for remove_buffer bug
  Fix compile warning from saying event2/*.h inside a comment
  epoll: close fd on alloc fail at initialization
  evhttp: Add evhttp_foreach_bound_socket.
  Update copyright dates to 2011.
  New event_base_update_cache_time() to set cached_tv to current time
  Add argument checks to some memory functions in `event.c'.
  Add note about evhttp_send_reply_end to its doxygen
  More detailed message in case of libevent self-debugging failure.
  Style and comment tweaks for dns/leak* tests
  Test for commit aff6ba1
  Empty DNS reply with OK status is another way to say NODATA.
  Tests for 94fba5b and f72e8f6
  fixed typo
  added comments to describe refcounting of multicase chains
  Bump version to 2.0.15-stable-dev
  Credit a patch from a one-named user
  Increment version to 2.0.15-stable
  Add changelog for 2.0.15-stable
  bufferevent: Add functions to set/get max_single_read/write values.
  Make evbase_priority_init() and evbase_get_npriorities() threadsafe
  Add event_base_get_npriorities() function.
  refer to non-deprecated evdns functions in comments
  Make evbuffer_file_segment_types adaptable
  New EVLOOP_NO_EXIT_ON_EMPTY option to keep looping even when no events are pending
  Allow evconnlistener to be created in disabled state.
  Fix some "value never used" warnings with gcc 4.6.1
  Make write-checking fixes use tt_fail_perror
  Fixed compiler warnings for unchecked read/write calls.
  Prefer mmap to sendfile unless a DRAINS_TO_FD flag is set. Allows add_file to work with SSL.
  Make evbuffer callbacks get the right n_added value after evbuffer_add
  Use _SOURCES, not _sources, in sample/Makefile.am
  le-proxy and regress depend on openssl directly
  Add DNS_ERR_NODATA error code to handle empty replies.
  Fix docstring in dns.h
  Build with large-file support on platforms where it matters
  Clarify event_enable_debug_logging a little
  Remove calls to deprecated bufferevent functions from evhttp.c
  Add evhttp callback for bufferevent creation; this lets evhttp support SSL.
  Implement --enable-gcc-hardening configure option
  Make gcc warnings on by default, and --enable-gcc-warnings only add -Werror
  When a signal callback is activated to run multiple times, allow event_base_loopbreak to work even before they all have run.
  DNS: add ttl for negative answers using RFC 2308 idea.
  Make --enable-verbose-debug option match its help text
  Increment version to 2.0.14-stable-dev
  Credit new contributors for 2.0.14-stable
  Pick a release date for the changelog
  Bump version to 2.0.14-stable
  Use SIG_IGN instead of a do-nothing handler for signal events with kqueue
  Fix OSX build: $(OPENSSL_INCS) needs to be after $(AM_CPPFLAGS).
  clear read watermark on underlying bufferevent when creating filtering bev to fix potentially failing fragmented ssl handshakes
  Checkpoint changelog entries for 2.0.14-stable
  Correctly terminate IO on an async bufferevent on bufferevent_free
  Have test-ratelim.c support IOCP
  Make IOCP rate-limiting group support stricter and less surprising.
  Support negative arguments to _bufferevent_decrement_(read/write)_buckets()
  We need AM_CPPFLAGS when compiling bufferevent_openssl.c
  Use pkg-config (if available) to handle OpenSSL.
  Provide the autoconf m4 macros for the new OpenSSL via pkg-config stuff.
  Cleanup on 7c11e51e1ab: fix strtol usage
  Cleanup on 7c11e51e1ab: restore c90 declaration compliance
  Clean up some problems identified by Coverity.
  Make rate limiting work with common_timeout logic
  Make overlapped reads result in evbuffer callbacks getting invoked
  IOCP: don't launch reads or writes on an unconnected socket
  Try to fix 'make distcheck' errors when building out-of-tree
  Make the priority inversion code use gettime(), not evutil_gettimeofday()
  Make max_dispatch_interval able to apply only to low-priority events
  Optimization in event_process_active(): ignore maxcb & endtime for highest priority events.
  Make sure max_dispatch_callbacks is never negative
  Add event_config function to limit time/callbacks between calls to dispatch
  Solaris sendfile: correctly detect amount of data sent
  Fix request_finished memory leak with debugging turned on.
  Fix evsig_dealloc memory leak with debugging turned on.
  Another docstring fix.
  more event dbg updates
  Fix handling of group rate limits under 64 bytes of burst
  added timeout debug logs to include event ptr.
  Added usec debug in another area for debug
  Debug addition for printing usec on TIMEOUT debugging.
  Ignore deprecation warnings on OS X
  prevent nested multicast references, reworked locking
  support adding buffers to other buffers non-destructively
  Allow OS-neutral builds for platforms where some versions have arc4random_buf
  changed to --enable-verbose-debug
  Propagate errors on the underlying bufferevent to the user.
  Added --enable-event-debugging in configure
  Add missing break to evhttp_parse_request_line
  Fix typo in event_compat.h comments.
  Bump version to 2.0.13-stable-dev
  Bump version to 2.0.13-dev
  acks and changelog for 2.0.13-stable
  Give Makefile.am echo a non-null argument. msys likes this
  Fix a warning in evutil_rand when building with threads disabled
  Use AM_CPPFLAGS in sample/Makefile.am, not AM_CFLAGS
  Add doxygen to .gitignore
  Fix up test_evutil_snprintf
  Fix a test-call accidentally in the last commit
  More abstraction in test.sh
  Update Doxyfile to produce more useful output
  Revise the event/evbuffer/bufferevent doxygen for clarity and accuracy
  Use "unlimited select" on OSX so that we can have more than FD_SETSIZE fds
  Fix select.c compilation on systems with no NFDBITS
  Speed up invoke_callbacks on evbuffers when there are no callbacks
  Fix bug in SSL bufferevents backed by a bev with a write high-watermarks
  Fix a few warnings on OpenBSD
  Fix AIX build issue with TAILQ_FOREACH definition
  Don't install event_rpcgen.py when --disable-libevent-install is used
  Set the special "not found" evbuffer_ptr consistantly.
  Don't break when building tests from git without python installed
  Improve evbuffer_ptr documentation
  Tweaks to return types with end-of-buf ptrs
  Allow evbuffer_ptr to point to position 0 in an empty evbuffer
  Allow evbuffer_ptr_set to yield a point just after the end of the buffer.
  Add failing test for evbuffer_search_range.
  Simplify windows commandname logic in tinytest
  Fix tinytest invocation from windows shell
  Use the correct printf args when formatting size_t
  Check if the `evhttp_new_object' function in `http.c' returns NULL.
  Report kqueue ebadf, epipe, and eperm as EV_READ events
  Replace an assertion for event_base_free(NULL) with a check-and-warn
  Add some missing checks for mm_calloc failures
  Remove a needless branch in evbuffer_drain()
  Fix a bug in the improved EOL_CRLF code
  Fix incorrect results from evbuffer_search_eol(EOL_LF)
  Bump version to 2.0.12-stable-dev
  tweak date on changelog
  Changelog and new credits for 2.0.12-stable
  Bump version to 2.0.12-stable.  Not release just yet
  Fix regress_ssl.c build on openbsd
  Fix windows file segment mappings
  Avoid a segfault when all methods are disabled or broken
  Try to squeeze a little more speed out of EVBUFFER_EOL_CRLF
  cygwin: make it possible to build DLLs
  Roughly 20% speed increase when line-draining a buffer using EVBUFFER_EOL_CRLF
  Fix a fencepost bug in the select backend
  Make the new http_connect_fail_test use a multicast addr, not broadcast
  InitializeCriticalSectionAndSpinCount requires _WIN32_WINNT >= 0x0403.
  Allow base-notification functions to exist without setting an fd
  Reenable main/many_events_slow_add for evport in 2.1
  evport: Remove artificial low limit on max events per getn call
  evport: don't scan more events in ed_pending than needed
  evport: Use portev_user to remember fdinfo struct
  evport: Remove a linear search over recent events when reactivating them
  evport: use evmap_io to track fdinfo status. Should save time and RAM.
  Fix a couple of signed/unsigned warnings in http.c
  Disable main/many_events_slow_add with evport backend
  Fix compilation.
  updated EV_S(s)IZE definitions
  Added overflow checks in evhttp_read_body and evhttp_get_body
  Added several checks for under/overflow conditions in evhttp_handle_chunked_read
  Always use evutil_snprintf, even if OS provides it
  Do not define WIN32 in Makefile.nmake
  In configure, test for _WIN32 not WIN32.
  Use "_WIN32", not WIN32: it's standard and we don't need to fake it
  Use evutil_gettimeofday instead of relying on the system gettimeofday.
  Fix winsock2.h #include issues with MSVC
  Make sure TINYTEST_LOCAL is defined when building tinytest.c
  unistd.h and sys/time.h might not exist.
  MSVC does not provide S_ISDIR, so provide it manually.
  Bring in the compile script from automake, if needed.
  Make the tests build when OpenSSL is not available.
  Link with -lshell32 and -ladvapi32 on Win32.
  Fix new warnings from GCC 4.6
  Prevent size_t overflow in evhttp_htmlescape.
  Fix a bug that prevented us from configuring IPv6 nameservers.
  Test case for 0848814ac49616
  Fix failing assertion introducd in commit 0d6622e
  Fix compilation with GCC 2, which had no __builtin_expect
  Fix a compile warning with zlib 1.2.4 and 1.2.5
  Correctly detect openssl on windows
  Performance tweak to evhttp_parse_request_line.
  Move the win32 detection in configure.in
  Use OPENSSL_LIBS in Makefile.am
  Libtool brings in the dependencies of libevent_openssl.la automatically
  libssl depends on libcrypto, not the other way around.
  Oops; that new unit test breaks for epoll.  Fix it.
  Fix a warn-and-fail bug in kqueue by providing kevent() room to report errors
  Add missing words to EVLOOP_NONBLOCK documentation
  Bump version to 2.0.11-stable-dev
  Increment version number to 2.0.11-stable
  Add more people to the acknowledgments
  Changelog for 2.0.11-stable
  Fix clang warning when resetting connection
  Use AM_CONDITIONAL, not AC_SUBST, to tell automake to build regress
  Fix msvc build: it needed to know about _EVENT_HAVE_STRUCT_SOCKADDR_STORAGE
  Try to fix up CHECK_REGRESS hack to not break on win32
  Add missing header for regress_http compilation on win32
  call setsockopt correctly on connecting() IOCP-bufferevents so shutdown() will work
  Zero a struct sockaddr_in before using it
  Remote some dead code from dns-example.c
  Check return value of evbuffer_add_cb in tests
  Be nice and "handle" error return values in sample code
  Refactor test_getaddrinfo_async_cancel_stress()
  add some (void) casts for unused variables
  Actually send NULL request in http_bad_request_test
  Add a forgotten return value check in the unit tests
  Add an assert to appease clang's static analyzer
  Fix possible NULL-deref in evdns_cancel_request
  Add a forgotten NULL check to evhttp_parse_headers
  Fix compilation under LLVM/clang with --enable-gcc-warnings
  Complain if the caller tries to change threading cbs after setting them
  Avoid race-condition when initializing global locks
  Fix a memory leak on win32 socket->event map.
  Handle calloc failure in evdns. (Found by Dave Hart)
  Fix a crash bug in evdns server circular list code
  Fix a couple of memory leaks in samples/http-server.c. Found by Dave Hart.
  Avoid a free(NULL) if out-of-memory in evdns_getaddrinfo. Found by Dave Hart
  Fix the check for multicast or broadcast addresses in evutil_check_interfaces
  Check for allocation failures in apply_socktype_protocol_hack
  Fix the case when failed evhttp_make_request() leaved request in the queue.
  Fix subtle recursion in evhttp_connection_cb_cleanup().
  Reset outgoing connection when read data in idle state.
  Add comment to configure.in to explain gc-sections test logic
  Fix for --gc-sections on NetBSD
  Fix make distcheck & installation of libevent 1 headers
  Fix incorrect assertions and possible use-after-free in evrpc_free()
  munge the debug_lock signature before freeing it: it might help us catch use-after-free
  Add a magic number to debug_locks to better catch lock-coding errors.
  In the 2.1 branch, let's try out lazy gettimeofday/clock_gettime comparison
  Disable lazy gettimeofday/clock_gettime comparison for now
  Followup for Tomash Brechko's http patch
  Workaround libevent bug https://sourceforge.net/tracker/index.php?func=detail&aid=3078187&group_id=50884&atid=461324
  Have event_base_gettimeofday_cached() always return wall-clock time
  Make --no-libevent-install apply to event1 headers too
  Make --no-libevent-install apply to headers too
  Continue AM_CFLAGS to AM_CPPFLAGS correction
  Make event_count maintainance branchless at the expense of an extra shift. Needs benchmarking
  possible optimization: split event_queue_insert/remove into separate functions. needs testing
  Add new evhttp_{connection_}set_timeout_tv() functions to set finger-grained http timeouts
  Make -ffunction-sections off-by-default in 2.0.x
  Remove nonfunctional enable_libevent_(install|regress)_def variables
  Use $(), not @@, for LIBEVENT_GC_SECTIONS
  Be explicit about how long event loops run in event.h documentation
  Use %s with printf in test.sh
  Correct an AM_CFLAGS to an AM_CPPFLAGS in test/Makefile.am
  Add configure options to disable installation, regression tests
  Add -D_OSF_SOURCE to fix hpux builds
  Use the gcc -ffunction-segments feature to allow gc when linking with static libevent
  Check for getservbyname even if not on win32.
  Fix autoconf bracket issues; make check for getaddrinfo include netdb.h
  Skip check for zlib if we have no zlib.h
  Make test-eof fail with a timeout if we never get an eof.
  FIX: comment internal headers used in sample code.
  NM: Fix sample/http-server ipv6 fixes
  Include util-internal.h as needed to build on platforms with no sockaddr_storage
  Include arpa/inet.h as needed on HPUX
  Correctly detect and stop non-chunked http requests when the body is too long
  fix spelling mistake in whatsnew-2.0.txt
  Correct evhttp_del_accept_socket documentation on whether socket is closed
  Clarify event_set_mem_functions doc
  Make URI parser able to tolerate nonconformant URIs.
  Fix a type error in our (unused) arc4random_stir()
  Fix warnings about AC_LANG_PROGRAM usage
  Save a needless comparison when removing/adjusting timeouts
  Remove a needless base-notify when rescheduling the first timeout
  Optimize the case where we reinsert an existing timeout
  Fix test.sh output on solaris
  Do not check for gethostbyname_r versions if we have getaddrinfo
  Add compile-time check for AF_UNSPEC==PF_UNSPEC
  Fix http unit test on non-windows platforms without getaddrinfo
  Build on systems without AI_PASSIVE
  Try to build correctly on platforms with no IPv6 support
  Build correctly on platforms without sockaddr_storage
  Fall back to sscanf if we have no other way to implement strtoll
  Make --enable-gcc-warnings a no-op if not using gcc
  Allow use of --enable-silent-rules for quieter compilation with automake 1.11
  Correctly free selectop fields when select_resize fails in select_init
  Handle resize failures in the select backend better.
  Use event_err() only if the failure is truly unrecoverable.
  Detect and handle more allocation failures.
  Add evconfig-private to remaining files
  Shell hack for weird mkdir -p commands
  ...
c3caac1
@azat azat added a commit to azat/libevent-deb that referenced this issue Nov 8, 2014
@azat azat Merge remote-tracking branch 'main/master' into 2.1.4-release-4
* main/master: (2905 commits)
  Provide support for SO_REUSEPORT through LEV_OPT_REUSABLE_PORT
  Fix a typo in a doxygen comment. Reported by 亦得.
  evdns: fail ns after we are failing/retrasmitting request
  evdns: add retry/reissue tests for EVDNS_BASE_DISABLE_WHEN_INACTIVE
  evdns: fix EVDNS_BASE_DISABLE_WHEN_INACTIVE in case retransmit/retry
  Fix compilation for older OpenSSL versions.
  bufferevent_openssl: reset fd_is_set when setfd with -1 is called
  https-client: add -retries argument, for connection retries
  [Bugfix] fix bufferevent setwatermark suspend_read
  Fix several memory leaks in the unit tests.
  Fix for a677b72bd6d9d378daf9775966aa8ca574e26e67
  Make a buffer larger in the tests to avoid a scary evbuffer_copyout_from()
  Use a more precise calculation for max in time-ratelim.c
  Use evutil_weakrand() in unit tests.
  Fix a c90 warning
  Fix a dead-code warning in unit tests. CID 1193548
  Fix a use-after-free in unit tests. CID 752027
  Fix use-after-free error in EV_CLOSURE_EVENT callback
  regress_buffer: fix 'memcmp' compare size
  use correct tt macro for pointer compare
  make bufferevent_getwatermark api more robust
  [Bugfix] fix grammer error
  updates in cmake build
  Correctly handle allocation failures in evdns_getaddrinfo
  Consistently check for failure from evbuffer_pullup()
  Use FindClose for handle from FindFirstFile in http-server.c
  Change return type of evutil_load_windows_system_library_ to HMODULE
  Fix issue #127, double free for filterevents that use BEV_OPT_CLOSE_ON_FREE
  Add a few files created by "make verify" to .gitignore.
  test/regress: add simplestsignal: to track reorder bugs separately
  add a --disable-samples configure flag
  ignore config.cache/test-driver files
  Handle ENOTCAPABLE from FreeBSD - this is returned if an event in the changelist is for an FD that has been closed.
  Make http-server.c output into good html5
  Update to a more recent tinytest_macros.
  ignore one more test binary
  regress dns: drop alarm() (since windows don't have it)
  evdns: we don't need to add retry timer in transmit_to it will be done on fail
  evdns: add regress test for flag EVDNS_BASE_DISABLE_WHEN_INACTIVE without ns
  evdns: add regress for EVDNS_BASE_DISABLE_WHEN_INACTIVE base flag
  evdns: disable probing with EVDNS_BASE_DISABLE_WHEN_INACTIVE
  tree.h: drop duplicated content of tree.h
  test/http: add regress test for set family to AF_INET6
  test: add regress for evhttp_connection_set_family() with AF_INET and AF_UNSPEC
  test: add family argument for http_connection_test_()
  Fix a crash in evdns related to shutting down evdns
  Add missing headerfile for cmake
  regress_dns: fix leaks in getaddrinfo_async{,_cancel_stress} tests
  Fix a crash in evdns related to shutting down evdns
  Increment version to 2.1.4-alpha-dev
  Update release date in changelog
  Don't truncate hosts file path on Windows.
  Load hosts file on Windows.
  Add evhttp_connection_set_family() to set addrinfo->family for DNS requests
  Fixup make install for cmake projects
  Renamed sin to saddr due to name conflict
  Correctly skip ipv6 http test on systems without ipv6
  Remove integer-overflow unit tests
  evtag: detect tags over 32-bits earlier
  Catch over-large port numbers early in http
  Fix ubsan warnings when parsing ipv4/ipv6 addrs
  Fix a use-after-free error on EV_CLOSURE_EVENT_FINALIZE callbacks
  Fix an illegal read error in the evbuffer_add_reference tests
  Add new APIs to whatsnew-2.1
  Increment version to 2.1.4-alpha
  Bring changelog up to date for 2.1.4-alpha
  Avoid double-close paths in http tests
  Add missing include to regress_finalize.h
  Skip http/ipv6_for_domain test when we have no ipv6 support
  Add an include to evrpc-internal to fix openbsd compilation warning
  Heap-allocate zlib data structure in regress_zlib tests
  Fix consts in WIN32-Code/getopt*.[ch]
  Fix duplicate paragraph in evbuffer_ptr documentation
  Initialize async bufferevent timeout CBs unconditionally
  add a cast to https-client.c
  Export event_extra not event_extras.
  Update to the latest version of tinytest
  Fix 'make distcheck' by adding regress.gen.[ch] to DISTCLEANFILES
  Move assert(ev) to before we use ev in EV_CLOSURE_EVENT_FINALIZE case
  Add -Qunused-arguments for clang on macos
  Add option to build shared library
  Do not offer EV_FEATURE_EARLY_CLOSE if we have no EPOLLRDHUP
  Stop checking for inet_aton; we don't use it.
  Rename event_extras to event_extra
  BUGFIX: Fix compilation on systems with EPOLLRDHUP undefined.
  Add cmake-related files to .gitignore
  Added -Qunused-arguments for clang on macosx
  bufferevent_pair: don't call downcast(NULL)
  Tweaked callbacks to prevent race condition (https://github.com/libevent/libevent/issues/104)
  Tweaked callbacks to prevent race condition (https://github.com/libevent/libevent/issues/104)
  Added a Travis-CI configuration file.
  Check does arch have the epoll_create and __NR_epoll_wait syscalls.
  Check for OSX when checking for clang.
  Guard against EVENT_NOWIN32 being set during testing.
  Fix https-client compilation on Windows.
  CMake: Get rid of python not found warning when regress tests turned off.
  Fix CMake compile when OpenSSL is disabled.
  Split epoll lookup table into a separate header file
  Expand EV_CLOSED documentation a bit
  Disclaimerize cmake a little in the README
  Fix broken autotools build.
  Fix a c90 warning
  Check if we're on OSX before disabling deprecation in le-proxy
  Change all uses of WIN32 to _WIN32
  Fix include bug.
  Implemented EV_CLOSED event for epoll backend (EPOLLRDHUP).
  Forgotten headers for old nmake project compatability.
  Clean up the README some.
  Update README with CMake build instructions.
  Rename README to README.md and use markdown to format.
  Fix so that old nmake project still builds.
  Set USE_DEBUG=1 on EVENT__ENABLE_VERBOSE_DEBUG
  Some work on making it possible to simply do add_subdirectory() on the project.
  Fix typo
  Add CMake config and install targets.
  Fix even more coverity warnings.
  Fix a couple of compilation warnings in regress_http.c
  Remove spurious checks in evrpc.c error cases (coverity)
  Whoops; fix compilation in bench.c
  Fix coverity warnings in benchmark tools.
  Fix a pile of coverity warnings in the unit tests
  Update unit test to make sure that the callback happens after the output data is written
  evhttp_request_set_on_complete_cb to be more specific about what the function actually does and usage
  Provide on request complete callback facility
  Added unit test for max event counts
  Fixed bug using wrong variable in max event compare
  Add access to max event count stats
  Remove unneeded declaration in bufferevent-internal.h
  Fix needless bufferevent includes in evdns.c
  Fix a couple of "#ifdef WIN32" instances
  Sample HTTPS Client: Set hostname for SNI extension (by f69m)
  fix for ServFail from RIPE Atlas release
  Small tweaks to https-client.c
  Minor optimizations on bufferevent_trigger options
  Make bufferevent_trigger_nolock_() inline
  Unit tests for active_by_fd; unsupport active_by_fd(TIMEOUT)
  Add event_base_active_by_signal by analogy
  Sanity-check arguments to event_base_active_by_fd()
  Refactor evmap_{io,signal}_active_() to tolerate bad inputs
  Typo fixes from Linus Nordberg
  Typo fixes from Linus Nordberg
  Added EVENT__ENABLE_GCC_WARNINGS, turns all warnings into errors.
  Only look for ZLib when it is used (if tests are included).
  Fix the "make verify" target on NetBSD
  Add a "make verify_coverage" target generation coverage info.
  Get rid of unknown pragma warnings.
  Minimum required python version is 2.4.
  Change the BSD license from 4 to 3-clause.
  Added a test for testing if kqueue works with pipes.
  Fix kqueue support.
  Get rid of deprecation warnings for OpenSSL on OSX 10.7+
  Fix the make "verify" target on Windows.
  Clarify event_base_loop exit conditions
  Added a "make verify" target.
  Only test the event backends available on the system.
  Don't segfault on no found event backend.
  Fix bench_cascade program on Windows.
  Only include WIN32 getopt where it is used.
  Add copyright and licensing files for CMake modules.
  Use evutil_closesocket instead.
  Added some GCC specific options.
  Link libm on unix platforms.
  Generate a dummy evconfig-private.h so things build properly.
  More work on adding tests to CMake project
  Add all tests and benchmarks to CMake project.
  Initial CMake commit.
  Fix non-C89 variable declaration.
  Fix non-C89 variable declaration.
  Rename flush_outdated_host_addresses to clear_host_addresses
  bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated addresses
  bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated adresses
  Clarifications in response to merge req. comments
  start writing a changelog for 2.1.4-(beta?)
  update the 2.0 changelog
  Add an option to trigger bufferevent event callbacks
  Add an option to trigger bufferevent I/O callbacks
  Add watermark introspection
  Document deferred eventcb behaviour
  Fix a typo
  Try another doxygen tweak
  Small doxygen tweaks
  Allow registering callback for parsing HTTP headers
  Add a variant of evhttp_send_reply_chunk() with a callback on evhttp_write_buffer()
  Avoid redundant invocations of init_extension_functions for IOCP
  regress_http: add tests for evhttp_connection_get_addr()
  http: implement new evhttp_connection_get_addr() api.
  Tweak indentation
  regress_main: logging all if env EVENT_DEBUG_LOGGING_ALL isset
  add a http default content type option
  Fix another arc4random_buf-related warning
  Fix a compiler warning when checking for arc4random_buf linker breakage.
  rpcgen: Generate regress.gen.[c,h] in build rather than src dir
  Avoid racy bufferevent activation
  Fix reinit of fds with EV_WRITE but not EV_READ.
  Check CLOCK_MONOTONIC_* at runtime if needed.
  Really remove RNG seeds from the stack
  Oops; revert testing code
  Avoid other RNG initialization FS reads when urandom file is specified
  Finish a sentence
  sample: drop uri_root from base_url in http-server.
  Add an assertion for another of the complaints from coverity. See 1b065d07df196
  test_evutil_rtrim: add another missing check.
  Finalize tests: add a missing check
  DNS tests: add a missing check
  Fix some crash-on-fail cases in DNS regression tests
  Add missing check to test_evbuffer_file_segment_add_cleanup_cb
  Fix a logic error in test_evbuffer_freeze
  Fix a (failure-only) null dereference in the unit tests
  Use void casts to suppress some "unchecked return value" warns
  sample/le-proxy: Fail more gracefully if opening listener fails
  Fix an unlikely but possible error case for http connections
  Move event_debug_note_teardown_ before mm_free.
  Add some assertions to please coverity.
  Fix compilation
  Add evutil_secure_rng_set_urandom_device_file
  Remove an unreachable return statement in minheap-internal.h
  Avoid leaking segment mappings when offset is not a page multiple
  Add checks for evhttp_connection_get_server() in unit tests.
  Add evhttp_connection_get_server().
  Add Maxime Henrion to README
  libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer)
  Pass and return const for bufferevent_get_token_bucket_cfg
  Add function to fetch underlying ratelimit cfg
  We should return after arc4random_buf()
  Don't use return since return type is void and build error occurs using clang
  Added event_base_get_num_events()
  Document that arc4random is not a great cryptographic PRNG.
  When we seed from /proc/sys/kernel/random/uuid, count it as success
  restore the comment
  Fix SEGFAULT after evdns_base_resume if no nameservers installed.
  Actually use the log facility for reporting evdns problems.
  Use windows vsnprintf fixup logic on all windows environments
  Remove a debugging assert that should not have been left in
  Fix locking in bufferevent_get_options_().
  Fix a double close() bug in evhttp when the underlying bufferevent uses BEV_OPT_CLOSE_ON_FREE.
  Avoid redundant syscall if making a socket cloexec twice
  Avoid redundant syscall to make a nonblocking socket nonblocking
  If evsel->del() fails, don't leave the evmap in an inconsistent state.
  Fix dns/leak_resume_send_err test.
  Add tests for evdns_base_resume().
  Fix SEGFAULT after evdns_base_resume if no nameservers installed.
  Whoops. It is gdi.lib, not gdi32.lib. (github issue #61)
  Missed lock acquire/release in event_base_cancel_single_callback_()
  Fix test compilation with nmake: add the gdi.lib dependency
  Checking request nameserver for NULL, before using it.
  Bump version to 2.1.3-alpha-dev
  Add regress_finalize to makefile.nmake
  Set a release date
  Make http/connection_retry off-by-default
  Fix a windows compilation regression
  Fix a bug in fixing a bug in out-of-tree test-dumpevents
  Make regress_finalize work with malloc replacement disabled
  Fix some out-of-tree build bugs
  Incremement version to 2.1.3-alpha
  Add acknowledgements to readme
  Start editing the changelog for 2.1.3-alpha
  Mark the finalize stuff as experiemental in case it needs to change
  Start a changelog for Libevent 2.0.22-stable
  Clarify an important point about event_base_foreach_event()
  Fix a bug in the new main/event_foreach test
  More unit tests for initializing common timeouts.
  A test for event_get_assignment()
  Unit tests for event_base_gettimeofday_cached() and event_base_update_cache_time()
  New tests for event_base_foreach_event()
  New test for active_later->active transition on event_active
  Remove a no-longer-true XXXX comment.
  Make the event_finalize* functions return an error code
  More documentation for finalization feature
  Remove bufferevent_del_generic_timeout_cbs as now unused
  Always run pending finalizers when event_base_free() is called
  Use finalization feature so bufferevents can avoid deadlocks
  Add some verbose notes to bufferevent unit tests
  Implement event_finalize() and related functions to avoid certain deadlocks
  Make all tests pass under EVENT_DEBUG_MODE=1
  Drop extra header http_struct.h from regress_http.c
  Add test for EVREQ_HTTP_REQUEST_CANCEL into http_cancel_test()
  Add new error_cb for actual reporting of HTTP request errors.
  Fix another warning introduced in 0c6ec5d8
  Fix a warning introduced in 0c6ec5d8
  evdns: New flag to make evdns not prevent the event loop from exiting
  event_base_update_cache_time should be a no-op if the loop isn't running
  https-client: code cleanup
  Add a test with an active_later event at event_base_free time.
  Another tweak to https-client.c
  Remove http_struct.h usage in sample/https-client.c
  Add an environment variable (EVENT_DEBUG_MODE) to run unit tests in debug mode
  Do not build strlcpy.c when it will have no code.
  Specify return behavior in header for evbuffer_pullup() in corner case
  Fix a typo in a comment in buffer.h. Spotted by Alt_F4
  build test/test-script.sh on systems with a less-featureful $<
  Make --disable-libevent-regress work again
  POST supported, args supported
  Double-check next timeout when adding events
  Test: decoding just part of string with evhttp_decode_uri_internal()
  Move prototype of evhttp_decode_uri_internal() to http-internal.h
  uri decode: changed the test for the existence of the next character
  uri decode: fix for warning "use of uninitialised value"
  pull in wildcard matching code from cURL
  avoid sign mismatch warning in openssl_hostname_validation.c
  use iSECPartners code to validate hostname in certificate
  use Debian's default root certificate location
  better handling of OpenSSL errors
  https-client was putting newlines at 256-byte boundaries
  use ${OPENSSL_LIBS} instead of -lssl -lcrypto
  Add sample/https-client.c, an example of stacking evhttp as a client on top of bufferevent_ssl.
  test filling up the hash table a bit
  use hashtable instead of linked list to cache winsock errors
  make sure caching works, and we don't leak memory
  use FormatMessage for winsock errors
  a program to print out the error strings for winsock errors
  fix #73 and fix http_connection_fail_test to catch it
  Unit test for event_remove_timer with EV_PERSIST.
  Make event_remove_timer behave correctly with persistent timers
  Avoid using $(top_srcdir) in TESTS.
  Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat
  Avoid using top_srcdir in TESTS-new automakes do not like this
  Rename configure.in to configure.ac to appease newer autoconfs
  Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat
  "buffer" spelling
  remove all exes on "make clean", not just regress.exe
  Fix a locking error in bufferevent_socket_get_dns_error.
  Preliminary changes for Minix3.
  Add regress test ipv6_for_domain.
  Implement EVUTIL_ERR_IS_EAGAIN on windows.
  Fix ipv6 support for http. When URL contain domain, not IP address.
  Fix a mistake in evbuffer_remove() arguments in example http server code
  fix some hinky indentation in evhttp_make_request
  Fix typo : Dispatching instead of Dispaching
  event_base_active_by_fd
  Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5)
  Fix missing AC_PROG_SED on older Autoconfs
  When EWOULDBLOCK is not EAGAIN, treat it as equivalent to it
  Fix harmless clang enum warning
  Fix comment to refer to sample/include.am correctly
  Avoid double-close on getsockname error in evutil_ersatz_socketpair
  Avoid leaking fds on evconnlistener with no callback set
  Fix cut-and-paste err in whatsnew-2.1
  minor documentation typos
  Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled
  Increment version to 2.0.21-stable-dev
  Increment version to 2.1.2-alpha-dev
  Fix a bug when running "make verify" out-of-tree
  Clean up and clarify a little more documentation
  Make the argument to bufferevent_get_priority const
  Avoid defining recommended functions in terms of deprecated ones
  Update "what's new in Libevent 2.1"
  Bump versions to 2.1.2-alpha
  Update changelog for 2.1.2-alpha
  Update ChangeLog-2.0
  Fix a gcc warning in rtrim test
  Fix a warning when building without threading.
  Increment libtool version for 2.0.21 too
  Increment version to 2.0.21-stable
  Changelog for 2.0.21-stable
  Make ssl version check in unit tests work
  avoid valgrind false positive by zeroing epoll_event
  Make bufferevent_set_timeouts(bev, NULL, NULL) have plausible semantics
  Add an event_remove_timer() to remove timer on an event without deleting it
  Fix a couple of compile warnings in the unit tests
  Avoid crash when event_pending() called with no event_base set on event
  Use EVUTIL_SOCKET_ERROR() wrapper to save/restor errno in evhttp_connection_fail_
  add evhttp_request_get_response_code_line
  Move evutil_rtrim_lws_ to evutil.c where it belongs
  Remove internal ws from multiline http headers correctly
  Remove trailing tabs in HTTP headers as well.
  Clean up rtrim implementation
  ignore LWS after field-content in headers
  Use correct openssl libs and includes in pkgconfig file
  remove stray 'x' so print_err will compile when uncommented
  Make rpcgen_wrapper.sh work on systems without a "python2" binary
  Add a unit test in which an event is created with event_base_once() but never fires
  Free dangling event_once objects on event_base_free()
  Warn when openssl version in unit test mismatches compiled version.
  Fix renegotiation test to work around openssl 1.0.1 bug
  Use the same CFLAGS for openssl when building unit tests as with libevent
  preserve errno in evhttp_connection_fail_ for inspection by the callback
  Fix event_dlist definition when sys/queue not included
  Clean up unit test for evbuffer_file_segment_add_cleanup_cb a little
  Add a new callback to get called on evbuffer_file_segment free
  Fix compilation on mingw64 with -DUSE_DEBUG
  Fix a few mingw64 incompatibilities introduced since 2.0
  Fix some warnings found cross-compiling with mingw32
  Compile without warnings on mingw64
  Close IOCP listener socket on free when LEV_OPT_CLOSE_ON_FREE is set
  fix a few trivial documentation typos
  Use python2 rather than python
  Use python2 rather than python
  No need to reserve space if reading is suspended.
  Stop looping in "consider_reading" if reading is suspended.
  Fix typo : events instead of evets
  FIx another memleak on OOM in evdns
  Avoid a memory-leak on OOM in evdns.
  Add missing return value in event_base_foreach_event
  Don't discard SSL read event when timeout and read come close together
  Tweak patch for event_base_foreach_event()
  Expose event_base_foreach_event() as a public API.
  Prevent reference leak of bufferevent if getaddrinfo fails.
  Rename configure.in to configure.ac.
  We now require automake 1.9 or later. Modernize!
  Fix handling of no-python case for nonrecursive make
  Be quiet when making regress.gen.[ch]
  New --quiet option for event_rpcgen.py
  Make quiet build even quieter
  Rename subordinate Makefile.ams to include.am
  Switch to non-recursive makefiles
  Enable silent build rules by default. Override with V=1
  Use newer syntax for autoconf/automake init
  Increment version to 2.0.20-stable-dev
  Update ChangeLog-2.0
  Add a date to the changelog
  Increment version to 2.0.20-stable
  Initial changelog and credits for 2.0.20
  Add missing implementation for event_enable_debug_logging
  Rename event_enable_lock_debuging() to ..._debugging()
  Correctly invoke callbacks when a SSL bufferevent reads some and then blocks.
  Avoid test -e; older shs don't have one.
  Add deferred_cb_skew to list of timing-dependent tests
  Avoid unused-var warning on systems with clock_gettime but without CLOCK_MONOTONIC_COARSE
  Add explicit AC_PROG_SED to configure.in so all autoconfs will expose $(SED)
  Fix an unused variable warning on *BSD.
  Avoid segfault on weird timeout during name lookup.
  Extract common error-handling code in evconnlistener_new_bind
  Avoid double-free on error in evbuffer_add_file. Found by coverity.
  Check return value when using LEV_OPT_DEFERRED_ACCEPT. Found by coverity
  Check more setsockopt return values when binding sockets. Found by coverity
  memset sockaddr_in before using it. Found by coverity.
  Move assignment outside tt_assert in ssl unit tests. Appeases coverity.
  Add checks to various return values in unit tests. Found by coverity
  Avoid possible needless call to writev. Found by coverity.
  Remove unused variable; spotted by coverity
  Fix a shadowed variable in addfile_test_readcb; found by coverity
  Avoid memory leak in test_event_calloc unit test; found by coverity
  Add checks for functions in test-ratelim.c; found by Coverity
  Avoid more crashes/bad calls in unit tests; found by coverity
  Add some missing null checks to unit tests; found by coverity
  Fix resource leaks in the unit tests; found by coverity
  Fix various check-after-dereference issues in unit tests: found by coverity
  Set umask before calling mkstemp in unit tests. Found by coverity
  Fix another possible uninitialized read in dns regression tests. Found by coverity.
  Fix possible uninitialized read in dns regression tests. Found by coverity.
  Remove deadcode in http regression tests. Found by coverity.
  Add process.h include to evutil.c for _getpid
  Fix tinytset_skip to work with new tinytest_set_flag_ signature
  Fix compile error in win32 listener.c
  Fix a memory leak on error in evhttp_uriencode
  Win32: avoid crash when waiting forever on zero fds.
  Additional comments about OPENSSL_DIR variable, prompted by Dave Hart
  attempt to support OpenSSL in Makefile.nmake
  Make load-dependent monotonic timer tests off-by-default
  Avoid (unlikely) overflow in bench_httpclient.c
  Check return value of write() in regress.c
  Make all tests that hit the network disabled by default
  Update to latest tinytest (911b4f0349377)
  Make test_evutil_monotonic a little more tolerant
  Make th_base_lock nonrecursive
  remove a now-unused var in thread_deferred_cb_skew test
  Avoid a resource leak on error in http client benchmark
  Simplify and correct evutil_open_closeonexec_
  Avoid giving a spurious warning when timerfd support is unavailable
  Make event_pending() threadsafe.
  Add GCC annotations so that the vsprintf functions get checked properly
  Make the Makefile.nmake warning slightly less dire
  Add evutil_time.obj to Makefile.nmake
  Fix a couple of memory leaks (found with Valgrind).
  Fix a comment in test-fdleak after 077c7e949.
  Correctly check for arc4random_buf
  check for arc4random_buf at runtime, on OS X
  Make it more clear that NOLOCK means "I promise, no multithreading"
  Add caveat to docs about bufferevent_free() with data in outbuf
  Be more clear that LEV_OPT_DEFERRED_ACCEPT has tricky prereqs
  Remove unnecessary code in configure.in.
  Add an event_base_loopcontinue() to tell libevent to rescan right away
  Restore our priority-inversion-prevention code with deferreds
  Give event_base_process_active a single exit path
  Make event_base_getnpriorities work with old "implicit base" code
  Add a bufferevent_get_priority() function
  New event_get_priority() function to return an event's priority
  Replace more deferred_cb names with event_callback
  Replace deferred_cbs with event_callback-based implementation.
  event_base_assert_ok: check value of event_active_count for correctness
  Add "active later" event_callbacks to supersede deferred
  Remove the unused bits from EVLIST_ALL
  Refactor the callback part of an event into its own event_callback type
  Bump version to 2.0.19-stable-dev
  Increment version to 2.0.19-stable
  Oops; fix the *right* windows compile issue
  Fix win32 build issues: sleep, pid_t
  Start changelog for 2.0.19-stable
  Fix evdns build with threads disabled
  When retransmitting a timed-out DNS request, pick a fresh nameserver.
  Make some evdns.c debug logs more verbose
  dns-example.c can now take a resolv.conf file on the commandline
  Correctly handle running on a system where accept4 doesn't work.
  Work-around a stupid gcov-breaking bug in OSX 10.6
  Fixed potential double-readcb execution with openssl bufferevents.
  If a higher-priority event becomes active, don't continue running events of the current priority.
  Generate event-config.h with a single sed script
  Generate event-config.h with a single sed script
  When PRECISE_TIMERS is set with epoll, use timerfd for microsecond precision
  Improve the monotonic-time unit test: make it check the step size
  Simple unit tests for monotonic timers
  Implement fast/precise monotonic clocks on Windows
  Add EVENT_PRECISE_TIMER environment var for selecting precise-but-slow timer
  Refactor monotonic timer handling into a new type and set of functions; add a gettimeofday-based ratcheting implementation
  Split out time-related prototypes into time-internal.h
  Split out time-related evutil functions into a new evutil_time.c
  Split long lists in Makefile.am into one-item-per-line
  Shave 700 msec off the persistent_timeout_jump test
  If time has jumped so we'd reschedule a periodic event in the past, schedule it for the future instead
  Refactor event_persist_closure: raise and extract some common logic
  remove redundant DNS_ERR_CANCEL check, move comment
  cancel the probe request when the server is freed, and ignore cancelled probe callbacks
  Note that make_base_notifiable should not be necessary
  Implement a GetTickCount-based monotonic timer for Windows
  On Linux, use CLOCK_MONOTONIC_COARSE by default
  EVENT_BASE_FLAG_PRECISE_TIMER indicates we want fine timer precision
  Move use_monotonic and friends into event_base
  Work-around a stupid gcov-breaking bug in OSX 10.6
  Replace pipe-based notification with EVFILT_USER where possible
  Do not track use_monotonic field when is no monotonic clock
  Use mach_absolute_time() for monotonic clock support on OSX.
  Tweak the new evutil_weakrand_() code
  Change evutil_weakrand_() to avoid platform random()
  Simplify test.sh code significantly.
  Increment the version to 2.1.1-alpha-dev
  Backport: provide EVENT_LOG_* names, and deprecate _EVENT_LOG_*
  fix some typos in the 2.1 changelog
  Bump the version to Libevent 2.1.1-alpha
  Fix the website URL in the readme
  Try to finalize changelog situation for 2.1.1-alpha
  Add pending names to the README; add more entries to the changelog
  Include ws2tcpip.h from util.h to get EAI_* definitions.
  Fix some compilation warnings with msvc
  Oops; fix a merge conflict that got committed into event2/event-config.h.  Now msvc builds work again.
  Decrease MAX_REQUESTS in test-fdleak
  Include util-internal.h earlier in test-dumpevents to fix solaris build
  Fix compilation with mm-replacement disabled.
  make event_base_get_running_event build with threads disabled.
  Make check-dumpevents work with out-of-tree builds
  Make check-dumpevents.py actually get included in the tarballs
  Configure with gcc older than 2.95
  Missing ) in bufferevent_ratelim.c comment. Found by rransom
  Add missing ) to changelog; spotted by rransom
  Add a missing name to the readme.
  Increase duration and tolerance on http/connection_retry test
  Fix a compilation error with MSVC 2005 due to use of mode_t
  Temporarily disable event_queue_reinsert_timeout
  Make libevent_global_shutdown() idempotent
  Updates for whatsnew-2.1.txt
  Require at least Python 2.4 for check-dumpevents.py.
  Fix a typo in the bufferevent documentation
  Test more bufferevent_ratelim features
  Add event_base_get_running_event() to get the event* whose cb we are in
  More coverage on reinsert_timeout tests
  Make test-dumpevents build on Linux
  Fix a nasty bug in event_queue_reinsert_timeout()
  Add a unit test for event_base_dump_events()
  event_base_dump_events: Report active events tersely, and note internal events
  Fix compilation of evutil_rand on osx
  Fix typo in whatsnew-2.1.txt
  Use libevent_global_shutdown() to clean up in unit tests.
  Distribute whatsnew-2.1.txt.
  Fix another bug from rebase of libevent_global_shutdown patch
  Write a first draft of whatsnew-2.1.txt
  Tweak changelog for 2.1 even more
  Add more things to the 2.1 changelog
  Add an empty changelog section for 2.0.19-stable
  Bump version to 2.0.18-stable-dev
  Bump version to 2.0.18-stable
  Add credits to README
  Changelog for libevent 2.0.18-stable
  Add a new libevent_global_shutdown() to free all globals before exiting.
  event-read-fifo: Use EV_PERSIST appropriately
  Rename event-test.c to event-read-fifo.c.
  On Unix, remove event.fifo left by sample/event-test.c.
  Fix up sample/event-test.c to use newer interfaces and make it actually work.
  Now that event_assign() special-cases event_self_cbarg(), event_new() can stop
  Add a test for using event_self_cbarg() with event_assign().
  event_self_cbarg() works with event_assign() for consistency with event_new().
  Properly zero the kevent in kq_setup_kevent()
  Don't do clang version detection when disabling some flags
  Add a regression test for event_self_cbarg().
  Update sample/signal-test.c to use the new event_self_cbarg().
  Add event_self_cbarg() to be used in conjunction with event_new().
  event_rpcgen.py now prints status information to stdout and errors to stderr.
  Add netinet/in.h include to fix test-fdleak on openbsd
  Restore accidentally disabled nanosleep implementation of evutil_usleep.
  Fix doxygen to use new macro conventions
  Clean up lingering _identifiers.
  Apply the naming convention to our EVUTIL_IS* functions
  Have all visible internal function names end with an underscore.
  Fix some problems introduced by automated identifier cleanup script
  Make event_rpcgen.py output conform to indentifier conventions, more
  Fix all identifiers with names beginning with underscore.
  Make the generated event-config.h use correct include guards
  Stop referring to an obsolete include guard in bench_http.h
  Make event_rpcgen.py output conform to indentifier conventions
  Convert include-guard macro convention to avoid reserved identifiers
  Generate event-config.h using the correct macros.
  Convert event-config.h macros to avoid reserved identifiers
  Make event-config.h depend on Makefile.am
  Check for NULL return on win32 mm_calloc, and set ENOMEM.
  Do not use system EAI/AI values if we are not using the system getaddrinfo.
  Replace sole internal user of socklen_t with ev_socklen_t
  Fix evmap to work with HT-backed IO maps again.
  evutil_accept4() should take ev_socklen_t
  test-fdleak: Avoid perror, since it does not capture windows socket errors
  remove debugging prints
  test-fdleak: Call event callbacks event_cb.
  Remove fixed port from test-fdleak, so two instances can run in parallel
  Remove an unsafe programming practice from test-fdleak; add XX comments
  Try and fix compilation and running of test-fdleak on Windows.
  Allow compilation on machines that do not have setrlimit.
  Simply test-fdleak by running server & client sockets in the same event loop.
  Add a new test: test-fdleak which tests for fd leaks by creating many sockets.
  If accept4 is absent, fall back to accept.
  Avoid leaking fd in evutil_socket() by Linux.
  Remove the last vestiges of _EVENT_USE_EVENTLIST
  Add doxygen for event_base_dump_events
  Refactor the functions that run over every event.
  Fix an "unused return value" warning on write() in signal handler
  Start work on a 2.1 changelog and whats-new
  Add another caveat to the TCP_DEFER_ACCEPT documentation
  Support TCP_DEFER_ACCEPT sockopts for listeners
  Stop crashing in evdns when nameserver probes give a weird error
  Changed OPENSSL_LDFLAGS to OPENSSL_LIBADD
  Added OPENSSL_LDFLAGS env variable which is appended to SSL checks.
  If open(O_CLOEXEC) fails, fall back to fcntl(CLOEXEC)
  Fix up usage of reserved identifiers in ht-internal.h
  Port changes from Tor for ht-internal.h
  Invert the sense and the name of HT_CACHE_HASH_VALUES
  Synchronize with upstream tinytest
  Merge in a punctuation fix from upstream tinytest
  Move libevent 1.x headers to include/, to put all public headers in one place.
  Tweak the evutil_open_closeonexec patch to work on windows, old unixes.
  Make uses of open() close-on-exec safe by introducing evutil_open_closeonexec.
  Add a bufferevent_getcb() to find a bufferevent's current callbacks
  Also make win32select.c conditional for IDE users
  Add an empty section to the changelog for 2.0.18-stable
  Correct a name in the credits. oops
  Bump version to 2.0.17-stable-dev
  Update the credits in the readme
  Finalize the changelog
  Fix compilation on osx
  Update copyright notices to 2012
  Bump version to 2.0.17-stable
  Prefer epoll_create1 on Linuxen that have it
  Save some syscalls when constructing a socket for a bufferevent
  Save some syscalls when creating evdns sockets
  Save syscalls when constructing listener sockets for evhttp
  Use pipes for telling signals to main thread when possible
  Use a wrapper function to create the notification pipe/socketpair/eventfd
  The LEV_OPT_CLOSE_ON_EXEC flag now applies to accepted listener sockets too
  Minimize syscalls during socket creation in listener.c
  Infrastructure for using faster/fewer syscalls when creating sockets
  In the kqueue backend, do not report EBADF as an EV_READ
  Avoid crash when freeing event_iocp and using event_set_mem_functions
  Put #ifdef around some files to support alternate build systems.
  Bring the changelog up to date
  Loop on filtering SSL reads until we are blocked or exhausted.
  Replace more C99/C++ comments with oldschool /* */ comments
  Use C-style comments in C source files (for compatibility with compilers such as xlc on AIX).
  evdns: fix a bug in circular-queue implementation
  Fix a compile warning in event_reinit
  Remove the eventqueue list and the ev_next pointers.
  Make test-changelist faster
  Check changelist as part of checking representational integrity
  Restore fast-path event_reinit() for slower backends
  Make event_reinit() more robust and maintainable
  Better workaround for Linux 3.2 edge-triggered epoll bug
  Do a memberwise comparison of threading function tables
  When including an -internal.h header outside the main tree, do so early
  Allow more slop in deferred_cb_skew test; freebsd needs it
  Remove a couple of now-unused variables
  Make event_base integrity check work on windows
  Start writing a changelog for 2.0.17-stable
  Use test_timeval_diff_eq more consistently
  Make regression tests run over 3x faster.
  New evhttp function to adjust initial retry timeout
  Reduce the timeout in the main/fork test.
  Add an (internal) usleep function for use by unit tests
  Oops:remove an accidentally committed "sleep(1)" in a unit test
  Workaround in the unit tests for an apparent epoll bug in Linux 3.2
  Fix a fd leak in event_reinit()
  Fix a list corruption bug when using event_reinit() with signals present
  Check event_base correctness at end of each unit test
  Fix compilation of windows evutil_check_ifaddrs
  Add function to check referential integrity of an event_base
  Force strict validation of HTTP version in response.
  Suppress a gcc warning from ignoring fwrite return in http-sample.c
  Fix a race condition in the dns/bufferevent_connect_hostname test.
  Make evconnlistener work around bug in older Linux when getting nmapped
  Remove bogus casts of socket to int before calling ev_callback
  Backport evhttp_connection_get_bufferevent to Libevent 2.0
  Slightly clarify evbuffer_peek documentation
  Fix behavior of evbuffer_peek(buf,-1,NULL,NULL,0)
  Remove some accidentally-committed debugging code
  whitespace fixes
  check for sysctl before we use it
  Split up extra-long AC_CHECK_FUNCS/HEADERS lines in configure.in
  Use getifaddrs to detect our interfaces if possible
  Changed use of refcounts to make sure referenced chains are freed in all cases.
  Add evbuffer_copyout_from to copy data from the middle of a buffer
  Bypass event_add when using event_base_once() for a 0-sec timeout
  Fix a silly compilation error with the sun compiler
  Be absolutely sure to clear pncalls before leaving event_signal_closure
  fix windows compilation issues with new file segment code
  Fix two issues in the allow_dirty_shutdown code.
  Tweak allow_dirty_shutdown documentation
  Allow users to set allow_dirty_shutdown
  bev_ssl: Be more specific in event callbacks. evhttp in particular gets confused without at least one of BEV_EVENT_{READING|WRITING}.
  Increment version to 2.0.16-stable-dev
  Increment version to 2.0.16-stable
  Revise 2.0.16-stable changelog
  add comment to new consider_reading code
  Avoid spinning on OpenSSL reads
  Move SSL rate-limit enforcement into bytes_to_read()
  Refactor amount-to-read calculations in buffervent_ssl consider_reading()
  Revert "Avoid potential SSL read spinlocks"
  Revert "openssl bufferevent has the same issue with writing as prior commit."
  Add new entries to changelog, new credits to README
  Fix DNS memleak checks when running with malloc-replacement/debugging disabled
  Don't try to make notifiable event_base when no threading fns are configured
  Warn when unable to construct base because of failing make_base_notifiable
  openssl bufferevent has the same issue with writing as prior commit.
  Avoid potential SSL read spinlocks
  unit tests for EVBUFFER_EOL_NUL
  New EVBUFFER_EOL_NUL to read NUL-terminated strings from an evbuffer
  Tweaks, fixups, and comments on evbuffer_add_iovec
  Added evbuffer_add_iovec and unit tests.
  Improve win32 behavior of dns-sample.c codex
  Fix typo in whatsnew-2.0.txt
  Use the free-trailing-chains function in evbuffer_insert_chain too
  Fix an evbuffer crash in evbuffer_remove_buffer()
  improve test to remove at least one buffer from src
  unit test for remove_buffer bug
  Fix compile warning from saying event2/*.h inside a comment
  epoll: close fd on alloc fail at initialization
  evhttp: Add evhttp_foreach_bound_socket.
  Update copyright dates to 2011.
  New event_base_update_cache_time() to set cached_tv to current time
  Add argument checks to some memory functions in `event.c'.
  Add note about evhttp_send_reply_end to its doxygen
  More detailed message in case of libevent self-debugging failure.
  Style and comment tweaks for dns/leak* tests
  Test for commit aff6ba1
  Empty DNS reply with OK status is another way to say NODATA.
  Tests for 94fba5b and f72e8f6
  fixed typo
  added comments to describe refcounting of multicase chains
  Bump version to 2.0.15-stable-dev
  Credit a patch from a one-named user
  Increment version to 2.0.15-stable
  Add changelog for 2.0.15-stable
  bufferevent: Add functions to set/get max_single_read/write values.
  Make evbase_priority_init() and evbase_get_npriorities() threadsafe
  Add event_base_get_npriorities() function.
  refer to non-deprecated evdns functions in comments
  Make evbuffer_file_segment_types adaptable
  New EVLOOP_NO_EXIT_ON_EMPTY option to keep looping even when no events are pending
  Allow evconnlistener to be created in disabled state.
  Fix some "value never used" warnings with gcc 4.6.1
  Make write-checking fixes use tt_fail_perror
  Fixed compiler warnings for unchecked read/write calls.
  Prefer mmap to sendfile unless a DRAINS_TO_FD flag is set. Allows add_file to work with SSL.
  Make evbuffer callbacks get the right n_added value after evbuffer_add
  Use _SOURCES, not _sources, in sample/Makefile.am
  le-proxy and regress depend on openssl directly
  Add DNS_ERR_NODATA error code to handle empty replies.
  Fix docstring in dns.h
  Build with large-file support on platforms where it matters
  Clarify event_enable_debug_logging a little
  Remove calls to deprecated bufferevent functions from evhttp.c
  Add evhttp callback for bufferevent creation; this lets evhttp support SSL.
  Implement --enable-gcc-hardening configure option
  Make gcc warnings on by default, and --enable-gcc-warnings only add -Werror
  When a signal callback is activated to run multiple times, allow event_base_loopbreak to work even before they all have run.
  DNS: add ttl for negative answers using RFC 2308 idea.
  Make --enable-verbose-debug option match its help text
  Increment version to 2.0.14-stable-dev
  Credit new contributors for 2.0.14-stable
  Pick a release date for the changelog
  Bump version to 2.0.14-stable
  Use SIG_IGN instead of a do-nothing handler for signal events with kqueue
  Fix OSX build: $(OPENSSL_INCS) needs to be after $(AM_CPPFLAGS).
  clear read watermark on underlying bufferevent when creating filtering bev to fix potentially failing fragmented ssl handshakes
  Checkpoint changelog entries for 2.0.14-stable
  Correctly terminate IO on an async bufferevent on bufferevent_free
  Have test-ratelim.c support IOCP
  Make IOCP rate-limiting group support stricter and less surprising.
  Support negative arguments to _bufferevent_decrement_(read/write)_buckets()
  We need AM_CPPFLAGS when compiling bufferevent_openssl.c
  Use pkg-config (if available) to handle OpenSSL.
  Provide the autoconf m4 macros for the new OpenSSL via pkg-config stuff.
  Cleanup on 7c11e51e1ab: fix strtol usage
  Cleanup on 7c11e51e1ab: restore c90 declaration compliance
  Clean up some problems identified by Coverity.
  Make rate limiting work with common_timeout logic
  Make overlapped reads result in evbuffer callbacks getting invoked
  IOCP: don't launch reads or writes on an unconnected socket
  Try to fix 'make distcheck' errors when building out-of-tree
  Make the priority inversion code use gettime(), not evutil_gettimeofday()
  Make max_dispatch_interval able to apply only to low-priority events
  Optimization in event_process_active(): ignore maxcb & endtime for highest priority events.
  Make sure max_dispatch_callbacks is never negative
  Add event_config function to limit time/callbacks between calls to dispatch
  Solaris sendfile: correctly detect amount of data sent
  Fix request_finished memory leak with debugging turned on.
  Fix evsig_dealloc memory leak with debugging turned on.
  Another docstring fix.
  more event dbg updates
  Fix handling of group rate limits under 64 bytes of burst
  added timeout debug logs to include event ptr.
  Added usec debug in another area for debug
  Debug addition for printing usec on TIMEOUT debugging.
  Ignore deprecation warnings on OS X
  prevent nested multicast references, reworked locking
  support adding buffers to other buffers non-destructively
  Allow OS-neutral builds for platforms where some versions have arc4random_buf
  changed to --enable-verbose-debug
  Propagate errors on the underlying bufferevent to the user.
  Added --enable-event-debugging in configure
  Add missing break to evhttp_parse_request_line
  Fix typo in event_compat.h comments.
  Bump version to 2.0.13-stable-dev
  Bump version to 2.0.13-dev
  acks and changelog for 2.0.13-stable
  Give Makefile.am echo a non-null argument. msys likes this
  Fix a warning in evutil_rand when building with threads disabled
  Use AM_CPPFLAGS in sample/Makefile.am, not AM_CFLAGS
  Add doxygen to .gitignore
  Fix up test_evutil_snprintf
  Fix a test-call accidentally in the last commit
  More abstraction in test.sh
  Update Doxyfile to produce more useful output
  Revise the event/evbuffer/bufferevent doxygen for clarity and accuracy
  Use "unlimited select" on OSX so that we can have more than FD_SETSIZE fds
  Fix select.c compilation on systems with no NFDBITS
  Speed up invoke_callbacks on evbuffers when there are no callbacks
  Fix bug in SSL bufferevents backed by a bev with a write high-watermarks
  Fix a few warnings on OpenBSD
  Fix AIX build issue with TAILQ_FOREACH definition
  Don't install event_rpcgen.py when --disable-libevent-install is used
  Set the special "not found" evbuffer_ptr consistantly.
  Don't break when building tests from git without python installed
  Improve evbuffer_ptr documentation
  Tweaks to return types with end-of-buf ptrs
  Allow evbuffer_ptr to point to position 0 in an empty evbuffer
  Allow evbuffer_ptr_set to yield a point just after the end of the buffer.
  Add failing test for evbuffer_search_range.
  Simplify windows commandname logic in tinytest
  Fix tinytest invocation from windows shell
  Use the correct printf args when formatting size_t
  Check if the `evhttp_new_object' function in `http.c' returns NULL.
  Report kqueue ebadf, epipe, and eperm as EV_READ events
  Replace an assertion for event_base_free(NULL) with a check-and-warn
  Add some missing checks for mm_calloc failures
  Remove a needless branch in evbuffer_drain()
  Fix a bug in the improved EOL_CRLF code
  Fix incorrect results from evbuffer_search_eol(EOL_LF)
  Bump version to 2.0.12-stable-dev
  tweak date on changelog
  Changelog and new credits for 2.0.12-stable
  Bump version to 2.0.12-stable.  Not release just yet
  Fix regress_ssl.c build on openbsd
  Fix windows file segment mappings
  Avoid a segfault when all methods are disabled or broken
  Try to squeeze a little more speed out of EVBUFFER_EOL_CRLF
  cygwin: make it possible to build DLLs
  Roughly 20% speed increase when line-draining a buffer using EVBUFFER_EOL_CRLF
  Fix a fencepost bug in the select backend
  Make the new http_connect_fail_test use a multicast addr, not broadcast
  InitializeCriticalSectionAndSpinCount requires _WIN32_WINNT >= 0x0403.
  Allow base-notification functions to exist without setting an fd
  Reenable main/many_events_slow_add for evport in 2.1
  evport: Remove artificial low limit on max events per getn call
  evport: don't scan more events in ed_pending than needed
  evport: Use portev_user to remember fdinfo struct
  evport: Remove a linear search over recent events when reactivating them
  evport: use evmap_io to track fdinfo status. Should save time and RAM.
  Fix a couple of signed/unsigned warnings in http.c
  Disable main/many_events_slow_add with evport backend
  Fix compilation.
  updated EV_S(s)IZE definitions
  Added overflow checks in evhttp_read_body and evhttp_get_body
  Added several checks for under/overflow conditions in evhttp_handle_chunked_read
  Always use evutil_snprintf, even if OS provides it
  Do not define WIN32 in Makefile.nmake
  In configure, test for _WIN32 not WIN32.
  Use "_WIN32", not WIN32: it's standard and we don't need to fake it
  Use evutil_gettimeofday instead of relying on the system gettimeofday.
  Fix winsock2.h #include issues with MSVC
  Make sure TINYTEST_LOCAL is defined when building tinytest.c
  unistd.h and sys/time.h might not exist.
  MSVC does not provide S_ISDIR, so provide it manually.
  Bring in the compile script from automake, if needed.
  Make the tests build when OpenSSL is not available.
  Link with -lshell32 and -ladvapi32 on Win32.
  Fix new warnings from GCC 4.6
  Prevent size_t overflow in evhttp_htmlescape.
  Fix a bug that prevented us from configuring IPv6 nameservers.
  Test case for 0848814ac49616
  Fix failing assertion introducd in commit 0d6622e
  Fix compilation with GCC 2, which had no __builtin_expect
  Fix a compile warning with zlib 1.2.4 and 1.2.5
  Correctly detect openssl on windows
  Performance tweak to evhttp_parse_request_line.
  Move the win32 detection in configure.in
  Use OPENSSL_LIBS in Makefile.am
  Libtool brings in the dependencies of libevent_openssl.la automatically
  libssl depends on libcrypto, not the other way around.
  Oops; that new unit test breaks for epoll.  Fix it.
  Fix a warn-and-fail bug in kqueue by providing kevent() room to report errors
  Add missing words to EVLOOP_NONBLOCK documentation
  Bump version to 2.0.11-stable-dev
  Increment version number to 2.0.11-stable
  Add more people to the acknowledgments
  Changelog for 2.0.11-stable
  Fix clang warning when resetting connection
  Use AM_CONDITIONAL, not AC_SUBST, to tell automake to build regress
  Fix msvc build: it needed to know about _EVENT_HAVE_STRUCT_SOCKADDR_STORAGE
  Try to fix up CHECK_REGRESS hack to not break on win32
  Add missing header for regress_http compilation on win32
  call setsockopt correctly on connecting() IOCP-bufferevents so shutdown() will work
  Zero a struct sockaddr_in before using it
  Remote some dead code from dns-example.c
  Check return value of evbuffer_add_cb in tests
  Be nice and "handle" error return values in sample code
  Refactor test_getaddrinfo_async_cancel_stress()
  add some (void) casts for unused variables
  Actually send NULL request in http_bad_request_test
  Add a forgotten return value check in the unit tests
  Add an assert to appease clang's static analyzer
  Fix possible NULL-deref in evdns_cancel_request
  Add a forgotten NULL check to evhttp_parse_headers
  Fix compilation under LLVM/clang with --enable-gcc-warnings
  Complain if the caller tries to change threading cbs after setting them
  Avoid race-condition when initializing global locks
  Fix a memory leak on win32 socket->event map.
  Handle calloc failure in evdns. (Found by Dave Hart)
  Fix a crash bug in evdns server circular list code
  Fix a couple of memory leaks in samples/http-server.c. Found by Dave Hart.
  Avoid a free(NULL) if out-of-memory in evdns_getaddrinfo. Found by Dave Hart
  Fix the check for multicast or broadcast addresses in evutil_check_interfaces
  Check for allocation failures in apply_socktype_protocol_hack
  Fix the case when failed evhttp_make_request() leaved request in the queue.
  Fix subtle recursion in evhttp_connection_cb_cleanup().
  Reset outgoing connection when read data in idle state.
  Add comment to configure.in to explain gc-sections test logic
  Fix for --gc-sections on NetBSD
  Fix make distcheck & installation of libevent 1 headers
  Fix incorrect assertions and possible use-after-free in evrpc_free()
  munge the debug_lock signature before freeing it: it might help us catch use-after-free
  Add a magic number to debug_locks to better catch lock-coding errors.
  In the 2.1 branch, let's try out lazy gettimeofday/clock_gettime comparison
  Disable lazy gettimeofday/clock_gettime comparison for now
  Followup for Tomash Brechko's http patch
  Workaround libevent bug https://sourceforge.net/tracker/index.php?func=detail&aid=3078187&group_id=50884&atid=461324
  Have event_base_gettimeofday_cached() always return wall-clock time
  Make --no-libevent-install apply to event1 headers too
  Make --no-libevent-install apply to headers too
  Continue AM_CFLAGS to AM_CPPFLAGS correction
  Make event_count maintainance branchless at the expense of an extra shift. Needs benchmarking
  possible optimization: split event_queue_insert/remove into separate functions. needs testing
  Add new evhttp_{connection_}set_timeout_tv() functions to set finger-grained http timeouts
  Make -ffunction-sections off-by-default in 2.0.x
  Remove nonfunctional enable_libevent_(install|regress)_def variables
  Use $(), not @@, for LIBEVENT_GC_SECTIONS
  Be explicit about how long event loops run in event.h documentation
  Use %s with printf in test.sh
  Correct an AM_CFLAGS to an AM_CPPFLAGS in test/Makefile.am
  Add configure options to disable installation, regression tests
  Add -D_OSF_SOURCE to fix hpux builds
  Use the gcc -ffunction-segments feature to allow gc when linking with static libevent
  Check for getservbyname even if not on win32.
  Fix autoconf bracket issues; make check for getaddrinfo include netdb.h
  Skip check for zlib if we have no zlib.h
  Make test-eof fail with a timeout if we never get an eof.
  FIX: comment internal headers used in sample code.
  NM: Fix sample/http-server ipv6 fixes
  Include util-internal.h as needed to build on platforms with no sockaddr_storage
  Include arpa/inet.h as needed on HPUX
  Correctly detect and stop non-chunked http requests when the body is too long
  fix spelling mistake in whatsnew-2.0.txt
  Correct evhttp_del_accept_socket documentation on whether socket is closed
  Clarify event_set_mem_functions doc
  Make URI parser able to tolerate nonconformant URIs.
  Fix a type error in our (unused) arc4random_stir()
  Fix warnings about AC_LANG_PROGRAM usage
  Save a needless comparison when removing/adjusting timeouts
  Remove a needless base-notify when rescheduling the first timeout
  Optimize the case where we reinsert an existing timeout
  Fix test.sh output on solaris
  Do not check for gethostbyname_r versions if we have getaddrinfo
  Add compile-time check for AF_UNSPEC==PF_UNSPEC
  Fix http unit test on non-windows platforms without getaddrinfo
  Build on systems without AI_PASSIVE
  Try to build correctly on platforms with no IPv6 support
  Build correctly on platforms without sockaddr_storage
  Fall back to sscanf if we have no other way to implement strtoll
  ...
973db8a
@azat azat added a commit to azat/libevent-deb that referenced this issue Nov 12, 2014
@azat azat Merge remote-tracking branch 'main/master' into 2.1.4-release-5
* main/master: (2905 commits)
  Provide support for SO_REUSEPORT through LEV_OPT_REUSABLE_PORT
  Fix a typo in a doxygen comment. Reported by 亦得.
  evdns: fail ns after we are failing/retrasmitting request
  evdns: add retry/reissue tests for EVDNS_BASE_DISABLE_WHEN_INACTIVE
  evdns: fix EVDNS_BASE_DISABLE_WHEN_INACTIVE in case retransmit/retry
  Fix compilation for older OpenSSL versions.
  bufferevent_openssl: reset fd_is_set when setfd with -1 is called
  https-client: add -retries argument, for connection retries
  [Bugfix] fix bufferevent setwatermark suspend_read
  Fix several memory leaks in the unit tests.
  Fix for a677b72bd6d9d378daf9775966aa8ca574e26e67
  Make a buffer larger in the tests to avoid a scary evbuffer_copyout_from()
  Use a more precise calculation for max in time-ratelim.c
  Use evutil_weakrand() in unit tests.
  Fix a c90 warning
  Fix a dead-code warning in unit tests. CID 1193548
  Fix a use-after-free in unit tests. CID 752027
  Fix use-after-free error in EV_CLOSURE_EVENT callback
  regress_buffer: fix 'memcmp' compare size
  use correct tt macro for pointer compare
  make bufferevent_getwatermark api more robust
  [Bugfix] fix grammer error
  updates in cmake build
  Correctly handle allocation failures in evdns_getaddrinfo
  Consistently check for failure from evbuffer_pullup()
  Use FindClose for handle from FindFirstFile in http-server.c
  Change return type of evutil_load_windows_system_library_ to HMODULE
  Fix issue #127, double free for filterevents that use BEV_OPT_CLOSE_ON_FREE
  Add a few files created by "make verify" to .gitignore.
  test/regress: add simplestsignal: to track reorder bugs separately
  add a --disable-samples configure flag
  ignore config.cache/test-driver files
  Handle ENOTCAPABLE from FreeBSD - this is returned if an event in the changelist is for an FD that has been closed.
  Make http-server.c output into good html5
  Update to a more recent tinytest_macros.
  ignore one more test binary
  regress dns: drop alarm() (since windows don't have it)
  evdns: we don't need to add retry timer in transmit_to it will be done on fail
  evdns: add regress test for flag EVDNS_BASE_DISABLE_WHEN_INACTIVE without ns
  evdns: add regress for EVDNS_BASE_DISABLE_WHEN_INACTIVE base flag
  evdns: disable probing with EVDNS_BASE_DISABLE_WHEN_INACTIVE
  tree.h: drop duplicated content of tree.h
  test/http: add regress test for set family to AF_INET6
  test: add regress for evhttp_connection_set_family() with AF_INET and AF_UNSPEC
  test: add family argument for http_connection_test_()
  Fix a crash in evdns related to shutting down evdns
  Add missing headerfile for cmake
  regress_dns: fix leaks in getaddrinfo_async{,_cancel_stress} tests
  Fix a crash in evdns related to shutting down evdns
  Increment version to 2.1.4-alpha-dev
  Update release date in changelog
  Don't truncate hosts file path on Windows.
  Load hosts file on Windows.
  Add evhttp_connection_set_family() to set addrinfo->family for DNS requests
  Fixup make install for cmake projects
  Renamed sin to saddr due to name conflict
  Correctly skip ipv6 http test on systems without ipv6
  Remove integer-overflow unit tests
  evtag: detect tags over 32-bits earlier
  Catch over-large port numbers early in http
  Fix ubsan warnings when parsing ipv4/ipv6 addrs
  Fix a use-after-free error on EV_CLOSURE_EVENT_FINALIZE callbacks
  Fix an illegal read error in the evbuffer_add_reference tests
  Add new APIs to whatsnew-2.1
  Increment version to 2.1.4-alpha
  Bring changelog up to date for 2.1.4-alpha
  Avoid double-close paths in http tests
  Add missing include to regress_finalize.h
  Skip http/ipv6_for_domain test when we have no ipv6 support
  Add an include to evrpc-internal to fix openbsd compilation warning
  Heap-allocate zlib data structure in regress_zlib tests
  Fix consts in WIN32-Code/getopt*.[ch]
  Fix duplicate paragraph in evbuffer_ptr documentation
  Initialize async bufferevent timeout CBs unconditionally
  add a cast to https-client.c
  Export event_extra not event_extras.
  Update to the latest version of tinytest
  Fix 'make distcheck' by adding regress.gen.[ch] to DISTCLEANFILES
  Move assert(ev) to before we use ev in EV_CLOSURE_EVENT_FINALIZE case
  Add -Qunused-arguments for clang on macos
  Add option to build shared library
  Do not offer EV_FEATURE_EARLY_CLOSE if we have no EPOLLRDHUP
  Stop checking for inet_aton; we don't use it.
  Rename event_extras to event_extra
  BUGFIX: Fix compilation on systems with EPOLLRDHUP undefined.
  Add cmake-related files to .gitignore
  Added -Qunused-arguments for clang on macosx
  bufferevent_pair: don't call downcast(NULL)
  Tweaked callbacks to prevent race condition (https://github.com/libevent/libevent/issues/104)
  Tweaked callbacks to prevent race condition (https://github.com/libevent/libevent/issues/104)
  Added a Travis-CI configuration file.
  Check does arch have the epoll_create and __NR_epoll_wait syscalls.
  Check for OSX when checking for clang.
  Guard against EVENT_NOWIN32 being set during testing.
  Fix https-client compilation on Windows.
  CMake: Get rid of python not found warning when regress tests turned off.
  Fix CMake compile when OpenSSL is disabled.
  Split epoll lookup table into a separate header file
  Expand EV_CLOSED documentation a bit
  Disclaimerize cmake a little in the README
  Fix broken autotools build.
  Fix a c90 warning
  Check if we're on OSX before disabling deprecation in le-proxy
  Change all uses of WIN32 to _WIN32
  Fix include bug.
  Implemented EV_CLOSED event for epoll backend (EPOLLRDHUP).
  Forgotten headers for old nmake project compatability.
  Clean up the README some.
  Update README with CMake build instructions.
  Rename README to README.md and use markdown to format.
  Fix so that old nmake project still builds.
  Set USE_DEBUG=1 on EVENT__ENABLE_VERBOSE_DEBUG
  Some work on making it possible to simply do add_subdirectory() on the project.
  Fix typo
  Add CMake config and install targets.
  Fix even more coverity warnings.
  Fix a couple of compilation warnings in regress_http.c
  Remove spurious checks in evrpc.c error cases (coverity)
  Whoops; fix compilation in bench.c
  Fix coverity warnings in benchmark tools.
  Fix a pile of coverity warnings in the unit tests
  Update unit test to make sure that the callback happens after the output data is written
  evhttp_request_set_on_complete_cb to be more specific about what the function actually does and usage
  Provide on request complete callback facility
  Added unit test for max event counts
  Fixed bug using wrong variable in max event compare
  Add access to max event count stats
  Remove unneeded declaration in bufferevent-internal.h
  Fix needless bufferevent includes in evdns.c
  Fix a couple of "#ifdef WIN32" instances
  Sample HTTPS Client: Set hostname for SNI extension (by f69m)
  fix for ServFail from RIPE Atlas release
  Small tweaks to https-client.c
  Minor optimizations on bufferevent_trigger options
  Make bufferevent_trigger_nolock_() inline
  Unit tests for active_by_fd; unsupport active_by_fd(TIMEOUT)
  Add event_base_active_by_signal by analogy
  Sanity-check arguments to event_base_active_by_fd()
  Refactor evmap_{io,signal}_active_() to tolerate bad inputs
  Typo fixes from Linus Nordberg
  Typo fixes from Linus Nordberg
  Added EVENT__ENABLE_GCC_WARNINGS, turns all warnings into errors.
  Only look for ZLib when it is used (if tests are included).
  Fix the "make verify" target on NetBSD
  Add a "make verify_coverage" target generation coverage info.
  Get rid of unknown pragma warnings.
  Minimum required python version is 2.4.
  Change the BSD license from 4 to 3-clause.
  Added a test for testing if kqueue works with pipes.
  Fix kqueue support.
  Get rid of deprecation warnings for OpenSSL on OSX 10.7+
  Fix the make "verify" target on Windows.
  Clarify event_base_loop exit conditions
  Added a "make verify" target.
  Only test the event backends available on the system.
  Don't segfault on no found event backend.
  Fix bench_cascade program on Windows.
  Only include WIN32 getopt where it is used.
  Add copyright and licensing files for CMake modules.
  Use evutil_closesocket instead.
  Added some GCC specific options.
  Link libm on unix platforms.
  Generate a dummy evconfig-private.h so things build properly.
  More work on adding tests to CMake project
  Add all tests and benchmarks to CMake project.
  Initial CMake commit.
  Fix non-C89 variable declaration.
  Fix non-C89 variable declaration.
  Rename flush_outdated_host_addresses to clear_host_addresses
  bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated addresses
  bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated adresses
  Clarifications in response to merge req. comments
  start writing a changelog for 2.1.4-(beta?)
  update the 2.0 changelog
  Add an option to trigger bufferevent event callbacks
  Add an option to trigger bufferevent I/O callbacks
  Add watermark introspection
  Document deferred eventcb behaviour
  Fix a typo
  Try another doxygen tweak
  Small doxygen tweaks
  Allow registering callback for parsing HTTP headers
  Add a variant of evhttp_send_reply_chunk() with a callback on evhttp_write_buffer()
  Avoid redundant invocations of init_extension_functions for IOCP
  regress_http: add tests for evhttp_connection_get_addr()
  http: implement new evhttp_connection_get_addr() api.
  Tweak indentation
  regress_main: logging all if env EVENT_DEBUG_LOGGING_ALL isset
  add a http default content type option
  Fix another arc4random_buf-related warning
  Fix a compiler warning when checking for arc4random_buf linker breakage.
  rpcgen: Generate regress.gen.[c,h] in build rather than src dir
  Avoid racy bufferevent activation
  Fix reinit of fds with EV_WRITE but not EV_READ.
  Check CLOCK_MONOTONIC_* at runtime if needed.
  Really remove RNG seeds from the stack
  Oops; revert testing code
  Avoid other RNG initialization FS reads when urandom file is specified
  Finish a sentence
  sample: drop uri_root from base_url in http-server.
  Add an assertion for another of the complaints from coverity. See 1b065d07df196
  test_evutil_rtrim: add another missing check.
  Finalize tests: add a missing check
  DNS tests: add a missing check
  Fix some crash-on-fail cases in DNS regression tests
  Add missing check to test_evbuffer_file_segment_add_cleanup_cb
  Fix a logic error in test_evbuffer_freeze
  Fix a (failure-only) null dereference in the unit tests
  Use void casts to suppress some "unchecked return value" warns
  sample/le-proxy: Fail more gracefully if opening listener fails
  Fix an unlikely but possible error case for http connections
  Move event_debug_note_teardown_ before mm_free.
  Add some assertions to please coverity.
  Fix compilation
  Add evutil_secure_rng_set_urandom_device_file
  Remove an unreachable return statement in minheap-internal.h
  Avoid leaking segment mappings when offset is not a page multiple
  Add checks for evhttp_connection_get_server() in unit tests.
  Add evhttp_connection_get_server().
  Add Maxime Henrion to README
  libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer)
  Pass and return const for bufferevent_get_token_bucket_cfg
  Add function to fetch underlying ratelimit cfg
  We should return after arc4random_buf()
  Don't use return since return type is void and build error occurs using clang
  Added event_base_get_num_events()
  Document that arc4random is not a great cryptographic PRNG.
  When we seed from /proc/sys/kernel/random/uuid, count it as success
  restore the comment
  Fix SEGFAULT after evdns_base_resume if no nameservers installed.
  Actually use the log facility for reporting evdns problems.
  Use windows vsnprintf fixup logic on all windows environments
  Remove a debugging assert that should not have been left in
  Fix locking in bufferevent_get_options_().
  Fix a double close() bug in evhttp when the underlying bufferevent uses BEV_OPT_CLOSE_ON_FREE.
  Avoid redundant syscall if making a socket cloexec twice
  Avoid redundant syscall to make a nonblocking socket nonblocking
  If evsel->del() fails, don't leave the evmap in an inconsistent state.
  Fix dns/leak_resume_send_err test.
  Add tests for evdns_base_resume().
  Fix SEGFAULT after evdns_base_resume if no nameservers installed.
  Whoops. It is gdi.lib, not gdi32.lib. (github issue #61)
  Missed lock acquire/release in event_base_cancel_single_callback_()
  Fix test compilation with nmake: add the gdi.lib dependency
  Checking request nameserver for NULL, before using it.
  Bump version to 2.1.3-alpha-dev
  Add regress_finalize to makefile.nmake
  Set a release date
  Make http/connection_retry off-by-default
  Fix a windows compilation regression
  Fix a bug in fixing a bug in out-of-tree test-dumpevents
  Make regress_finalize work with malloc replacement disabled
  Fix some out-of-tree build bugs
  Incremement version to 2.1.3-alpha
  Add acknowledgements to readme
  Start editing the changelog for 2.1.3-alpha
  Mark the finalize stuff as experiemental in case it needs to change
  Start a changelog for Libevent 2.0.22-stable
  Clarify an important point about event_base_foreach_event()
  Fix a bug in the new main/event_foreach test
  More unit tests for initializing common timeouts.
  A test for event_get_assignment()
  Unit tests for event_base_gettimeofday_cached() and event_base_update_cache_time()
  New tests for event_base_foreach_event()
  New test for active_later->active transition on event_active
  Remove a no-longer-true XXXX comment.
  Make the event_finalize* functions return an error code
  More documentation for finalization feature
  Remove bufferevent_del_generic_timeout_cbs as now unused
  Always run pending finalizers when event_base_free() is called
  Use finalization feature so bufferevents can avoid deadlocks
  Add some verbose notes to bufferevent unit tests
  Implement event_finalize() and related functions to avoid certain deadlocks
  Make all tests pass under EVENT_DEBUG_MODE=1
  Drop extra header http_struct.h from regress_http.c
  Add test for EVREQ_HTTP_REQUEST_CANCEL into http_cancel_test()
  Add new error_cb for actual reporting of HTTP request errors.
  Fix another warning introduced in 0c6ec5d8
  Fix a warning introduced in 0c6ec5d8
  evdns: New flag to make evdns not prevent the event loop from exiting
  event_base_update_cache_time should be a no-op if the loop isn't running
  https-client: code cleanup
  Add a test with an active_later event at event_base_free time.
  Another tweak to https-client.c
  Remove http_struct.h usage in sample/https-client.c
  Add an environment variable (EVENT_DEBUG_MODE) to run unit tests in debug mode
  Do not build strlcpy.c when it will have no code.
  Specify return behavior in header for evbuffer_pullup() in corner case
  Fix a typo in a comment in buffer.h. Spotted by Alt_F4
  build test/test-script.sh on systems with a less-featureful $<
  Make --disable-libevent-regress work again
  POST supported, args supported
  Double-check next timeout when adding events
  Test: decoding just part of string with evhttp_decode_uri_internal()
  Move prototype of evhttp_decode_uri_internal() to http-internal.h
  uri decode: changed the test for the existence of the next character
  uri decode: fix for warning "use of uninitialised value"
  pull in wildcard matching code from cURL
  avoid sign mismatch warning in openssl_hostname_validation.c
  use iSECPartners code to validate hostname in certificate
  use Debian's default root certificate location
  better handling of OpenSSL errors
  https-client was putting newlines at 256-byte boundaries
  use ${OPENSSL_LIBS} instead of -lssl -lcrypto
  Add sample/https-client.c, an example of stacking evhttp as a client on top of bufferevent_ssl.
  test filling up the hash table a bit
  use hashtable instead of linked list to cache winsock errors
  make sure caching works, and we don't leak memory
  use FormatMessage for winsock errors
  a program to print out the error strings for winsock errors
  fix #73 and fix http_connection_fail_test to catch it
  Unit test for event_remove_timer with EV_PERSIST.
  Make event_remove_timer behave correctly with persistent timers
  Avoid using $(top_srcdir) in TESTS.
  Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat
  Avoid using top_srcdir in TESTS-new automakes do not like this
  Rename configure.in to configure.ac to appease newer autoconfs
  Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat
  "buffer" spelling
  remove all exes on "make clean", not just regress.exe
  Fix a locking error in bufferevent_socket_get_dns_error.
  Preliminary changes for Minix3.
  Add regress test ipv6_for_domain.
  Implement EVUTIL_ERR_IS_EAGAIN on windows.
  Fix ipv6 support for http. When URL contain domain, not IP address.
  Fix a mistake in evbuffer_remove() arguments in example http server code
  fix some hinky indentation in evhttp_make_request
  Fix typo : Dispatching instead of Dispaching
  event_base_active_by_fd
  Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5)
  Fix missing AC_PROG_SED on older Autoconfs
  When EWOULDBLOCK is not EAGAIN, treat it as equivalent to it
  Fix harmless clang enum warning
  Fix comment to refer to sample/include.am correctly
  Avoid double-close on getsockname error in evutil_ersatz_socketpair
  Avoid leaking fds on evconnlistener with no callback set
  Fix cut-and-paste err in whatsnew-2.1
  minor documentation typos
  Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled
  Increment version to 2.0.21-stable-dev
  Increment version to 2.1.2-alpha-dev
  Fix a bug when running "make verify" out-of-tree
  Clean up and clarify a little more documentation
  Make the argument to bufferevent_get_priority const
  Avoid defining recommended functions in terms of deprecated ones
  Update "what's new in Libevent 2.1"
  Bump versions to 2.1.2-alpha
  Update changelog for 2.1.2-alpha
  Update ChangeLog-2.0
  Fix a gcc warning in rtrim test
  Fix a warning when building without threading.
  Increment libtool version for 2.0.21 too
  Increment version to 2.0.21-stable
  Changelog for 2.0.21-stable
  Make ssl version check in unit tests work
  avoid valgrind false positive by zeroing epoll_event
  Make bufferevent_set_timeouts(bev, NULL, NULL) have plausible semantics
  Add an event_remove_timer() to remove timer on an event without deleting it
  Fix a couple of compile warnings in the unit tests
  Avoid crash when event_pending() called with no event_base set on event
  Use EVUTIL_SOCKET_ERROR() wrapper to save/restor errno in evhttp_connection_fail_
  add evhttp_request_get_response_code_line
  Move evutil_rtrim_lws_ to evutil.c where it belongs
  Remove internal ws from multiline http headers correctly
  Remove trailing tabs in HTTP headers as well.
  Clean up rtrim implementation
  ignore LWS after field-content in headers
  Use correct openssl libs and includes in pkgconfig file
  remove stray 'x' so print_err will compile when uncommented
  Make rpcgen_wrapper.sh work on systems without a "python2" binary
  Add a unit test in which an event is created with event_base_once() but never fires
  Free dangling event_once objects on event_base_free()
  Warn when openssl version in unit test mismatches compiled version.
  Fix renegotiation test to work around openssl 1.0.1 bug
  Use the same CFLAGS for openssl when building unit tests as with libevent
  preserve errno in evhttp_connection_fail_ for inspection by the callback
  Fix event_dlist definition when sys/queue not included
  Clean up unit test for evbuffer_file_segment_add_cleanup_cb a little
  Add a new callback to get called on evbuffer_file_segment free
  Fix compilation on mingw64 with -DUSE_DEBUG
  Fix a few mingw64 incompatibilities introduced since 2.0
  Fix some warnings found cross-compiling with mingw32
  Compile without warnings on mingw64
  Close IOCP listener socket on free when LEV_OPT_CLOSE_ON_FREE is set
  fix a few trivial documentation typos
  Use python2 rather than python
  Use python2 rather than python
  No need to reserve space if reading is suspended.
  Stop looping in "consider_reading" if reading is suspended.
  Fix typo : events instead of evets
  FIx another memleak on OOM in evdns
  Avoid a memory-leak on OOM in evdns.
  Add missing return value in event_base_foreach_event
  Don't discard SSL read event when timeout and read come close together
  Tweak patch for event_base_foreach_event()
  Expose event_base_foreach_event() as a public API.
  Prevent reference leak of bufferevent if getaddrinfo fails.
  Rename configure.in to configure.ac.
  We now require automake 1.9 or later. Modernize!
  Fix handling of no-python case for nonrecursive make
  Be quiet when making regress.gen.[ch]
  New --quiet option for event_rpcgen.py
  Make quiet build even quieter
  Rename subordinate Makefile.ams to include.am
  Switch to non-recursive makefiles
  Enable silent build rules by default. Override with V=1
  Use newer syntax for autoconf/automake init
  Increment version to 2.0.20-stable-dev
  Update ChangeLog-2.0
  Add a date to the changelog
  Increment version to 2.0.20-stable
  Initial changelog and credits for 2.0.20
  Add missing implementation for event_enable_debug_logging
  Rename event_enable_lock_debuging() to ..._debugging()
  Correctly invoke callbacks when a SSL bufferevent reads some and then blocks.
  Avoid test -e; older shs don't have one.
  Add deferred_cb_skew to list of timing-dependent tests
  Avoid unused-var warning on systems with clock_gettime but without CLOCK_MONOTONIC_COARSE
  Add explicit AC_PROG_SED to configure.in so all autoconfs will expose $(SED)
  Fix an unused variable warning on *BSD.
  Avoid segfault on weird timeout during name lookup.
  Extract common error-handling code in evconnlistener_new_bind
  Avoid double-free on error in evbuffer_add_file. Found by coverity.
  Check return value when using LEV_OPT_DEFERRED_ACCEPT. Found by coverity
  Check more setsockopt return values when binding sockets. Found by coverity
  memset sockaddr_in before using it. Found by coverity.
  Move assignment outside tt_assert in ssl unit tests. Appeases coverity.
  Add checks to various return values in unit tests. Found by coverity
  Avoid possible needless call to writev. Found by coverity.
  Remove unused variable; spotted by coverity
  Fix a shadowed variable in addfile_test_readcb; found by coverity
  Avoid memory leak in test_event_calloc unit test; found by coverity
  Add checks for functions in test-ratelim.c; found by Coverity
  Avoid more crashes/bad calls in unit tests; found by coverity
  Add some missing null checks to unit tests; found by coverity
  Fix resource leaks in the unit tests; found by coverity
  Fix various check-after-dereference issues in unit tests: found by coverity
  Set umask before calling mkstemp in unit tests. Found by coverity
  Fix another possible uninitialized read in dns regression tests. Found by coverity.
  Fix possible uninitialized read in dns regression tests. Found by coverity.
  Remove deadcode in http regression tests. Found by coverity.
  Add process.h include to evutil.c for _getpid
  Fix tinytset_skip to work with new tinytest_set_flag_ signature
  Fix compile error in win32 listener.c
  Fix a memory leak on error in evhttp_uriencode
  Win32: avoid crash when waiting forever on zero fds.
  Additional comments about OPENSSL_DIR variable, prompted by Dave Hart
  attempt to support OpenSSL in Makefile.nmake
  Make load-dependent monotonic timer tests off-by-default
  Avoid (unlikely) overflow in bench_httpclient.c
  Check return value of write() in regress.c
  Make all tests that hit the network disabled by default
  Update to latest tinytest (911b4f0349377)
  Make test_evutil_monotonic a little more tolerant
  Make th_base_lock nonrecursive
  remove a now-unused var in thread_deferred_cb_skew test
  Avoid a resource leak on error in http client benchmark
  Simplify and correct evutil_open_closeonexec_
  Avoid giving a spurious warning when timerfd support is unavailable
  Make event_pending() threadsafe.
  Add GCC annotations so that the vsprintf functions get checked properly
  Make the Makefile.nmake warning slightly less dire
  Add evutil_time.obj to Makefile.nmake
  Fix a couple of memory leaks (found with Valgrind).
  Fix a comment in test-fdleak after 077c7e949.
  Correctly check for arc4random_buf
  check for arc4random_buf at runtime, on OS X
  Make it more clear that NOLOCK means "I promise, no multithreading"
  Add caveat to docs about bufferevent_free() with data in outbuf
  Be more clear that LEV_OPT_DEFERRED_ACCEPT has tricky prereqs
  Remove unnecessary code in configure.in.
  Add an event_base_loopcontinue() to tell libevent to rescan right away
  Restore our priority-inversion-prevention code with deferreds
  Give event_base_process_active a single exit path
  Make event_base_getnpriorities work with old "implicit base" code
  Add a bufferevent_get_priority() function
  New event_get_priority() function to return an event's priority
  Replace more deferred_cb names with event_callback
  Replace deferred_cbs with event_callback-based implementation.
  event_base_assert_ok: check value of event_active_count for correctness
  Add "active later" event_callbacks to supersede deferred
  Remove the unused bits from EVLIST_ALL
  Refactor the callback part of an event into its own event_callback type
  Bump version to 2.0.19-stable-dev
  Increment version to 2.0.19-stable
  Oops; fix the *right* windows compile issue
  Fix win32 build issues: sleep, pid_t
  Start changelog for 2.0.19-stable
  Fix evdns build with threads disabled
  When retransmitting a timed-out DNS request, pick a fresh nameserver.
  Make some evdns.c debug logs more verbose
  dns-example.c can now take a resolv.conf file on the commandline
  Correctly handle running on a system where accept4 doesn't work.
  Work-around a stupid gcov-breaking bug in OSX 10.6
  Fixed potential double-readcb execution with openssl bufferevents.
  If a higher-priority event becomes active, don't continue running events of the current priority.
  Generate event-config.h with a single sed script
  Generate event-config.h with a single sed script
  When PRECISE_TIMERS is set with epoll, use timerfd for microsecond precision
  Improve the monotonic-time unit test: make it check the step size
  Simple unit tests for monotonic timers
  Implement fast/precise monotonic clocks on Windows
  Add EVENT_PRECISE_TIMER environment var for selecting precise-but-slow timer
  Refactor monotonic timer handling into a new type and set of functions; add a gettimeofday-based ratcheting implementation
  Split out time-related prototypes into time-internal.h
  Split out time-related evutil functions into a new evutil_time.c
  Split long lists in Makefile.am into one-item-per-line
  Shave 700 msec off the persistent_timeout_jump test
  If time has jumped so we'd reschedule a periodic event in the past, schedule it for the future instead
  Refactor event_persist_closure: raise and extract some common logic
  remove redundant DNS_ERR_CANCEL check, move comment
  cancel the probe request when the server is freed, and ignore cancelled probe callbacks
  Note that make_base_notifiable should not be necessary
  Implement a GetTickCount-based monotonic timer for Windows
  On Linux, use CLOCK_MONOTONIC_COARSE by default
  EVENT_BASE_FLAG_PRECISE_TIMER indicates we want fine timer precision
  Move use_monotonic and friends into event_base
  Work-around a stupid gcov-breaking bug in OSX 10.6
  Replace pipe-based notification with EVFILT_USER where possible
  Do not track use_monotonic field when is no monotonic clock
  Use mach_absolute_time() for monotonic clock support on OSX.
  Tweak the new evutil_weakrand_() code
  Change evutil_weakrand_() to avoid platform random()
  Simplify test.sh code significantly.
  Increment the version to 2.1.1-alpha-dev
  Backport: provide EVENT_LOG_* names, and deprecate _EVENT_LOG_*
  fix some typos in the 2.1 changelog
  Bump the version to Libevent 2.1.1-alpha
  Fix the website URL in the readme
  Try to finalize changelog situation for 2.1.1-alpha
  Add pending names to the README; add more entries to the changelog
  Include ws2tcpip.h from util.h to get EAI_* definitions.
  Fix some compilation warnings with msvc
  Oops; fix a merge conflict that got committed into event2/event-config.h.  Now msvc builds work again.
  Decrease MAX_REQUESTS in test-fdleak
  Include util-internal.h earlier in test-dumpevents to fix solaris build
  Fix compilation with mm-replacement disabled.
  make event_base_get_running_event build with threads disabled.
  Make check-dumpevents work with out-of-tree builds
  Make check-dumpevents.py actually get included in the tarballs
  Configure with gcc older than 2.95
  Missing ) in bufferevent_ratelim.c comment. Found by rransom
  Add missing ) to changelog; spotted by rransom
  Add a missing name to the readme.
  Increase duration and tolerance on http/connection_retry test
  Fix a compilation error with MSVC 2005 due to use of mode_t
  Temporarily disable event_queue_reinsert_timeout
  Make libevent_global_shutdown() idempotent
  Updates for whatsnew-2.1.txt
  Require at least Python 2.4 for check-dumpevents.py.
  Fix a typo in the bufferevent documentation
  Test more bufferevent_ratelim features
  Add event_base_get_running_event() to get the event* whose cb we are in
  More coverage on reinsert_timeout tests
  Make test-dumpevents build on Linux
  Fix a nasty bug in event_queue_reinsert_timeout()
  Add a unit test for event_base_dump_events()
  event_base_dump_events: Report active events tersely, and note internal events
  Fix compilation of evutil_rand on osx
  Fix typo in whatsnew-2.1.txt
  Use libevent_global_shutdown() to clean up in unit tests.
  Distribute whatsnew-2.1.txt.
  Fix another bug from rebase of libevent_global_shutdown patch
  Write a first draft of whatsnew-2.1.txt
  Tweak changelog for 2.1 even more
  Add more things to the 2.1 changelog
  Add an empty changelog section for 2.0.19-stable
  Bump version to 2.0.18-stable-dev
  Bump version to 2.0.18-stable
  Add credits to README
  Changelog for libevent 2.0.18-stable
  Add a new libevent_global_shutdown() to free all globals before exiting.
  event-read-fifo: Use EV_PERSIST appropriately
  Rename event-test.c to event-read-fifo.c.
  On Unix, remove event.fifo left by sample/event-test.c.
  Fix up sample/event-test.c to use newer interfaces and make it actually work.
  Now that event_assign() special-cases event_self_cbarg(), event_new() can stop
  Add a test for using event_self_cbarg() with event_assign().
  event_self_cbarg() works with event_assign() for consistency with event_new().
  Properly zero the kevent in kq_setup_kevent()
  Don't do clang version detection when disabling some flags
  Add a regression test for event_self_cbarg().
  Update sample/signal-test.c to use the new event_self_cbarg().
  Add event_self_cbarg() to be used in conjunction with event_new().
  event_rpcgen.py now prints status information to stdout and errors to stderr.
  Add netinet/in.h include to fix test-fdleak on openbsd
  Restore accidentally disabled nanosleep implementation of evutil_usleep.
  Fix doxygen to use new macro conventions
  Clean up lingering _identifiers.
  Apply the naming convention to our EVUTIL_IS* functions
  Have all visible internal function names end with an underscore.
  Fix some problems introduced by automated identifier cleanup script
  Make event_rpcgen.py output conform to indentifier conventions, more
  Fix all identifiers with names beginning with underscore.
  Make the generated event-config.h use correct include guards
  Stop referring to an obsolete include guard in bench_http.h
  Make event_rpcgen.py output conform to indentifier conventions
  Convert include-guard macro convention to avoid reserved identifiers
  Generate event-config.h using the correct macros.
  Convert event-config.h macros to avoid reserved identifiers
  Make event-config.h depend on Makefile.am
  Check for NULL return on win32 mm_calloc, and set ENOMEM.
  Do not use system EAI/AI values if we are not using the system getaddrinfo.
  Replace sole internal user of socklen_t with ev_socklen_t
  Fix evmap to work with HT-backed IO maps again.
  evutil_accept4() should take ev_socklen_t
  test-fdleak: Avoid perror, since it does not capture windows socket errors
  remove debugging prints
  test-fdleak: Call event callbacks event_cb.
  Remove fixed port from test-fdleak, so two instances can run in parallel
  Remove an unsafe programming practice from test-fdleak; add XX comments
  Try and fix compilation and running of test-fdleak on Windows.
  Allow compilation on machines that do not have setrlimit.
  Simply test-fdleak by running server & client sockets in the same event loop.
  Add a new test: test-fdleak which tests for fd leaks by creating many sockets.
  If accept4 is absent, fall back to accept.
  Avoid leaking fd in evutil_socket() by Linux.
  Remove the last vestiges of _EVENT_USE_EVENTLIST
  Add doxygen for event_base_dump_events
  Refactor the functions that run over every event.
  Fix an "unused return value" warning on write() in signal handler
  Start work on a 2.1 changelog and whats-new
  Add another caveat to the TCP_DEFER_ACCEPT documentation
  Support TCP_DEFER_ACCEPT sockopts for listeners
  Stop crashing in evdns when nameserver probes give a weird error
  Changed OPENSSL_LDFLAGS to OPENSSL_LIBADD
  Added OPENSSL_LDFLAGS env variable which is appended to SSL checks.
  If open(O_CLOEXEC) fails, fall back to fcntl(CLOEXEC)
  Fix up usage of reserved identifiers in ht-internal.h
  Port changes from Tor for ht-internal.h
  Invert the sense and the name of HT_CACHE_HASH_VALUES
  Synchronize with upstream tinytest
  Merge in a punctuation fix from upstream tinytest
  Move libevent 1.x headers to include/, to put all public headers in one place.
  Tweak the evutil_open_closeonexec patch to work on windows, old unixes.
  Make uses of open() close-on-exec safe by introducing evutil_open_closeonexec.
  Add a bufferevent_getcb() to find a bufferevent's current callbacks
  Also make win32select.c conditional for IDE users
  Add an empty section to the changelog for 2.0.18-stable
  Correct a name in the credits. oops
  Bump version to 2.0.17-stable-dev
  Update the credits in the readme
  Finalize the changelog
  Fix compilation on osx
  Update copyright notices to 2012
  Bump version to 2.0.17-stable
  Prefer epoll_create1 on Linuxen that have it
  Save some syscalls when constructing a socket for a bufferevent
  Save some syscalls when creating evdns sockets
  Save syscalls when constructing listener sockets for evhttp
  Use pipes for telling signals to main thread when possible
  Use a wrapper function to create the notification pipe/socketpair/eventfd
  The LEV_OPT_CLOSE_ON_EXEC flag now applies to accepted listener sockets too
  Minimize syscalls during socket creation in listener.c
  Infrastructure for using faster/fewer syscalls when creating sockets
  In the kqueue backend, do not report EBADF as an EV_READ
  Avoid crash when freeing event_iocp and using event_set_mem_functions
  Put #ifdef around some files to support alternate build systems.
  Bring the changelog up to date
  Loop on filtering SSL reads until we are blocked or exhausted.
  Replace more C99/C++ comments with oldschool /* */ comments
  Use C-style comments in C source files (for compatibility with compilers such as xlc on AIX).
  evdns: fix a bug in circular-queue implementation
  Fix a compile warning in event_reinit
  Remove the eventqueue list and the ev_next pointers.
  Make test-changelist faster
  Check changelist as part of checking representational integrity
  Restore fast-path event_reinit() for slower backends
  Make event_reinit() more robust and maintainable
  Better workaround for Linux 3.2 edge-triggered epoll bug
  Do a memberwise comparison of threading function tables
  When including an -internal.h header outside the main tree, do so early
  Allow more slop in deferred_cb_skew test; freebsd needs it
  Remove a couple of now-unused variables
  Make event_base integrity check work on windows
  Start writing a changelog for 2.0.17-stable
  Use test_timeval_diff_eq more consistently
  Make regression tests run over 3x faster.
  New evhttp function to adjust initial retry timeout
  Reduce the timeout in the main/fork test.
  Add an (internal) usleep function for use by unit tests
  Oops:remove an accidentally committed "sleep(1)" in a unit test
  Workaround in the unit tests for an apparent epoll bug in Linux 3.2
  Fix a fd leak in event_reinit()
  Fix a list corruption bug when using event_reinit() with signals present
  Check event_base correctness at end of each unit test
  Fix compilation of windows evutil_check_ifaddrs
  Add function to check referential integrity of an event_base
  Force strict validation of HTTP version in response.
  Suppress a gcc warning from ignoring fwrite return in http-sample.c
  Fix a race condition in the dns/bufferevent_connect_hostname test.
  Make evconnlistener work around bug in older Linux when getting nmapped
  Remove bogus casts of socket to int before calling ev_callback
  Backport evhttp_connection_get_bufferevent to Libevent 2.0
  Slightly clarify evbuffer_peek documentation
  Fix behavior of evbuffer_peek(buf,-1,NULL,NULL,0)
  Remove some accidentally-committed debugging code
  whitespace fixes
  check for sysctl before we use it
  Split up extra-long AC_CHECK_FUNCS/HEADERS lines in configure.in
  Use getifaddrs to detect our interfaces if possible
  Changed use of refcounts to make sure referenced chains are freed in all cases.
  Add evbuffer_copyout_from to copy data from the middle of a buffer
  Bypass event_add when using event_base_once() for a 0-sec timeout
  Fix a silly compilation error with the sun compiler
  Be absolutely sure to clear pncalls before leaving event_signal_closure
  fix windows compilation issues with new file segment code
  Fix two issues in the allow_dirty_shutdown code.
  Tweak allow_dirty_shutdown documentation
  Allow users to set allow_dirty_shutdown
  bev_ssl: Be more specific in event callbacks. evhttp in particular gets confused without at least one of BEV_EVENT_{READING|WRITING}.
  Increment version to 2.0.16-stable-dev
  Increment version to 2.0.16-stable
  Revise 2.0.16-stable changelog
  add comment to new consider_reading code
  Avoid spinning on OpenSSL reads
  Move SSL rate-limit enforcement into bytes_to_read()
  Refactor amount-to-read calculations in buffervent_ssl consider_reading()
  Revert "Avoid potential SSL read spinlocks"
  Revert "openssl bufferevent has the same issue with writing as prior commit."
  Add new entries to changelog, new credits to README
  Fix DNS memleak checks when running with malloc-replacement/debugging disabled
  Don't try to make notifiable event_base when no threading fns are configured
  Warn when unable to construct base because of failing make_base_notifiable
  openssl bufferevent has the same issue with writing as prior commit.
  Avoid potential SSL read spinlocks
  unit tests for EVBUFFER_EOL_NUL
  New EVBUFFER_EOL_NUL to read NUL-terminated strings from an evbuffer
  Tweaks, fixups, and comments on evbuffer_add_iovec
  Added evbuffer_add_iovec and unit tests.
  Improve win32 behavior of dns-sample.c codex
  Fix typo in whatsnew-2.0.txt
  Use the free-trailing-chains function in evbuffer_insert_chain too
  Fix an evbuffer crash in evbuffer_remove_buffer()
  improve test to remove at least one buffer from src
  unit test for remove_buffer bug
  Fix compile warning from saying event2/*.h inside a comment
  epoll: close fd on alloc fail at initialization
  evhttp: Add evhttp_foreach_bound_socket.
  Update copyright dates to 2011.
  New event_base_update_cache_time() to set cached_tv to current time
  Add argument checks to some memory functions in `event.c'.
  Add note about evhttp_send_reply_end to its doxygen
  More detailed message in case of libevent self-debugging failure.
  Style and comment tweaks for dns/leak* tests
  Test for commit aff6ba1
  Empty DNS reply with OK status is another way to say NODATA.
  Tests for 94fba5b and f72e8f6
  fixed typo
  added comments to describe refcounting of multicase chains
  Bump version to 2.0.15-stable-dev
  Credit a patch from a one-named user
  Increment version to 2.0.15-stable
  Add changelog for 2.0.15-stable
  bufferevent: Add functions to set/get max_single_read/write values.
  Make evbase_priority_init() and evbase_get_npriorities() threadsafe
  Add event_base_get_npriorities() function.
  refer to non-deprecated evdns functions in comments
  Make evbuffer_file_segment_types adaptable
  New EVLOOP_NO_EXIT_ON_EMPTY option to keep looping even when no events are pending
  Allow evconnlistener to be created in disabled state.
  Fix some "value never used" warnings with gcc 4.6.1
  Make write-checking fixes use tt_fail_perror
  Fixed compiler warnings for unchecked read/write calls.
  Prefer mmap to sendfile unless a DRAINS_TO_FD flag is set. Allows add_file to work with SSL.
  Make evbuffer callbacks get the right n_added value after evbuffer_add
  Use _SOURCES, not _sources, in sample/Makefile.am
  le-proxy and regress depend on openssl directly
  Add DNS_ERR_NODATA error code to handle empty replies.
  Fix docstring in dns.h
  Build with large-file support on platforms where it matters
  Clarify event_enable_debug_logging a little
  Remove calls to deprecated bufferevent functions from evhttp.c
  Add evhttp callback for bufferevent creation; this lets evhttp support SSL.
  Implement --enable-gcc-hardening configure option
  Make gcc warnings on by default, and --enable-gcc-warnings only add -Werror
  When a signal callback is activated to run multiple times, allow event_base_loopbreak to work even before they all have run.
  DNS: add ttl for negative answers using RFC 2308 idea.
  Make --enable-verbose-debug option match its help text
  Increment version to 2.0.14-stable-dev
  Credit new contributors for 2.0.14-stable
  Pick a release date for the changelog
  Bump version to 2.0.14-stable
  Use SIG_IGN instead of a do-nothing handler for signal events with kqueue
  Fix OSX build: $(OPENSSL_INCS) needs to be after $(AM_CPPFLAGS).
  clear read watermark on underlying bufferevent when creating filtering bev to fix potentially failing fragmented ssl handshakes
  Checkpoint changelog entries for 2.0.14-stable
  Correctly terminate IO on an async bufferevent on bufferevent_free
  Have test-ratelim.c support IOCP
  Make IOCP rate-limiting group support stricter and less surprising.
  Support negative arguments to _bufferevent_decrement_(read/write)_buckets()
  We need AM_CPPFLAGS when compiling bufferevent_openssl.c
  Use pkg-config (if available) to handle OpenSSL.
  Provide the autoconf m4 macros for the new OpenSSL via pkg-config stuff.
  Cleanup on 7c11e51e1ab: fix strtol usage
  Cleanup on 7c11e51e1ab: restore c90 declaration compliance
  Clean up some problems identified by Coverity.
  Make rate limiting work with common_timeout logic
  Make overlapped reads result in evbuffer callbacks getting invoked
  IOCP: don't launch reads or writes on an unconnected socket
  Try to fix 'make distcheck' errors when building out-of-tree
  Make the priority inversion code use gettime(), not evutil_gettimeofday()
  Make max_dispatch_interval able to apply only to low-priority events
  Optimization in event_process_active(): ignore maxcb & endtime for highest priority events.
  Make sure max_dispatch_callbacks is never negative
  Add event_config function to limit time/callbacks between calls to dispatch
  Solaris sendfile: correctly detect amount of data sent
  Fix request_finished memory leak with debugging turned on.
  Fix evsig_dealloc memory leak with debugging turned on.
  Another docstring fix.
  more event dbg updates
  Fix handling of group rate limits under 64 bytes of burst
  added timeout debug logs to include event ptr.
  Added usec debug in another area for debug
  Debug addition for printing usec on TIMEOUT debugging.
  Ignore deprecation warnings on OS X
  prevent nested multicast references, reworked locking
  support adding buffers to other buffers non-destructively
  Allow OS-neutral builds for platforms where some versions have arc4random_buf
  changed to --enable-verbose-debug
  Propagate errors on the underlying bufferevent to the user.
  Added --enable-event-debugging in configure
  Add missing break to evhttp_parse_request_line
  Fix typo in event_compat.h comments.
  Bump version to 2.0.13-stable-dev
  Bump version to 2.0.13-dev
  acks and changelog for 2.0.13-stable
  Give Makefile.am echo a non-null argument. msys likes this
  Fix a warning in evutil_rand when building with threads disabled
  Use AM_CPPFLAGS in sample/Makefile.am, not AM_CFLAGS
  Add doxygen to .gitignore
  Fix up test_evutil_snprintf
  Fix a test-call accidentally in the last commit
  More abstraction in test.sh
  Update Doxyfile to produce more useful output
  Revise the event/evbuffer/bufferevent doxygen for clarity and accuracy
  Use "unlimited select" on OSX so that we can have more than FD_SETSIZE fds
  Fix select.c compilation on systems with no NFDBITS
  Speed up invoke_callbacks on evbuffers when there are no callbacks
  Fix bug in SSL bufferevents backed by a bev with a write high-watermarks
  Fix a few warnings on OpenBSD
  Fix AIX build issue with TAILQ_FOREACH definition
  Don't install event_rpcgen.py when --disable-libevent-install is used
  Set the special "not found" evbuffer_ptr consistantly.
  Don't break when building tests from git without python installed
  Improve evbuffer_ptr documentation
  Tweaks to return types with end-of-buf ptrs
  Allow evbuffer_ptr to point to position 0 in an empty evbuffer
  Allow evbuffer_ptr_set to yield a point just after the end of the buffer.
  Add failing test for evbuffer_search_range.
  Simplify windows commandname logic in tinytest
  Fix tinytest invocation from windows shell
  Use the correct printf args when formatting size_t
  Check if the `evhttp_new_object' function in `http.c' returns NULL.
  Report kqueue ebadf, epipe, and eperm as EV_READ events
  Replace an assertion for event_base_free(NULL) with a check-and-warn
  Add some missing checks for mm_calloc failures
  Remove a needless branch in evbuffer_drain()
  Fix a bug in the improved EOL_CRLF code
  Fix incorrect results from evbuffer_search_eol(EOL_LF)
  Bump version to 2.0.12-stable-dev
  tweak date on changelog
  Changelog and new credits for 2.0.12-stable
  Bump version to 2.0.12-stable.  Not release just yet
  Fix regress_ssl.c build on openbsd
  Fix windows file segment mappings
  Avoid a segfault when all methods are disabled or broken
  Try to squeeze a little more speed out of EVBUFFER_EOL_CRLF
  cygwin: make it possible to build DLLs
  Roughly 20% speed increase when line-draining a buffer using EVBUFFER_EOL_CRLF
  Fix a fencepost bug in the select backend
  Make the new http_connect_fail_test use a multicast addr, not broadcast
  InitializeCriticalSectionAndSpinCount requires _WIN32_WINNT >= 0x0403.
  Allow base-notification functions to exist without setting an fd
  Reenable main/many_events_slow_add for evport in 2.1
  evport: Remove artificial low limit on max events per getn call
  evport: don't scan more events in ed_pending than needed
  evport: Use portev_user to remember fdinfo struct
  evport: Remove a linear search over recent events when reactivating them
  evport: use evmap_io to track fdinfo status. Should save time and RAM.
  Fix a couple of signed/unsigned warnings in http.c
  Disable main/many_events_slow_add with evport backend
  Fix compilation.
  updated EV_S(s)IZE definitions
  Added overflow checks in evhttp_read_body and evhttp_get_body
  Added several checks for under/overflow conditions in evhttp_handle_chunked_read
  Always use evutil_snprintf, even if OS provides it
  Do not define WIN32 in Makefile.nmake
  In configure, test for _WIN32 not WIN32.
  Use "_WIN32", not WIN32: it's standard and we don't need to fake it
  Use evutil_gettimeofday instead of relying on the system gettimeofday.
  Fix winsock2.h #include issues with MSVC
  Make sure TINYTEST_LOCAL is defined when building tinytest.c
  unistd.h and sys/time.h might not exist.
  MSVC does not provide S_ISDIR, so provide it manually.
  Bring in the compile script from automake, if needed.
  Make the tests build when OpenSSL is not available.
  Link with -lshell32 and -ladvapi32 on Win32.
  Fix new warnings from GCC 4.6
  Prevent size_t overflow in evhttp_htmlescape.
  Fix a bug that prevented us from configuring IPv6 nameservers.
  Test case for 0848814ac49616
  Fix failing assertion introducd in commit 0d6622e
  Fix compilation with GCC 2, which had no __builtin_expect
  Fix a compile warning with zlib 1.2.4 and 1.2.5
  Correctly detect openssl on windows
  Performance tweak to evhttp_parse_request_line.
  Move the win32 detection in configure.in
  Use OPENSSL_LIBS in Makefile.am
  Libtool brings in the dependencies of libevent_openssl.la automatically
  libssl depends on libcrypto, not the other way around.
  Oops; that new unit test breaks for epoll.  Fix it.
  Fix a warn-and-fail bug in kqueue by providing kevent() room to report errors
  Add missing words to EVLOOP_NONBLOCK documentation
  Bump version to 2.0.11-stable-dev
  Increment version number to 2.0.11-stable
  Add more people to the acknowledgments
  Changelog for 2.0.11-stable
  Fix clang warning when resetting connection
  Use AM_CONDITIONAL, not AC_SUBST, to tell automake to build regress
  Fix msvc build: it needed to know about _EVENT_HAVE_STRUCT_SOCKADDR_STORAGE
  Try to fix up CHECK_REGRESS hack to not break on win32
  Add missing header for regress_http compilation on win32
  call setsockopt correctly on connecting() IOCP-bufferevents so shutdown() will work
  Zero a struct sockaddr_in before using it
  Remote some dead code from dns-example.c
  Check return value of evbuffer_add_cb in tests
  Be nice and "handle" error return values in sample code
  Refactor test_getaddrinfo_async_cancel_stress()
  add some (void) casts for unused variables
  Actually send NULL request in http_bad_request_test
  Add a forgotten return value check in the unit tests
  Add an assert to appease clang's static analyzer
  Fix possible NULL-deref in evdns_cancel_request
  Add a forgotten NULL check to evhttp_parse_headers
  Fix compilation under LLVM/clang with --enable-gcc-warnings
  Complain if the caller tries to change threading cbs after setting them
  Avoid race-condition when initializing global locks
  Fix a memory leak on win32 socket->event map.
  Handle calloc failure in evdns. (Found by Dave Hart)
  Fix a crash bug in evdns server circular list code
  Fix a couple of memory leaks in samples/http-server.c. Found by Dave Hart.
  Avoid a free(NULL) if out-of-memory in evdns_getaddrinfo. Found by Dave Hart
  Fix the check for multicast or broadcast addresses in evutil_check_interfaces
  Check for allocation failures in apply_socktype_protocol_hack
  Fix the case when failed evhttp_make_request() leaved request in the queue.
  Fix subtle recursion in evhttp_connection_cb_cleanup().
  Reset outgoing connection when read data in idle state.
  Add comment to configure.in to explain gc-sections test logic
  Fix for --gc-sections on NetBSD
  Fix make distcheck & installation of libevent 1 headers
  Fix incorrect assertions and possible use-after-free in evrpc_free()
  munge the debug_lock signature before freeing it: it might help us catch use-after-free
  Add a magic number to debug_locks to better catch lock-coding errors.
  In the 2.1 branch, let's try out lazy gettimeofday/clock_gettime comparison
  Disable lazy gettimeofday/clock_gettime comparison for now
  Followup for Tomash Brechko's http patch
  Workaround libevent bug https://sourceforge.net/tracker/index.php?func=detail&aid=3078187&group_id=50884&atid=461324
  Have event_base_gettimeofday_cached() always return wall-clock time
  Make --no-libevent-install apply to event1 headers too
  Make --no-libevent-install apply to headers too
  Continue AM_CFLAGS to AM_CPPFLAGS correction
  Make event_count maintainance branchless at the expense of an extra shift. Needs benchmarking
  possible optimization: split event_queue_insert/remove into separate functions. needs testing
  Add new evhttp_{connection_}set_timeout_tv() functions to set finger-grained http timeouts
  Make -ffunction-sections off-by-default in 2.0.x
  Remove nonfunctional enable_libevent_(install|regress)_def variables
  Use $(), not @@, for LIBEVENT_GC_SECTIONS
  Be explicit about how long event loops run in event.h documentation
  Use %s with printf in test.sh
  Correct an AM_CFLAGS to an AM_CPPFLAGS in test/Makefile.am
  Add configure options to disable installation, regression tests
  Add -D_OSF_SOURCE to fix hpux builds
  Use the gcc -ffunction-segments feature to allow gc when linking with static libevent
  Check for getservbyname even if not on win32.
  Fix autoconf bracket issues; make check for getaddrinfo include netdb.h
  Skip check for zlib if we have no zlib.h
  Make test-eof fail with a timeout if we never get an eof.
  FIX: comment internal headers used in sample code.
  NM: Fix sample/http-server ipv6 fixes
  Include util-internal.h as needed to build on platforms with no sockaddr_storage
  Include arpa/inet.h as needed on HPUX
  Correctly detect and stop non-chunked http requests when the body is too long
  fix spelling mistake in whatsnew-2.0.txt
  Correct evhttp_del_accept_socket documentation on whether socket is closed
  Clarify event_set_mem_functions doc
  Make URI parser able to tolerate nonconformant URIs.
  Fix a type error in our (unused) arc4random_stir()
  Fix warnings about AC_LANG_PROGRAM usage
  Save a needless comparison when removing/adjusting timeouts
  Remove a needless base-notify when rescheduling the first timeout
  Optimize the case where we reinsert an existing timeout
  Fix test.sh output on solaris
  Do not check for gethostbyname_r versions if we have getaddrinfo
  Add compile-time check for AF_UNSPEC==PF_UNSPEC
  Fix http unit test on non-windows platforms without getaddrinfo
  Build on systems without AI_PASSIVE
  Try to build correctly on platforms with no IPv6 support
  Build correctly on platforms without sockaddr_storage
  Fall back to sscanf if we have no other way to implement strtoll
  ...
73e9297
@azat azat added a commit to azat/libevent-deb that referenced this issue Aug 29, 2015
@azat azat Merge remote-tracking branch 'main/master' into 2.1.5-release-1
* main/master: (2995 commits)
  Always define missing TAILQ functions from sys/queue.h
  Don't use BSD u_* types.
  Remove BSD-ism: TIMEVAL_TO_TIMESPEC().
  be: include all variations of headers for sockaddr_in6 struct
  http: eliminate warning about "socklen" in evhttp_connection_connect_()
  be: fix sockaddr_in6 type definition for win32
  sample/https-client: don't try to free uninitialized SSL
  sample/https-client: graceful exit with freeing memory (to make valgrind happy)
  https-client: correctly handle URLs with no path (like "https://host:port")
  sample/http-connect: don't use assert() to make it work with NDEBUG
  test/regress_http: initialize "dns_base" to avoid reading trash
  sample/http-connect: made it compatible with C90
  be_sock: bufferevent_socket_set_conn_address(): assert instead of silent no-op
  http: reuse connected address only with EVHTTP_CON_REUSE_CONNECTED_ADDR
  be_sock: sanity check in bufferevent_socket_set_conn_address()
  be: replace sockaddr_storage with sockaddr_in6 for conn_address
  be: we don't need to use getpeername() we we have conn_address
  be: replace conn_address by full struct instead of pointer
  test/http: cover retrying with saved conn_address by shutting down dns server
  http: use IP address that we got before (if any) during retrying
  bufferevent: move conn_address out from http into bufferevent
  be: make @sa const for bufferevent_socket_connect()
  util: make @sa const for evutil_socket_connect_()
  sample: add HTTP CONNECT tunnelling example using libevent http layer
  http: introduce evhttp_request_free_() helper
  http: introduce evhttp_is_request_connection_close() helper
  Updated gitignore
  Update dns-example.
  Update bench_httpclient.c
  *fix: bench_httpclient to support win32
  Set correct socklen for PF_INET6 sockaddr len
  Debug mode option to error on evthread init AFTER other event calls.
  Update README.md
  Update README.md
  Update README.md
  Update travis config for status updates
  Update README.md
  Use autotools for appveyor until cmake is fixed.
  Commented out a WIN32 threading / timing test for now
  Fix the link for appveyor OpenSSL installer (WIN32)
  Fix garbage value in socketpair util function, stdint?
  expose bufferevent_incref/decref (with fewer modifications)
  Call underlying bev ctrl SET_FD on filtered bufferevents
  Fix potential fd leak in listener_read_cb()
  tab
  fix the return value of event_deferred_cb_schedule_
  Fix mixed declarations and code (forbidden by ISO C90)
  Fix "function declaration isn’t a prototype"
  Forgot to install OpenSSL for appveyor
  Add support for appveyor.com windows CI
  This fixes a bug introduced in 27bd9faf498b91923296cc91643e03ec4055c230
  New function to get address for nameserver.
  changed strtotimeval signature as per #211
  Added cmake-generated files to ignore list.
  be_pair/regress: cover use of shared lock (lock/unlock/free)
  event_free_debug_globals_locks(): disable lock debugging
  evthread: evthreadimpl_disable_lock_debugging_() for libevent_global_shutdown()
  evthread: add evthread_get_{lock,condition}_callbacks() helpers
  be_pair: release shared lock with the latest of bufferevent_pair
  EVBUFFER_PTR_SET -> EVBUFFER_PTR_ADD
  regress_dns: drop hack for event_debug_map_HT_GROW in leak tests
  event: call event_disable_debug_mode() in libevent_global_shutdown()
  ht-internal: don't reset hth_table_length explicitly in name_##HT_CLEAR
  Update changelog
  Fix CVE-2014-6272 in Libevent 2.1
  Increment version to 2.1.5-beta
  work on changelog for 2.1.5-alpah
  Fix CMake shared library build
  Fix warnings when compiling with clang 3.5
  Fix annoying heisenbug in test-time.c
  Fix mixed declarations and code (forbidden by ISO C90)
  Implement new/free for struct evutil_monotonic_timer and export monotonic time functions
  Fix evbuffer_peek() with len==-1 and start_at non-NULL.
  Start on 2.1.5-alpha/beta changelog
  Work on the changelog for 2.0.22
  Fix race caused by event_active
  More evbuffer_peek() test cases
  test/evbuffer_peek: add regress in case we have first buffer greater
  Fix evbuffer_peek() with len==-1 and start_at non-NULL.
  Fix cmake error when the Module path has more than one entry.
  evhttp: Fix failure to send all output data for POST/PUT requests
  be async: avoid double close()
  Prevent duplicate event_del on fd
  evdns: avoid read-after-free in evdns_request_timeout_callback()
  dns-example: allow to set ns from args
  dns-example: convert to getopt()
  Add test for evhttp_connection_free_on_completion
  Implement interface that provides the ability to have an outbound evhttp_connection free itself once all requests have completed
  remove trailing comma from enum
  Provide support for SO_REUSEPORT through LEV_OPT_REUSABLE_PORT
  Fix a typo in a doxygen comment. Reported by 亦得.
  http: reset connection before installing retry timer (fix http retries handling)
  evdns: fail ns after we are failing/retrasmitting request
  evdns: add retry/reissue tests for EVDNS_BASE_DISABLE_WHEN_INACTIVE
  evdns: fix EVDNS_BASE_DISABLE_WHEN_INACTIVE in case retransmit/retry
  Fix compilation for older OpenSSL versions.
  bufferevent_openssl: reset fd_is_set when setfd with -1 is called
  https-client: add -retries argument, for connection retries
  [Bugfix] fix bufferevent setwatermark suspend_read
  Fix several memory leaks in the unit tests.
  Fix for a677b72bd6d9d378daf9775966aa8ca574e26e67
  Make a buffer larger in the tests to avoid a scary evbuffer_copyout_from()
  Use a more precise calculation for max in time-ratelim.c
  Use evutil_weakrand() in unit tests.
  Fix a c90 warning
  Fix a dead-code warning in unit tests. CID 1193548
  Fix a use-after-free in unit tests. CID 752027
  Fix use-after-free error in EV_CLOSURE_EVENT callback
  regress_buffer: fix 'memcmp' compare size
  use correct tt macro for pointer compare
  make bufferevent_getwatermark api more robust
  [Bugfix] fix grammer error
  updates in cmake build
  Correctly handle allocation failures in evdns_getaddrinfo
  Consistently check for failure from evbuffer_pullup()
  Use FindClose for handle from FindFirstFile in http-server.c
  Change return type of evutil_load_windows_system_library_ to HMODULE
  Fix issue #127, double free for filterevents that use BEV_OPT_CLOSE_ON_FREE
  Add a few files created by "make verify" to .gitignore.
  test/regress: add simplestsignal: to track reorder bugs separately
  add a --disable-samples configure flag
  ignore config.cache/test-driver files
  Handle ENOTCAPABLE from FreeBSD - this is returned if an event in the changelist is for an FD that has been closed.
  Make http-server.c output into good html5
  Update to a more recent tinytest_macros.
  ignore one more test binary
  regress dns: drop alarm() (since windows don't have it)
  evdns: we don't need to add retry timer in transmit_to it will be done on fail
  evdns: add regress test for flag EVDNS_BASE_DISABLE_WHEN_INACTIVE without ns
  evdns: add regress for EVDNS_BASE_DISABLE_WHEN_INACTIVE base flag
  evdns: disable probing with EVDNS_BASE_DISABLE_WHEN_INACTIVE
  tree.h: drop duplicated content of tree.h
  test/http: add regress test for set family to AF_INET6
  test: add regress for evhttp_connection_set_family() with AF_INET and AF_UNSPEC
  test: add family argument for http_connection_test_()
  Fix a crash in evdns related to shutting down evdns
  Add missing headerfile for cmake
  regress_dns: fix leaks in getaddrinfo_async{,_cancel_stress} tests
  Fix a crash in evdns related to shutting down evdns
  Increment version to 2.1.4-alpha-dev
  Update release date in changelog
  Don't truncate hosts file path on Windows.
  Load hosts file on Windows.
  Add evhttp_connection_set_family() to set addrinfo->family for DNS requests
  Fixup make install for cmake projects
  Renamed sin to saddr due to name conflict
  Correctly skip ipv6 http test on systems without ipv6
  Remove integer-overflow unit tests
  evtag: detect tags over 32-bits earlier
  Catch over-large port numbers early in http
  Fix ubsan warnings when parsing ipv4/ipv6 addrs
  Fix a use-after-free error on EV_CLOSURE_EVENT_FINALIZE callbacks
  Fix an illegal read error in the evbuffer_add_reference tests
  Add new APIs to whatsnew-2.1
  Increment version to 2.1.4-alpha
  Bring changelog up to date for 2.1.4-alpha
  Avoid double-close paths in http tests
  Add missing include to regress_finalize.h
  Skip http/ipv6_for_domain test when we have no ipv6 support
  Add an include to evrpc-internal to fix openbsd compilation warning
  Heap-allocate zlib data structure in regress_zlib tests
  Fix consts in WIN32-Code/getopt*.[ch]
  Fix duplicate paragraph in evbuffer_ptr documentation
  Initialize async bufferevent timeout CBs unconditionally
  add a cast to https-client.c
  Export event_extra not event_extras.
  Update to the latest version of tinytest
  Fix 'make distcheck' by adding regress.gen.[ch] to DISTCLEANFILES
  Move assert(ev) to before we use ev in EV_CLOSURE_EVENT_FINALIZE case
  Add -Qunused-arguments for clang on macos
  Add option to build shared library
  Do not offer EV_FEATURE_EARLY_CLOSE if we have no EPOLLRDHUP
  Stop checking for inet_aton; we don't use it.
  Rename event_extras to event_extra
  BUGFIX: Fix compilation on systems with EPOLLRDHUP undefined.
  Add cmake-related files to .gitignore
  Added -Qunused-arguments for clang on macosx
  bufferevent_pair: don't call downcast(NULL)
  Tweaked callbacks to prevent race condition (https://github.com/libevent/libevent/issues/104)
  Tweaked callbacks to prevent race condition (https://github.com/libevent/libevent/issues/104)
  Added a Travis-CI configuration file.
  Check does arch have the epoll_create and __NR_epoll_wait syscalls.
  Check for OSX when checking for clang.
  Guard against EVENT_NOWIN32 being set during testing.
  Fix https-client compilation on Windows.
  CMake: Get rid of python not found warning when regress tests turned off.
  Fix CMake compile when OpenSSL is disabled.
  Split epoll lookup table into a separate header file
  Expand EV_CLOSED documentation a bit
  Disclaimerize cmake a little in the README
  Fix broken autotools build.
  Fix a c90 warning
  Check if we're on OSX before disabling deprecation in le-proxy
  Change all uses of WIN32 to _WIN32
  Fix include bug.
  Implemented EV_CLOSED event for epoll backend (EPOLLRDHUP).
  Forgotten headers for old nmake project compatability.
  Clean up the README some.
  Update README with CMake build instructions.
  Rename README to README.md and use markdown to format.
  Fix so that old nmake project still builds.
  Set USE_DEBUG=1 on EVENT__ENABLE_VERBOSE_DEBUG
  Some work on making it possible to simply do add_subdirectory() on the project.
  Fix typo
  Add CMake config and install targets.
  Fix even more coverity warnings.
  Fix a couple of compilation warnings in regress_http.c
  Remove spurious checks in evrpc.c error cases (coverity)
  Whoops; fix compilation in bench.c
  Fix coverity warnings in benchmark tools.
  Fix a pile of coverity warnings in the unit tests
  Update unit test to make sure that the callback happens after the output data is written
  evhttp_request_set_on_complete_cb to be more specific about what the function actually does and usage
  Provide on request complete callback facility
  Added unit test for max event counts
  Fixed bug using wrong variable in max event compare
  Add access to max event count stats
  Remove unneeded declaration in bufferevent-internal.h
  Fix needless bufferevent includes in evdns.c
  Fix a couple of "#ifdef WIN32" instances
  Sample HTTPS Client: Set hostname for SNI extension (by f69m)
  fix for ServFail from RIPE Atlas release
  Small tweaks to https-client.c
  Minor optimizations on bufferevent_trigger options
  Make bufferevent_trigger_nolock_() inline
  Unit tests for active_by_fd; unsupport active_by_fd(TIMEOUT)
  Add event_base_active_by_signal by analogy
  Sanity-check arguments to event_base_active_by_fd()
  Refactor evmap_{io,signal}_active_() to tolerate bad inputs
  Typo fixes from Linus Nordberg
  Typo fixes from Linus Nordberg
  Added EVENT__ENABLE_GCC_WARNINGS, turns all warnings into errors.
  Only look for ZLib when it is used (if tests are included).
  Fix the "make verify" target on NetBSD
  Add a "make verify_coverage" target generation coverage info.
  Get rid of unknown pragma warnings.
  Minimum required python version is 2.4.
  Change the BSD license from 4 to 3-clause.
  Added a test for testing if kqueue works with pipes.
  Fix kqueue support.
  Get rid of deprecation warnings for OpenSSL on OSX 10.7+
  Fix the make "verify" target on Windows.
  Clarify event_base_loop exit conditions
  Added a "make verify" target.
  Only test the event backends available on the system.
  Don't segfault on no found event backend.
  Fix bench_cascade program on Windows.
  Only include WIN32 getopt where it is used.
  Add copyright and licensing files for CMake modules.
  Use evutil_closesocket instead.
  Added some GCC specific options.
  Link libm on unix platforms.
  Generate a dummy evconfig-private.h so things build properly.
  More work on adding tests to CMake project
  Add all tests and benchmarks to CMake project.
  Initial CMake commit.
  Fix non-C89 variable declaration.
  Fix non-C89 variable declaration.
  Rename flush_outdated_host_addresses to clear_host_addresses
  bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated addresses
  bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated adresses
  Clarifications in response to merge req. comments
  start writing a changelog for 2.1.4-(beta?)
  update the 2.0 changelog
  Add an option to trigger bufferevent event callbacks
  Add an option to trigger bufferevent I/O callbacks
  Add watermark introspection
  Document deferred eventcb behaviour
  Fix a typo
  Try another doxygen tweak
  Small doxygen tweaks
  Allow registering callback for parsing HTTP headers
  Add a variant of evhttp_send_reply_chunk() with a callback on evhttp_write_buffer()
  Avoid redundant invocations of init_extension_functions for IOCP
  regress_http: add tests for evhttp_connection_get_addr()
  http: implement new evhttp_connection_get_addr() api.
  Tweak indentation
  regress_main: logging all if env EVENT_DEBUG_LOGGING_ALL isset
  add a http default content type option
  Fix another arc4random_buf-related warning
  Fix a compiler warning when checking for arc4random_buf linker breakage.
  rpcgen: Generate regress.gen.[c,h] in build rather than src dir
  Avoid racy bufferevent activation
  Fix reinit of fds with EV_WRITE but not EV_READ.
  Check CLOCK_MONOTONIC_* at runtime if needed.
  Really remove RNG seeds from the stack
  Oops; revert testing code
  Avoid other RNG initialization FS reads when urandom file is specified
  Finish a sentence
  sample: drop uri_root from base_url in http-server.
  Add an assertion for another of the complaints from coverity. See 1b065d07df196
  test_evutil_rtrim: add another missing check.
  Finalize tests: add a missing check
  DNS tests: add a missing check
  Fix some crash-on-fail cases in DNS regression tests
  Add missing check to test_evbuffer_file_segment_add_cleanup_cb
  Fix a logic error in test_evbuffer_freeze
  Fix a (failure-only) null dereference in the unit tests
  Use void casts to suppress some "unchecked return value" warns
  sample/le-proxy: Fail more gracefully if opening listener fails
  Fix an unlikely but possible error case for http connections
  Move event_debug_note_teardown_ before mm_free.
  Add some assertions to please coverity.
  Fix compilation
  Add evutil_secure_rng_set_urandom_device_file
  Remove an unreachable return statement in minheap-internal.h
  Avoid leaking segment mappings when offset is not a page multiple
  Add checks for evhttp_connection_get_server() in unit tests.
  Add evhttp_connection_get_server().
  Add Maxime Henrion to README
  libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer)
  Pass and return const for bufferevent_get_token_bucket_cfg
  Add function to fetch underlying ratelimit cfg
  We should return after arc4random_buf()
  Don't use return since return type is void and build error occurs using clang
  Added event_base_get_num_events()
  Document that arc4random is not a great cryptographic PRNG.
  When we seed from /proc/sys/kernel/random/uuid, count it as success
  restore the comment
  Fix SEGFAULT after evdns_base_resume if no nameservers installed.
  Actually use the log facility for reporting evdns problems.
  Use windows vsnprintf fixup logic on all windows environments
  Remove a debugging assert that should not have been left in
  Fix locking in bufferevent_get_options_().
  Fix a double close() bug in evhttp when the underlying bufferevent uses BEV_OPT_CLOSE_ON_FREE.
  Avoid redundant syscall if making a socket cloexec twice
  Avoid redundant syscall to make a nonblocking socket nonblocking
  If evsel->del() fails, don't leave the evmap in an inconsistent state.
  Fix dns/leak_resume_send_err test.
  Add tests for evdns_base_resume().
  Fix SEGFAULT after evdns_base_resume if no nameservers installed.
  Whoops. It is gdi.lib, not gdi32.lib. (github issue #61)
  Missed lock acquire/release in event_base_cancel_single_callback_()
  Fix test compilation with nmake: add the gdi.lib dependency
  Checking request nameserver for NULL, before using it.
  Bump version to 2.1.3-alpha-dev
  Add regress_finalize to makefile.nmake
  Set a release date
  Make http/connection_retry off-by-default
  Fix a windows compilation regression
  Fix a bug in fixing a bug in out-of-tree test-dumpevents
  Make regress_finalize work with malloc replacement disabled
  Fix some out-of-tree build bugs
  Incremement version to 2.1.3-alpha
  Add acknowledgements to readme
  Start editing the changelog for 2.1.3-alpha
  Mark the finalize stuff as experiemental in case it needs to change
  Start a changelog for Libevent 2.0.22-stable
  Clarify an important point about event_base_foreach_event()
  Fix a bug in the new main/event_foreach test
  More unit tests for initializing common timeouts.
  A test for event_get_assignment()
  Unit tests for event_base_gettimeofday_cached() and event_base_update_cache_time()
  New tests for event_base_foreach_event()
  New test for active_later->active transition on event_active
  Remove a no-longer-true XXXX comment.
  Make the event_finalize* functions return an error code
  More documentation for finalization feature
  Remove bufferevent_del_generic_timeout_cbs as now unused
  Always run pending finalizers when event_base_free() is called
  Use finalization feature so bufferevents can avoid deadlocks
  Add some verbose notes to bufferevent unit tests
  Implement event_finalize() and related functions to avoid certain deadlocks
  Make all tests pass under EVENT_DEBUG_MODE=1
  Drop extra header http_struct.h from regress_http.c
  Add test for EVREQ_HTTP_REQUEST_CANCEL into http_cancel_test()
  Add new error_cb for actual reporting of HTTP request errors.
  Fix another warning introduced in 0c6ec5d8
  Fix a warning introduced in 0c6ec5d8
  evdns: New flag to make evdns not prevent the event loop from exiting
  event_base_update_cache_time should be a no-op if the loop isn't running
  https-client: code cleanup
  Add a test with an active_later event at event_base_free time.
  Another tweak to https-client.c
  Remove http_struct.h usage in sample/https-client.c
  Add an environment variable (EVENT_DEBUG_MODE) to run unit tests in debug mode
  Do not build strlcpy.c when it will have no code.
  Specify return behavior in header for evbuffer_pullup() in corner case
  Fix a typo in a comment in buffer.h. Spotted by Alt_F4
  build test/test-script.sh on systems with a less-featureful $<
  Make --disable-libevent-regress work again
  POST supported, args supported
  Double-check next timeout when adding events
  Test: decoding just part of string with evhttp_decode_uri_internal()
  Move prototype of evhttp_decode_uri_internal() to http-internal.h
  uri decode: changed the test for the existence of the next character
  uri decode: fix for warning "use of uninitialised value"
  pull in wildcard matching code from cURL
  avoid sign mismatch warning in openssl_hostname_validation.c
  use iSECPartners code to validate hostname in certificate
  use Debian's default root certificate location
  better handling of OpenSSL errors
  https-client was putting newlines at 256-byte boundaries
  use ${OPENSSL_LIBS} instead of -lssl -lcrypto
  Add sample/https-client.c, an example of stacking evhttp as a client on top of bufferevent_ssl.
  test filling up the hash table a bit
  use hashtable instead of linked list to cache winsock errors
  make sure caching works, and we don't leak memory
  use FormatMessage for winsock errors
  a program to print out the error strings for winsock errors
  fix #73 and fix http_connection_fail_test to catch it
  Unit test for event_remove_timer with EV_PERSIST.
  Make event_remove_timer behave correctly with persistent timers
  Avoid using $(top_srcdir) in TESTS.
  Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat
  Avoid using top_srcdir in TESTS-new automakes do not like this
  Rename configure.in to configure.ac to appease newer autoconfs
  Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat
  "buffer" spelling
  remove all exes on "make clean", not just regress.exe
  Fix a locking error in bufferevent_socket_get_dns_error.
  Preliminary changes for Minix3.
  Add regress test ipv6_for_domain.
  Implement EVUTIL_ERR_IS_EAGAIN on windows.
  Fix ipv6 support for http. When URL contain domain, not IP address.
  Fix a mistake in evbuffer_remove() arguments in example http server code
  fix some hinky indentation in evhttp_make_request
  Fix typo : Dispatching instead of Dispaching
  event_base_active_by_fd
  Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5)
  Fix missing AC_PROG_SED on older Autoconfs
  When EWOULDBLOCK is not EAGAIN, treat it as equivalent to it
  Fix harmless clang enum warning
  Fix comment to refer to sample/include.am correctly
  Avoid double-close on getsockname error in evutil_ersatz_socketpair
  Avoid leaking fds on evconnlistener with no callback set
  Fix cut-and-paste err in whatsnew-2.1
  minor documentation typos
  Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled
  Increment version to 2.0.21-stable-dev
  Increment version to 2.1.2-alpha-dev
  Fix a bug when running "make verify" out-of-tree
  Clean up and clarify a little more documentation
  Make the argument to bufferevent_get_priority const
  Avoid defining recommended functions in terms of deprecated ones
  Update "what's new in Libevent 2.1"
  Bump versions to 2.1.2-alpha
  Update changelog for 2.1.2-alpha
  Update ChangeLog-2.0
  Fix a gcc warning in rtrim test
  Fix a warning when building without threading.
  Increment libtool version for 2.0.21 too
  Increment version to 2.0.21-stable
  Changelog for 2.0.21-stable
  Make ssl version check in unit tests work
  avoid valgrind false positive by zeroing epoll_event
  Make bufferevent_set_timeouts(bev, NULL, NULL) have plausible semantics
  Add an event_remove_timer() to remove timer on an event without deleting it
  Fix a couple of compile warnings in the unit tests
  Avoid crash when event_pending() called with no event_base set on event
  Use EVUTIL_SOCKET_ERROR() wrapper to save/restor errno in evhttp_connection_fail_
  add evhttp_request_get_response_code_line
  Move evutil_rtrim_lws_ to evutil.c where it belongs
  Remove internal ws from multiline http headers correctly
  Remove trailing tabs in HTTP headers as well.
  Clean up rtrim implementation
  ignore LWS after field-content in headers
  Use correct openssl libs and includes in pkgconfig file
  remove stray 'x' so print_err will compile when uncommented
  Make rpcgen_wrapper.sh work on systems without a "python2" binary
  Add a unit test in which an event is created with event_base_once() but never fires
  Free dangling event_once objects on event_base_free()
  Warn when openssl version in unit test mismatches compiled version.
  Fix renegotiation test to work around openssl 1.0.1 bug
  Use the same CFLAGS for openssl when building unit tests as with libevent
  preserve errno in evhttp_connection_fail_ for inspection by the callback
  Fix event_dlist definition when sys/queue not included
  Clean up unit test for evbuffer_file_segment_add_cleanup_cb a little
  Add a new callback to get called on evbuffer_file_segment free
  Fix compilation on mingw64 with -DUSE_DEBUG
  Fix a few mingw64 incompatibilities introduced since 2.0
  Fix some warnings found cross-compiling with mingw32
  Compile without warnings on mingw64
  Close IOCP listener socket on free when LEV_OPT_CLOSE_ON_FREE is set
  fix a few trivial documentation typos
  Use python2 rather than python
  Use python2 rather than python
  No need to reserve space if reading is suspended.
  Stop looping in "consider_reading" if reading is suspended.
  Fix typo : events instead of evets
  FIx another memleak on OOM in evdns
  Avoid a memory-leak on OOM in evdns.
  Add missing return value in event_base_foreach_event
  Don't discard SSL read event when timeout and read come close together
  Tweak patch for event_base_foreach_event()
  Expose event_base_foreach_event() as a public API.
  Prevent reference leak of bufferevent if getaddrinfo fails.
  Rename configure.in to configure.ac.
  We now require automake 1.9 or later. Modernize!
  Fix handling of no-python case for nonrecursive make
  Be quiet when making regress.gen.[ch]
  New --quiet option for event_rpcgen.py
  Make quiet build even quieter
  Rename subordinate Makefile.ams to include.am
  Switch to non-recursive makefiles
  Enable silent build rules by default. Override with V=1
  Use newer syntax for autoconf/automake init
  Increment version to 2.0.20-stable-dev
  Update ChangeLog-2.0
  Add a date to the changelog
  Increment version to 2.0.20-stable
  Initial changelog and credits for 2.0.20
  Add missing implementation for event_enable_debug_logging
  Rename event_enable_lock_debuging() to ..._debugging()
  Correctly invoke callbacks when a SSL bufferevent reads some and then blocks.
  Avoid test -e; older shs don't have one.
  Add deferred_cb_skew to list of timing-dependent tests
  Avoid unused-var warning on systems with clock_gettime but without CLOCK_MONOTONIC_COARSE
  Add explicit AC_PROG_SED to configure.in so all autoconfs will expose $(SED)
  Fix an unused variable warning on *BSD.
  Avoid segfault on weird timeout during name lookup.
  Extract common error-handling code in evconnlistener_new_bind
  Avoid double-free on error in evbuffer_add_file. Found by coverity.
  Check return value when using LEV_OPT_DEFERRED_ACCEPT. Found by coverity
  Check more setsockopt return values when binding sockets. Found by coverity
  memset sockaddr_in before using it. Found by coverity.
  Move assignment outside tt_assert in ssl unit tests. Appeases coverity.
  Add checks to various return values in unit tests. Found by coverity
  Avoid possible needless call to writev. Found by coverity.
  Remove unused variable; spotted by coverity
  Fix a shadowed variable in addfile_test_readcb; found by coverity
  Avoid memory leak in test_event_calloc unit test; found by coverity
  Add checks for functions in test-ratelim.c; found by Coverity
  Avoid more crashes/bad calls in unit tests; found by coverity
  Add some missing null checks to unit tests; found by coverity
  Fix resource leaks in the unit tests; found by coverity
  Fix various check-after-dereference issues in unit tests: found by coverity
  Set umask before calling mkstemp in unit tests. Found by coverity
  Fix another possible uninitialized read in dns regression tests. Found by coverity.
  Fix possible uninitialized read in dns regression tests. Found by coverity.
  Remove deadcode in http regression tests. Found by coverity.
  Add process.h include to evutil.c for _getpid
  Fix tinytset_skip to work with new tinytest_set_flag_ signature
  Fix compile error in win32 listener.c
  Fix a memory leak on error in evhttp_uriencode
  Win32: avoid crash when waiting forever on zero fds.
  Additional comments about OPENSSL_DIR variable, prompted by Dave Hart
  attempt to support OpenSSL in Makefile.nmake
  Make load-dependent monotonic timer tests off-by-default
  Avoid (unlikely) overflow in bench_httpclient.c
  Check return value of write() in regress.c
  Make all tests that hit the network disabled by default
  Update to latest tinytest (911b4f0349377)
  Make test_evutil_monotonic a little more tolerant
  Make th_base_lock nonrecursive
  remove a now-unused var in thread_deferred_cb_skew test
  Avoid a resource leak on error in http client benchmark
  Simplify and correct evutil_open_closeonexec_
  Avoid giving a spurious warning when timerfd support is unavailable
  Make event_pending() threadsafe.
  Add GCC annotations so that the vsprintf functions get checked properly
  Make the Makefile.nmake warning slightly less dire
  Add evutil_time.obj to Makefile.nmake
  Fix a couple of memory leaks (found with Valgrind).
  Fix a comment in test-fdleak after 077c7e949.
  Correctly check for arc4random_buf
  check for arc4random_buf at runtime, on OS X
  Make it more clear that NOLOCK means "I promise, no multithreading"
  Add caveat to docs about bufferevent_free() with data in outbuf
  Be more clear that LEV_OPT_DEFERRED_ACCEPT has tricky prereqs
  Remove unnecessary code in configure.in.
  Add an event_base_loopcontinue() to tell libevent to rescan right away
  Restore our priority-inversion-prevention code with deferreds
  Give event_base_process_active a single exit path
  Make event_base_getnpriorities work with old "implicit base" code
  Add a bufferevent_get_priority() function
  New event_get_priority() function to return an event's priority
  Replace more deferred_cb names with event_callback
  Replace deferred_cbs with event_callback-based implementation.
  event_base_assert_ok: check value of event_active_count for correctness
  Add "active later" event_callbacks to supersede deferred
  Remove the unused bits from EVLIST_ALL
  Refactor the callback part of an event into its own event_callback type
  Bump version to 2.0.19-stable-dev
  Increment version to 2.0.19-stable
  Oops; fix the *right* windows compile issue
  Fix win32 build issues: sleep, pid_t
  Start changelog for 2.0.19-stable
  Fix evdns build with threads disabled
  When retransmitting a timed-out DNS request, pick a fresh nameserver.
  Make some evdns.c debug logs more verbose
  dns-example.c can now take a resolv.conf file on the commandline
  Correctly handle running on a system where accept4 doesn't work.
  Work-around a stupid gcov-breaking bug in OSX 10.6
  Fixed potential double-readcb execution with openssl bufferevents.
  If a higher-priority event becomes active, don't continue running events of the current priority.
  Generate event-config.h with a single sed script
  Generate event-config.h with a single sed script
  When PRECISE_TIMERS is set with epoll, use timerfd for microsecond precision
  Improve the monotonic-time unit test: make it check the step size
  Simple unit tests for monotonic timers
  Implement fast/precise monotonic clocks on Windows
  Add EVENT_PRECISE_TIMER environment var for selecting precise-but-slow timer
  Refactor monotonic timer handling into a new type and set of functions; add a gettimeofday-based ratcheting implementation
  Split out time-related prototypes into time-internal.h
  Split out time-related evutil functions into a new evutil_time.c
  Split long lists in Makefile.am into one-item-per-line
  Shave 700 msec off the persistent_timeout_jump test
  If time has jumped so we'd reschedule a periodic event in the past, schedule it for the future instead
  Refactor event_persist_closure: raise and extract some common logic
  remove redundant DNS_ERR_CANCEL check, move comment
  cancel the probe request when the server is freed, and ignore cancelled probe callbacks
  Note that make_base_notifiable should not be necessary
  Implement a GetTickCount-based monotonic timer for Windows
  On Linux, use CLOCK_MONOTONIC_COARSE by default
  EVENT_BASE_FLAG_PRECISE_TIMER indicates we want fine timer precision
  Move use_monotonic and friends into event_base
  Work-around a stupid gcov-breaking bug in OSX 10.6
  Replace pipe-based notification with EVFILT_USER where possible
  Do not track use_monotonic field when is no monotonic clock
  Use mach_absolute_time() for monotonic clock support on OSX.
  Tweak the new evutil_weakrand_() code
  Change evutil_weakrand_() to avoid platform random()
  Simplify test.sh code significantly.
  Increment the version to 2.1.1-alpha-dev
  Backport: provide EVENT_LOG_* names, and deprecate _EVENT_LOG_*
  fix some typos in the 2.1 changelog
  Bump the version to Libevent 2.1.1-alpha
  Fix the website URL in the readme
  Try to finalize changelog situation for 2.1.1-alpha
  Add pending names to the README; add more entries to the changelog
  Include ws2tcpip.h from util.h to get EAI_* definitions.
  Fix some compilation warnings with msvc
  Oops; fix a merge conflict that got committed into event2/event-config.h.  Now msvc builds work again.
  Decrease MAX_REQUESTS in test-fdleak
  Include util-internal.h earlier in test-dumpevents to fix solaris build
  Fix compilation with mm-replacement disabled.
  make event_base_get_running_event build with threads disabled.
  Make check-dumpevents work with out-of-tree builds
  Make check-dumpevents.py actually get included in the tarballs
  Configure with gcc older than 2.95
  Missing ) in bufferevent_ratelim.c comment. Found by rransom
  Add missing ) to changelog; spotted by rransom
  Add a missing name to the readme.
  Increase duration and tolerance on http/connection_retry test
  Fix a compilation error with MSVC 2005 due to use of mode_t
  Temporarily disable event_queue_reinsert_timeout
  Make libevent_global_shutdown() idempotent
  Updates for whatsnew-2.1.txt
  Require at least Python 2.4 for check-dumpevents.py.
  Fix a typo in the bufferevent documentation
  Test more bufferevent_ratelim features
  Add event_base_get_running_event() to get the event* whose cb we are in
  More coverage on reinsert_timeout tests
  Make test-dumpevents build on Linux
  Fix a nasty bug in event_queue_reinsert_timeout()
  Add a unit test for event_base_dump_events()
  event_base_dump_events: Report active events tersely, and note internal events
  Fix compilation of evutil_rand on osx
  Fix typo in whatsnew-2.1.txt
  Use libevent_global_shutdown() to clean up in unit tests.
  Distribute whatsnew-2.1.txt.
  Fix another bug from rebase of libevent_global_shutdown patch
  Write a first draft of whatsnew-2.1.txt
  Tweak changelog for 2.1 even more
  Add more things to the 2.1 changelog
  Add an empty changelog section for 2.0.19-stable
  Bump version to 2.0.18-stable-dev
  Bump version to 2.0.18-stable
  Add credits to README
  Changelog for libevent 2.0.18-stable
  Add a new libevent_global_shutdown() to free all globals before exiting.
  event-read-fifo: Use EV_PERSIST appropriately
  Rename event-test.c to event-read-fifo.c.
  On Unix, remove event.fifo left by sample/event-test.c.
  Fix up sample/event-test.c to use newer interfaces and make it actually work.
  Now that event_assign() special-cases event_self_cbarg(), event_new() can stop
  Add a test for using event_self_cbarg() with event_assign().
  event_self_cbarg() works with event_assign() for consistency with event_new().
  Properly zero the kevent in kq_setup_kevent()
  Don't do clang version detection when disabling some flags
  Add a regression test for event_self_cbarg().
  Update sample/signal-test.c to use the new event_self_cbarg().
  Add event_self_cbarg() to be used in conjunction with event_new().
  event_rpcgen.py now prints status information to stdout and errors to stderr.
  Add netinet/in.h include to fix test-fdleak on openbsd
  Restore accidentally disabled nanosleep implementation of evutil_usleep.
  Fix doxygen to use new macro conventions
  Clean up lingering _identifiers.
  Apply the naming convention to our EVUTIL_IS* functions
  Have all visible internal function names end with an underscore.
  Fix some problems introduced by automated identifier cleanup script
  Make event_rpcgen.py output conform to indentifier conventions, more
  Fix all identifiers with names beginning with underscore.
  Make the generated event-config.h use correct include guards
  Stop referring to an obsolete include guard in bench_http.h
  Make event_rpcgen.py output conform to indentifier conventions
  Convert include-guard macro convention to avoid reserved identifiers
  Generate event-config.h using the correct macros.
  Convert event-config.h macros to avoid reserved identifiers
  Make event-config.h depend on Makefile.am
  Check for NULL return on win32 mm_calloc, and set ENOMEM.
  Do not use system EAI/AI values if we are not using the system getaddrinfo.
  Replace sole internal user of socklen_t with ev_socklen_t
  Fix evmap to work with HT-backed IO maps again.
  evutil_accept4() should take ev_socklen_t
  test-fdleak: Avoid perror, since it does not capture windows socket errors
  remove debugging prints
  test-fdleak: Call event callbacks event_cb.
  Remove fixed port from test-fdleak, so two instances can run in parallel
  Remove an unsafe programming practice from test-fdleak; add XX comments
  Try and fix compilation and running of test-fdleak on Windows.
  Allow compilation on machines that do not have setrlimit.
  Simply test-fdleak by running server & client sockets in the same event loop.
  Add a new test: test-fdleak which tests for fd leaks by creating many sockets.
  If accept4 is absent, fall back to accept.
  Avoid leaking fd in evutil_socket() by Linux.
  Remove the last vestiges of _EVENT_USE_EVENTLIST
  Add doxygen for event_base_dump_events
  Refactor the functions that run over every event.
  Fix an "unused return value" warning on write() in signal handler
  Start work on a 2.1 changelog and whats-new
  Add another caveat to the TCP_DEFER_ACCEPT documentation
  Support TCP_DEFER_ACCEPT sockopts for listeners
  Stop crashing in evdns when nameserver probes give a weird error
  Changed OPENSSL_LDFLAGS to OPENSSL_LIBADD
  Added OPENSSL_LDFLAGS env variable which is appended to SSL checks.
  If open(O_CLOEXEC) fails, fall back to fcntl(CLOEXEC)
  Fix up usage of reserved identifiers in ht-internal.h
  Port changes from Tor for ht-internal.h
  Invert the sense and the name of HT_CACHE_HASH_VALUES
  Synchronize with upstream tinytest
  Merge in a punctuation fix from upstream tinytest
  Move libevent 1.x headers to include/, to put all public headers in one place.
  Tweak the evutil_open_closeonexec patch to work on windows, old unixes.
  Make uses of open() close-on-exec safe by introducing evutil_open_closeonexec.
  Add a bufferevent_getcb() to find a bufferevent's current callbacks
  Also make win32select.c conditional for IDE users
  Add an empty section to the changelog for 2.0.18-stable
  Correct a name in the credits. oops
  Bump version to 2.0.17-stable-dev
  Update the credits in the readme
  Finalize the changelog
  Fix compilation on osx
  Update copyright notices to 2012
  Bump version to 2.0.17-stable
  Prefer epoll_create1 on Linuxen that have it
  Save some syscalls when constructing a socket for a bufferevent
  Save some syscalls when creating evdns sockets
  Save syscalls when constructing listener sockets for evhttp
  Use pipes for telling signals to main thread when possible
  Use a wrapper function to create the notification pipe/socketpair/eventfd
  The LEV_OPT_CLOSE_ON_EXEC flag now applies to accepted listener sockets too
  Minimize syscalls during socket creation in listener.c
  Infrastructure for using faster/fewer syscalls when creating sockets
  In the kqueue backend, do not report EBADF as an EV_READ
  Avoid crash when freeing event_iocp and using event_set_mem_functions
  Put #ifdef around some files to support alternate build systems.
  Bring the changelog up to date
  Loop on filtering SSL reads until we are blocked or exhausted.
  Replace more C99/C++ comments with oldschool /* */ comments
  Use C-style comments in C source files (for compatibility with compilers such as xlc on AIX).
  evdns: fix a bug in circular-queue implementation
  Fix a compile warning in event_reinit
  Remove the eventqueue list and the ev_next pointers.
  Make test-changelist faster
  Check changelist as part of checking representational integrity
  Restore fast-path event_reinit() for slower backends
  Make event_reinit() more robust and maintainable
  Better workaround for Linux 3.2 edge-triggered epoll bug
  Do a memberwise comparison of threading function tables
  When including an -internal.h header outside the main tree, do so early
  Allow more slop in deferred_cb_skew test; freebsd needs it
  Remove a couple of now-unused variables
  Make event_base integrity check work on windows
  Start writing a changelog for 2.0.17-stable
  Use test_timeval_diff_eq more consistently
  Make regression tests run over 3x faster.
  New evhttp function to adjust initial retry timeout
  Reduce the timeout in the main/fork test.
  Add an (internal) usleep function for use by unit tests
  Oops:remove an accidentally committed "sleep(1)" in a unit test
  Workaround in the unit tests for an apparent epoll bug in Linux 3.2
  Fix a fd leak in event_reinit()
  Fix a list corruption bug when using event_reinit() with signals present
  Check event_base correctness at end of each unit test
  Fix compilation of windows evutil_check_ifaddrs
  Add function to check referential integrity of an event_base
  Force strict validation of HTTP version in response.
  Suppress a gcc warning from ignoring fwrite return in http-sample.c
  Fix a race condition in the dns/bufferevent_connect_hostname test.
  Make evconnlistener work around bug in older Linux when getting nmapped
  Remove bogus casts of socket to int before calling ev_callback
  Backport evhttp_connection_get_bufferevent to Libevent 2.0
  Slightly clarify evbuffer_peek documentation
  Fix behavior of evbuffer_peek(buf,-1,NULL,NULL,0)
  Remove some accidentally-committed debugging code
  whitespace fixes
  check for sysctl before we use it
  Split up extra-long AC_CHECK_FUNCS/HEADERS lines in configure.in
  Use getifaddrs to detect our interfaces if possible
  Changed use of refcounts to make sure referenced chains are freed in all cases.
  Add evbuffer_copyout_from to copy data from the middle of a buffer
  Bypass event_add when using event_base_once() for a 0-sec timeout
  Fix a silly compilation error with the sun compiler
  Be absolutely sure to clear pncalls before leaving event_signal_closure
  fix windows compilation issues with new file segment code
  Fix two issues in the allow_dirty_shutdown code.
  Tweak allow_dirty_shutdown documentation
  Allow users to set allow_dirty_shutdown
  bev_ssl: Be more specific in event callbacks. evhttp in particular gets confused without at least one of BEV_EVENT_{READING|WRITING}.
  Increment version to 2.0.16-stable-dev
  Increment version to 2.0.16-stable
  Revise 2.0.16-stable changelog
  add comment to new consider_reading code
  Avoid spinning on OpenSSL reads
  Move SSL rate-limit enforcement into bytes_to_read()
  Refactor amount-to-read calculations in buffervent_ssl consider_reading()
  Revert "Avoid potential SSL read spinlocks"
  Revert "openssl bufferevent has the same issue with writing as prior commit."
  Add new entries to changelog, new credits to README
  Fix DNS memleak checks when running with malloc-replacement/debugging disabled
  Don't try to make notifiable event_base when no threading fns are configured
  Warn when unable to construct base because of failing make_base_notifiable
  openssl bufferevent has the same issue with writing as prior commit.
  Avoid potential SSL read spinlocks
  unit tests for EVBUFFER_EOL_NUL
  New EVBUFFER_EOL_NUL to read NUL-terminated strings from an evbuffer
  Tweaks, fixups, and comments on evbuffer_add_iovec
  Added evbuffer_add_iovec and unit tests.
  Improve win32 behavior of dns-sample.c codex
  Fix typo in whatsnew-2.0.txt
  Use the free-trailing-chains function in evbuffer_insert_chain too
  Fix an evbuffer crash in evbuffer_remove_buffer()
  improve test to remove at least one buffer from src
  unit test for remove_buffer bug
  Fix compile warning from saying event2/*.h inside a comment
  epoll: close fd on alloc fail at initialization
  evhttp: Add evhttp_foreach_bound_socket.
  Update copyright dates to 2011.
  New event_base_update_cache_time() to set cached_tv to current time
  Add argument checks to some memory functions in `event.c'.
  Add note about evhttp_send_reply_end to its doxygen
  More detailed message in case of libevent self-debugging failure.
  Style and comment tweaks for dns/leak* tests
  Test for commit aff6ba1
  Empty DNS reply with OK status is another way to say NODATA.
  Tests for 94fba5b and f72e8f6
  fixed typo
  added comments to describe refcounting of multicase chains
  Bump version to 2.0.15-stable-dev
  Credit a patch from a one-named user
  Increment version to 2.0.15-stable
  Add changelog for 2.0.15-stable
  bufferevent: Add functions to set/get max_single_read/write values.
  Make evbase_priority_init() and evbase_get_npriorities() threadsafe
  Add event_base_get_npriorities() function.
  refer to non-deprecated evdns functions in comments
  Make evbuffer_file_segment_types adaptable
  New EVLOOP_NO_EXIT_ON_EMPTY option to keep looping even when no events are pending
  Allow evconnlistener to be created in disabled state.
  Fix some "value never used" warnings with gcc 4.6.1
  Make write-checking fixes use tt_fail_perror
  Fixed compiler warnings for unchecked read/write calls.
  Prefer mmap to sendfile unless a DRAINS_TO_FD flag is set. Allows add_file to work with SSL.
  Make evbuffer callbacks get the right n_added value after evbuffer_add
  Use _SOURCES, not _sources, in sample/Makefile.am
  le-proxy and regress depend on openssl directly
  Add DNS_ERR_NODATA error code to handle empty replies.
  Fix docstring in dns.h
  Build with large-file support on platforms where it matters
  Clarify event_enable_debug_logging a little
  Remove calls to deprecated bufferevent functions from evhttp.c
  Add evhttp callback for bufferevent creation; this lets evhttp support SSL.
  Implement --enable-gcc-hardening configure option
  Make gcc warnings on by default, and --enable-gcc-warnings only add -Werror
  When a signal callback is activated to run multiple times, allow event_base_loopbreak to work even before they all have run.
  DNS: add ttl for negative answers using RFC 2308 idea.
  Make --enable-verbose-debug option match its help text
  Increment version to 2.0.14-stable-dev
  Credit new contributors for 2.0.14-stable
  Pick a release date for the changelog
  Bump version to 2.0.14-stable
  Use SIG_IGN instead of a do-nothing handler for signal events with kqueue
  Fix OSX build: $(OPENSSL_INCS) needs to be after $(AM_CPPFLAGS).
  clear read watermark on underlying bufferevent when creating filtering bev to fix potentially failing fragmented ssl handshakes
  Checkpoint changelog entries for 2.0.14-stable
  Correctly terminate IO on an async bufferevent on bufferevent_free
  Have test-ratelim.c support IOCP
  Make IOCP rate-limiting group support stricter and less surprising.
  Support negative arguments to _bufferevent_decrement_(read/write)_buckets()
  We need AM_CPPFLAGS when compiling bufferevent_openssl.c
  Use pkg-config (if available) to handle OpenSSL.
  Provide the autoconf m4 macros for the new OpenSSL via pkg-config stuff.
  Cleanup on 7c11e51e1ab: fix strtol usage
  Cleanup on 7c11e51e1ab: restore c90 declaration compliance
  Clean up some problems identified by Coverity.
  Make rate limiting work with common_timeout logic
  Make overlapped reads result in evbuffer callbacks getting invoked
  IOCP: don't launch reads or writes on an unconnected socket
  Try to fix 'make distcheck' errors when building out-of-tree
  Make the priority inversion code use gettime(), not evutil_gettimeofday()
  Make max_dispatch_interval able to apply only to low-priority events
  Optimization in event_process_active(): ignore maxcb & endtime for highest priority events.
  Make sure max_dispatch_callbacks is never negative
  Add event_config function to limit time/callbacks between calls to dispatch
  Solaris sendfile: correctly detect amount of data sent
  Fix request_finished memory leak with debugging turned on.
  Fix evsig_dealloc memory leak with debugging turned on.
  Another docstring fix.
  more event dbg updates
  Fix handling of group rate limits under 64 bytes of burst
  added timeout debug logs to include event ptr.
  Added usec debug in another area for debug
  Debug addition for printing usec on TIMEOUT debugging.
  Ignore deprecation warnings on OS X
  prevent nested multicast references, reworked locking
  support adding buffers to other buffers non-destructively
  Allow OS-neutral builds for platforms where some versions have arc4random_buf
  changed to --enable-verbose-debug
  Propagate errors on the underlying bufferevent to the user.
  Added --enable-event-debugging in configure
  Add missing break to evhttp_parse_request_line
  Fix typo in event_compat.h comments.
  Bump version to 2.0.13-stable-dev
  Bump version to 2.0.13-dev
  acks and changelog for 2.0.13-stable
  Give Makefile.am echo a non-null argument. msys likes this
  Fix a warning in evutil_rand when building with threads disabled
  Use AM_CPPFLAGS in sample/Makefile.am, not AM_CFLAGS
  Add doxygen to .gitignore
  Fix up test_evutil_snprintf
  Fix a test-call accidentally in the last commit
  More abstraction in test.sh
  Update Doxyfile to produce more useful output
  Revise the event/evbuffer/bufferevent doxygen for clarity and accuracy
  Use "unlimited select" on OSX so that we can have more than FD_SETSIZE fds
  Fix select.c compilation on systems with no NFDBITS
  Speed up invoke_callbacks on evbuffers when there are no callbacks
  Fix bug in SSL bufferevents backed by a bev with a write high-watermarks
  Fix a few warnings on OpenBSD
  Fix AIX build issue with TAILQ_FOREACH definition
  Don't install event_rpcgen.py when --disable-libevent-install is used
  Set the special "not found" evbuffer_ptr consistantly.
  Don't break when building tests from git without python installed
  Improve evbuffer_ptr documentation
  Tweaks to return types with end-of-buf ptrs
  Allow evbuffer_ptr to point to position 0 in an empty evbuffer
  Allow evbuffer_ptr_set to yield a point just after the end of the buffer.
  Add failing test for evbuffer_search_range.
  Simplify windows commandname logic in tinytest
  Fix tinytest invocation from windows shell
  Use the correct printf args when formatting size_t
  Check if the `evhttp_new_object' function in `http.c' returns NULL.
  Report kqueue ebadf, epipe, and eperm as EV_READ events
  Replace an assertion for event_base_free(NULL) with a check-and-warn
  Add some missing checks for mm_calloc failures
  Remove a needless branch in evbuffer_drain()
  Fix a bug in the improved EOL_CRLF code
  Fix incorrect results from evbuffer_search_eol(EOL_LF)
  Bump version to 2.0.12-stable-dev
  tweak date on changelog
  Changelog and new credits for 2.0.12-stable
  Bump version to 2.0.12-stable.  Not release just yet
  Fix regress_ssl.c build on openbsd
  Fix windows file segment mappings
  Avoid a segfault when all methods are disabled or broken
  Try to squeeze a little more speed out of EVBUFFER_EOL_CRLF
  cygwin: make it possible to build DLLs
  Roughly 20% speed increase when line-draining a buffer using EVBUFFER_EOL_CRLF
  Fix a fencepost bug in the select backend
  Make the new http_connect_fail_test use a multicast addr, not broadcast
  InitializeCriticalSectionAndSpinCount requires _WIN32_WINNT >= 0x0403.
  Allow base-notification functions to exist without setting an fd
  Reenable main/many_events_slow_add for evport in 2.1
  evport: Remove artificial low limit on max events per getn call
  evport: don't scan more events in ed_pending than needed
  evport: Use portev_user to remember fdinfo struct
  evport: Remove a linear search over recent events when reactivating them
  evport: use evmap_io to track fdinfo status. Should save time and RAM.
  Fix a couple of signed/unsigned warnings in http.c
  Disable main/many_events_slow_add with evport backend
  Fix compilation.
  updated EV_S(s)IZE definitions
  Added overflow checks in evhttp_read_body and evhttp_get_body
  Added several checks for under/overflow conditions in evhttp_handle_chunked_read
  Always use evutil_snprintf, even if OS provides it
  Do not define WIN32 in Makefile.nmake
  In configure, test for _WIN32 not WIN32.
  Use "_WIN32", not WIN32: it's standard and we don't need to fake it
  Use evutil_gettimeofday instead of relying on the system gettimeofday.
  Fix winsock2.h #include issues with MSVC
  Make sure TINYTEST_LOCAL is defined when building tinytest.c
  unistd.h and sys/time.h might not exist.
  MSVC does not provide S_ISDIR, so provide it manually.
  Bring in the compile script from automake, if needed.
  Make the tests build when OpenSSL is not available.
  Link with -lshell32 and -ladvapi32 on Win32.
  Fix new warnings from GCC 4.6
  Prevent size_t overflow in evhttp_htmlescape.
  Fix a bug that prevented us from configuring IPv6 nameservers.
  Test case for 0848814ac49616
  Fix failing assertion introducd in commit 0d6622e
  Fix compilation with GCC 2, which had no __builtin_expect
  Fix a compile warning with zlib 1.2.4 and 1.2.5
  Correctly detect openssl on windows
  Performance tweak to evhttp_parse_request_line.
  Move the win32 detection in configure.in
  Use OPENSSL_LIBS in Makefile.am
  Libtool brings in the dependencies of libevent_openssl.la automatically
  ...
4cae3ae
@azat azat added a commit to azat/libevent-deb that referenced this issue Sep 6, 2015
@azat azat Merge remote-tracking branch 'main/master' into 2.1.5-release-2
* main/master: (3014 commits)
  test: run regress with EVENT_DEBUG_MODE=1 and without
  test/regress: fix bufferevent_pair_release_lock with EVENT_DEBUG_MODE
  sample/https-client: add -timeout option
  be_openssl: don't use *_auto() in do_handshake() we can't have fd == -1 there
  be_openssl: don't call set_open_callbacks() if fd == -1
  be_openssl: introduce be_openssl_auto_fd() helper
  be_openssl: introduce set_open_callbacks_auto()
  be_openssl: get rid off hackish "fd_is_set", to fix some corner cases
  test/regress_ssl: check events fd/pending after timeout triggered
  test/regress_ssl: cover case when server didn't up (failed with timeout)
  test/regress_ssl: covert that we can't change fd with underlying
  test/regress_ssl: cover that events (read/write) at finish not pending
  test/regress_ssl: cover fd manipulations
  test/regress_ssl: convert open_ssl_bufevs() to mask
  test/regress_ssl: convert client/server to mask too
  test/regress_ssl: cover "allow_dirty_shutdown"
  test/regress_ssl: convert regress_bufferevent_openssl() to bitmask
  Test against SO_REUSEADDR (along with _WIN32).
  tests/regress_ssl: drop duplicated assert
  Always define missing TAILQ functions from sys/queue.h
  Don't use BSD u_* types.
  Remove BSD-ism: TIMEVAL_TO_TIMESPEC().
  be: include all variations of headers for sockaddr_in6 struct
  http: eliminate warning about "socklen" in evhttp_connection_connect_()
  be: fix sockaddr_in6 type definition for win32
  sample/https-client: don't try to free uninitialized SSL
  sample/https-client: graceful exit with freeing memory (to make valgrind happy)
  https-client: correctly handle URLs with no path (like "https://host:port")
  sample/http-connect: don't use assert() to make it work with NDEBUG
  test/regress_http: initialize "dns_base" to avoid reading trash
  sample/http-connect: made it compatible with C90
  be_sock: bufferevent_socket_set_conn_address(): assert instead of silent no-op
  http: reuse connected address only with EVHTTP_CON_REUSE_CONNECTED_ADDR
  be_sock: sanity check in bufferevent_socket_set_conn_address()
  be: replace sockaddr_storage with sockaddr_in6 for conn_address
  be: we don't need to use getpeername() we we have conn_address
  be: replace conn_address by full struct instead of pointer
  test/http: cover retrying with saved conn_address by shutting down dns server
  http: use IP address that we got before (if any) during retrying
  bufferevent: move conn_address out from http into bufferevent
  be: make @sa const for bufferevent_socket_connect()
  util: make @sa const for evutil_socket_connect_()
  sample: add HTTP CONNECT tunnelling example using libevent http layer
  http: introduce evhttp_request_free_() helper
  http: introduce evhttp_is_request_connection_close() helper
  Updated gitignore
  Update dns-example.
  Update bench_httpclient.c
  *fix: bench_httpclient to support win32
  Set correct socklen for PF_INET6 sockaddr len
  Debug mode option to error on evthread init AFTER other event calls.
  Update README.md
  Update README.md
  Update README.md
  Update travis config for status updates
  Update README.md
  Use autotools for appveyor until cmake is fixed.
  Commented out a WIN32 threading / timing test for now
  Fix the link for appveyor OpenSSL installer (WIN32)
  Fix garbage value in socketpair util function, stdint?
  expose bufferevent_incref/decref (with fewer modifications)
  Call underlying bev ctrl SET_FD on filtered bufferevents
  Fix potential fd leak in listener_read_cb()
  tab
  fix the return value of event_deferred_cb_schedule_
  Fix mixed declarations and code (forbidden by ISO C90)
  Fix "function declaration isn’t a prototype"
  Forgot to install OpenSSL for appveyor
  Add support for appveyor.com windows CI
  This fixes a bug introduced in 27bd9faf498b91923296cc91643e03ec4055c230
  New function to get address for nameserver.
  changed strtotimeval signature as per #211
  Added cmake-generated files to ignore list.
  be_pair/regress: cover use of shared lock (lock/unlock/free)
  event_free_debug_globals_locks(): disable lock debugging
  evthread: evthreadimpl_disable_lock_debugging_() for libevent_global_shutdown()
  evthread: add evthread_get_{lock,condition}_callbacks() helpers
  be_pair: release shared lock with the latest of bufferevent_pair
  EVBUFFER_PTR_SET -> EVBUFFER_PTR_ADD
  regress_dns: drop hack for event_debug_map_HT_GROW in leak tests
  event: call event_disable_debug_mode() in libevent_global_shutdown()
  ht-internal: don't reset hth_table_length explicitly in name_##HT_CLEAR
  Update changelog
  Fix CVE-2014-6272 in Libevent 2.1
  Increment version to 2.1.5-beta
  work on changelog for 2.1.5-alpah
  Fix CMake shared library build
  Fix warnings when compiling with clang 3.5
  Fix annoying heisenbug in test-time.c
  Fix mixed declarations and code (forbidden by ISO C90)
  Implement new/free for struct evutil_monotonic_timer and export monotonic time functions
  Fix evbuffer_peek() with len==-1 and start_at non-NULL.
  Start on 2.1.5-alpha/beta changelog
  Work on the changelog for 2.0.22
  Fix race caused by event_active
  More evbuffer_peek() test cases
  test/evbuffer_peek: add regress in case we have first buffer greater
  Fix evbuffer_peek() with len==-1 and start_at non-NULL.
  Fix cmake error when the Module path has more than one entry.
  evhttp: Fix failure to send all output data for POST/PUT requests
  be async: avoid double close()
  Prevent duplicate event_del on fd
  evdns: avoid read-after-free in evdns_request_timeout_callback()
  dns-example: allow to set ns from args
  dns-example: convert to getopt()
  Add test for evhttp_connection_free_on_completion
  Implement interface that provides the ability to have an outbound evhttp_connection free itself once all requests have completed
  remove trailing comma from enum
  Provide support for SO_REUSEPORT through LEV_OPT_REUSABLE_PORT
  Fix a typo in a doxygen comment. Reported by 亦得.
  http: reset connection before installing retry timer (fix http retries handling)
  evdns: fail ns after we are failing/retrasmitting request
  evdns: add retry/reissue tests for EVDNS_BASE_DISABLE_WHEN_INACTIVE
  evdns: fix EVDNS_BASE_DISABLE_WHEN_INACTIVE in case retransmit/retry
  Fix compilation for older OpenSSL versions.
  bufferevent_openssl: reset fd_is_set when setfd with -1 is called
  https-client: add -retries argument, for connection retries
  [Bugfix] fix bufferevent setwatermark suspend_read
  Fix several memory leaks in the unit tests.
  Fix for a677b72bd6d9d378daf9775966aa8ca574e26e67
  Make a buffer larger in the tests to avoid a scary evbuffer_copyout_from()
  Use a more precise calculation for max in time-ratelim.c
  Use evutil_weakrand() in unit tests.
  Fix a c90 warning
  Fix a dead-code warning in unit tests. CID 1193548
  Fix a use-after-free in unit tests. CID 752027
  Fix use-after-free error in EV_CLOSURE_EVENT callback
  regress_buffer: fix 'memcmp' compare size
  use correct tt macro for pointer compare
  make bufferevent_getwatermark api more robust
  [Bugfix] fix grammer error
  updates in cmake build
  Correctly handle allocation failures in evdns_getaddrinfo
  Consistently check for failure from evbuffer_pullup()
  Use FindClose for handle from FindFirstFile in http-server.c
  Change return type of evutil_load_windows_system_library_ to HMODULE
  Fix issue #127, double free for filterevents that use BEV_OPT_CLOSE_ON_FREE
  Add a few files created by "make verify" to .gitignore.
  test/regress: add simplestsignal: to track reorder bugs separately
  add a --disable-samples configure flag
  ignore config.cache/test-driver files
  Handle ENOTCAPABLE from FreeBSD - this is returned if an event in the changelist is for an FD that has been closed.
  Make http-server.c output into good html5
  Update to a more recent tinytest_macros.
  ignore one more test binary
  regress dns: drop alarm() (since windows don't have it)
  evdns: we don't need to add retry timer in transmit_to it will be done on fail
  evdns: add regress test for flag EVDNS_BASE_DISABLE_WHEN_INACTIVE without ns
  evdns: add regress for EVDNS_BASE_DISABLE_WHEN_INACTIVE base flag
  evdns: disable probing with EVDNS_BASE_DISABLE_WHEN_INACTIVE
  tree.h: drop duplicated content of tree.h
  test/http: add regress test for set family to AF_INET6
  test: add regress for evhttp_connection_set_family() with AF_INET and AF_UNSPEC
  test: add family argument for http_connection_test_()
  Fix a crash in evdns related to shutting down evdns
  Add missing headerfile for cmake
  regress_dns: fix leaks in getaddrinfo_async{,_cancel_stress} tests
  Fix a crash in evdns related to shutting down evdns
  Increment version to 2.1.4-alpha-dev
  Update release date in changelog
  Don't truncate hosts file path on Windows.
  Load hosts file on Windows.
  Add evhttp_connection_set_family() to set addrinfo->family for DNS requests
  Fixup make install for cmake projects
  Renamed sin to saddr due to name conflict
  Correctly skip ipv6 http test on systems without ipv6
  Remove integer-overflow unit tests
  evtag: detect tags over 32-bits earlier
  Catch over-large port numbers early in http
  Fix ubsan warnings when parsing ipv4/ipv6 addrs
  Fix a use-after-free error on EV_CLOSURE_EVENT_FINALIZE callbacks
  Fix an illegal read error in the evbuffer_add_reference tests
  Add new APIs to whatsnew-2.1
  Increment version to 2.1.4-alpha
  Bring changelog up to date for 2.1.4-alpha
  Avoid double-close paths in http tests
  Add missing include to regress_finalize.h
  Skip http/ipv6_for_domain test when we have no ipv6 support
  Add an include to evrpc-internal to fix openbsd compilation warning
  Heap-allocate zlib data structure in regress_zlib tests
  Fix consts in WIN32-Code/getopt*.[ch]
  Fix duplicate paragraph in evbuffer_ptr documentation
  Initialize async bufferevent timeout CBs unconditionally
  add a cast to https-client.c
  Export event_extra not event_extras.
  Update to the latest version of tinytest
  Fix 'make distcheck' by adding regress.gen.[ch] to DISTCLEANFILES
  Move assert(ev) to before we use ev in EV_CLOSURE_EVENT_FINALIZE case
  Add -Qunused-arguments for clang on macos
  Add option to build shared library
  Do not offer EV_FEATURE_EARLY_CLOSE if we have no EPOLLRDHUP
  Stop checking for inet_aton; we don't use it.
  Rename event_extras to event_extra
  BUGFIX: Fix compilation on systems with EPOLLRDHUP undefined.
  Add cmake-related files to .gitignore
  Added -Qunused-arguments for clang on macosx
  bufferevent_pair: don't call downcast(NULL)
  Tweaked callbacks to prevent race condition (https://github.com/libevent/libevent/issues/104)
  Tweaked callbacks to prevent race condition (https://github.com/libevent/libevent/issues/104)
  Added a Travis-CI configuration file.
  Check does arch have the epoll_create and __NR_epoll_wait syscalls.
  Check for OSX when checking for clang.
  Guard against EVENT_NOWIN32 being set during testing.
  Fix https-client compilation on Windows.
  CMake: Get rid of python not found warning when regress tests turned off.
  Fix CMake compile when OpenSSL is disabled.
  Split epoll lookup table into a separate header file
  Expand EV_CLOSED documentation a bit
  Disclaimerize cmake a little in the README
  Fix broken autotools build.
  Fix a c90 warning
  Check if we're on OSX before disabling deprecation in le-proxy
  Change all uses of WIN32 to _WIN32
  Fix include bug.
  Implemented EV_CLOSED event for epoll backend (EPOLLRDHUP).
  Forgotten headers for old nmake project compatability.
  Clean up the README some.
  Update README with CMake build instructions.
  Rename README to README.md and use markdown to format.
  Fix so that old nmake project still builds.
  Set USE_DEBUG=1 on EVENT__ENABLE_VERBOSE_DEBUG
  Some work on making it possible to simply do add_subdirectory() on the project.
  Fix typo
  Add CMake config and install targets.
  Fix even more coverity warnings.
  Fix a couple of compilation warnings in regress_http.c
  Remove spurious checks in evrpc.c error cases (coverity)
  Whoops; fix compilation in bench.c
  Fix coverity warnings in benchmark tools.
  Fix a pile of coverity warnings in the unit tests
  Update unit test to make sure that the callback happens after the output data is written
  evhttp_request_set_on_complete_cb to be more specific about what the function actually does and usage
  Provide on request complete callback facility
  Added unit test for max event counts
  Fixed bug using wrong variable in max event compare
  Add access to max event count stats
  Remove unneeded declaration in bufferevent-internal.h
  Fix needless bufferevent includes in evdns.c
  Fix a couple of "#ifdef WIN32" instances
  Sample HTTPS Client: Set hostname for SNI extension (by f69m)
  fix for ServFail from RIPE Atlas release
  Small tweaks to https-client.c
  Minor optimizations on bufferevent_trigger options
  Make bufferevent_trigger_nolock_() inline
  Unit tests for active_by_fd; unsupport active_by_fd(TIMEOUT)
  Add event_base_active_by_signal by analogy
  Sanity-check arguments to event_base_active_by_fd()
  Refactor evmap_{io,signal}_active_() to tolerate bad inputs
  Typo fixes from Linus Nordberg
  Typo fixes from Linus Nordberg
  Added EVENT__ENABLE_GCC_WARNINGS, turns all warnings into errors.
  Only look for ZLib when it is used (if tests are included).
  Fix the "make verify" target on NetBSD
  Add a "make verify_coverage" target generation coverage info.
  Get rid of unknown pragma warnings.
  Minimum required python version is 2.4.
  Change the BSD license from 4 to 3-clause.
  Added a test for testing if kqueue works with pipes.
  Fix kqueue support.
  Get rid of deprecation warnings for OpenSSL on OSX 10.7+
  Fix the make "verify" target on Windows.
  Clarify event_base_loop exit conditions
  Added a "make verify" target.
  Only test the event backends available on the system.
  Don't segfault on no found event backend.
  Fix bench_cascade program on Windows.
  Only include WIN32 getopt where it is used.
  Add copyright and licensing files for CMake modules.
  Use evutil_closesocket instead.
  Added some GCC specific options.
  Link libm on unix platforms.
  Generate a dummy evconfig-private.h so things build properly.
  More work on adding tests to CMake project
  Add all tests and benchmarks to CMake project.
  Initial CMake commit.
  Fix non-C89 variable declaration.
  Fix non-C89 variable declaration.
  Rename flush_outdated_host_addresses to clear_host_addresses
  bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated addresses
  bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated adresses
  Clarifications in response to merge req. comments
  start writing a changelog for 2.1.4-(beta?)
  update the 2.0 changelog
  Add an option to trigger bufferevent event callbacks
  Add an option to trigger bufferevent I/O callbacks
  Add watermark introspection
  Document deferred eventcb behaviour
  Fix a typo
  Try another doxygen tweak
  Small doxygen tweaks
  Allow registering callback for parsing HTTP headers
  Add a variant of evhttp_send_reply_chunk() with a callback on evhttp_write_buffer()
  Avoid redundant invocations of init_extension_functions for IOCP
  regress_http: add tests for evhttp_connection_get_addr()
  http: implement new evhttp_connection_get_addr() api.
  Tweak indentation
  regress_main: logging all if env EVENT_DEBUG_LOGGING_ALL isset
  add a http default content type option
  Fix another arc4random_buf-related warning
  Fix a compiler warning when checking for arc4random_buf linker breakage.
  rpcgen: Generate regress.gen.[c,h] in build rather than src dir
  Avoid racy bufferevent activation
  Fix reinit of fds with EV_WRITE but not EV_READ.
  Check CLOCK_MONOTONIC_* at runtime if needed.
  Really remove RNG seeds from the stack
  Oops; revert testing code
  Avoid other RNG initialization FS reads when urandom file is specified
  Finish a sentence
  sample: drop uri_root from base_url in http-server.
  Add an assertion for another of the complaints from coverity. See 1b065d07df196
  test_evutil_rtrim: add another missing check.
  Finalize tests: add a missing check
  DNS tests: add a missing check
  Fix some crash-on-fail cases in DNS regression tests
  Add missing check to test_evbuffer_file_segment_add_cleanup_cb
  Fix a logic error in test_evbuffer_freeze
  Fix a (failure-only) null dereference in the unit tests
  Use void casts to suppress some "unchecked return value" warns
  sample/le-proxy: Fail more gracefully if opening listener fails
  Fix an unlikely but possible error case for http connections
  Move event_debug_note_teardown_ before mm_free.
  Add some assertions to please coverity.
  Fix compilation
  Add evutil_secure_rng_set_urandom_device_file
  Remove an unreachable return statement in minheap-internal.h
  Avoid leaking segment mappings when offset is not a page multiple
  Add checks for evhttp_connection_get_server() in unit tests.
  Add evhttp_connection_get_server().
  Add Maxime Henrion to README
  libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer)
  Pass and return const for bufferevent_get_token_bucket_cfg
  Add function to fetch underlying ratelimit cfg
  We should return after arc4random_buf()
  Don't use return since return type is void and build error occurs using clang
  Added event_base_get_num_events()
  Document that arc4random is not a great cryptographic PRNG.
  When we seed from /proc/sys/kernel/random/uuid, count it as success
  restore the comment
  Fix SEGFAULT after evdns_base_resume if no nameservers installed.
  Actually use the log facility for reporting evdns problems.
  Use windows vsnprintf fixup logic on all windows environments
  Remove a debugging assert that should not have been left in
  Fix locking in bufferevent_get_options_().
  Fix a double close() bug in evhttp when the underlying bufferevent uses BEV_OPT_CLOSE_ON_FREE.
  Avoid redundant syscall if making a socket cloexec twice
  Avoid redundant syscall to make a nonblocking socket nonblocking
  If evsel->del() fails, don't leave the evmap in an inconsistent state.
  Fix dns/leak_resume_send_err test.
  Add tests for evdns_base_resume().
  Fix SEGFAULT after evdns_base_resume if no nameservers installed.
  Whoops. It is gdi.lib, not gdi32.lib. (github issue #61)
  Missed lock acquire/release in event_base_cancel_single_callback_()
  Fix test compilation with nmake: add the gdi.lib dependency
  Checking request nameserver for NULL, before using it.
  Bump version to 2.1.3-alpha-dev
  Add regress_finalize to makefile.nmake
  Set a release date
  Make http/connection_retry off-by-default
  Fix a windows compilation regression
  Fix a bug in fixing a bug in out-of-tree test-dumpevents
  Make regress_finalize work with malloc replacement disabled
  Fix some out-of-tree build bugs
  Incremement version to 2.1.3-alpha
  Add acknowledgements to readme
  Start editing the changelog for 2.1.3-alpha
  Mark the finalize stuff as experiemental in case it needs to change
  Start a changelog for Libevent 2.0.22-stable
  Clarify an important point about event_base_foreach_event()
  Fix a bug in the new main/event_foreach test
  More unit tests for initializing common timeouts.
  A test for event_get_assignment()
  Unit tests for event_base_gettimeofday_cached() and event_base_update_cache_time()
  New tests for event_base_foreach_event()
  New test for active_later->active transition on event_active
  Remove a no-longer-true XXXX comment.
  Make the event_finalize* functions return an error code
  More documentation for finalization feature
  Remove bufferevent_del_generic_timeout_cbs as now unused
  Always run pending finalizers when event_base_free() is called
  Use finalization feature so bufferevents can avoid deadlocks
  Add some verbose notes to bufferevent unit tests
  Implement event_finalize() and related functions to avoid certain deadlocks
  Make all tests pass under EVENT_DEBUG_MODE=1
  Drop extra header http_struct.h from regress_http.c
  Add test for EVREQ_HTTP_REQUEST_CANCEL into http_cancel_test()
  Add new error_cb for actual reporting of HTTP request errors.
  Fix another warning introduced in 0c6ec5d8
  Fix a warning introduced in 0c6ec5d8
  evdns: New flag to make evdns not prevent the event loop from exiting
  event_base_update_cache_time should be a no-op if the loop isn't running
  https-client: code cleanup
  Add a test with an active_later event at event_base_free time.
  Another tweak to https-client.c
  Remove http_struct.h usage in sample/https-client.c
  Add an environment variable (EVENT_DEBUG_MODE) to run unit tests in debug mode
  Do not build strlcpy.c when it will have no code.
  Specify return behavior in header for evbuffer_pullup() in corner case
  Fix a typo in a comment in buffer.h. Spotted by Alt_F4
  build test/test-script.sh on systems with a less-featureful $<
  Make --disable-libevent-regress work again
  POST supported, args supported
  Double-check next timeout when adding events
  Test: decoding just part of string with evhttp_decode_uri_internal()
  Move prototype of evhttp_decode_uri_internal() to http-internal.h
  uri decode: changed the test for the existence of the next character
  uri decode: fix for warning "use of uninitialised value"
  pull in wildcard matching code from cURL
  avoid sign mismatch warning in openssl_hostname_validation.c
  use iSECPartners code to validate hostname in certificate
  use Debian's default root certificate location
  better handling of OpenSSL errors
  https-client was putting newlines at 256-byte boundaries
  use ${OPENSSL_LIBS} instead of -lssl -lcrypto
  Add sample/https-client.c, an example of stacking evhttp as a client on top of bufferevent_ssl.
  test filling up the hash table a bit
  use hashtable instead of linked list to cache winsock errors
  make sure caching works, and we don't leak memory
  use FormatMessage for winsock errors
  a program to print out the error strings for winsock errors
  fix #73 and fix http_connection_fail_test to catch it
  Unit test for event_remove_timer with EV_PERSIST.
  Make event_remove_timer behave correctly with persistent timers
  Avoid using $(top_srcdir) in TESTS.
  Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat
  Avoid using top_srcdir in TESTS-new automakes do not like this
  Rename configure.in to configure.ac to appease newer autoconfs
  Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat
  "buffer" spelling
  remove all exes on "make clean", not just regress.exe
  Fix a locking error in bufferevent_socket_get_dns_error.
  Preliminary changes for Minix3.
  Add regress test ipv6_for_domain.
  Implement EVUTIL_ERR_IS_EAGAIN on windows.
  Fix ipv6 support for http. When URL contain domain, not IP address.
  Fix a mistake in evbuffer_remove() arguments in example http server code
  fix some hinky indentation in evhttp_make_request
  Fix typo : Dispatching instead of Dispaching
  event_base_active_by_fd
  Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5)
  Fix missing AC_PROG_SED on older Autoconfs
  When EWOULDBLOCK is not EAGAIN, treat it as equivalent to it
  Fix harmless clang enum warning
  Fix comment to refer to sample/include.am correctly
  Avoid double-close on getsockname error in evutil_ersatz_socketpair
  Avoid leaking fds on evconnlistener with no callback set
  Fix cut-and-paste err in whatsnew-2.1
  minor documentation typos
  Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled
  Increment version to 2.0.21-stable-dev
  Increment version to 2.1.2-alpha-dev
  Fix a bug when running "make verify" out-of-tree
  Clean up and clarify a little more documentation
  Make the argument to bufferevent_get_priority const
  Avoid defining recommended functions in terms of deprecated ones
  Update "what's new in Libevent 2.1"
  Bump versions to 2.1.2-alpha
  Update changelog for 2.1.2-alpha
  Update ChangeLog-2.0
  Fix a gcc warning in rtrim test
  Fix a warning when building without threading.
  Increment libtool version for 2.0.21 too
  Increment version to 2.0.21-stable
  Changelog for 2.0.21-stable
  Make ssl version check in unit tests work
  avoid valgrind false positive by zeroing epoll_event
  Make bufferevent_set_timeouts(bev, NULL, NULL) have plausible semantics
  Add an event_remove_timer() to remove timer on an event without deleting it
  Fix a couple of compile warnings in the unit tests
  Avoid crash when event_pending() called with no event_base set on event
  Use EVUTIL_SOCKET_ERROR() wrapper to save/restor errno in evhttp_connection_fail_
  add evhttp_request_get_response_code_line
  Move evutil_rtrim_lws_ to evutil.c where it belongs
  Remove internal ws from multiline http headers correctly
  Remove trailing tabs in HTTP headers as well.
  Clean up rtrim implementation
  ignore LWS after field-content in headers
  Use correct openssl libs and includes in pkgconfig file
  remove stray 'x' so print_err will compile when uncommented
  Make rpcgen_wrapper.sh work on systems without a "python2" binary
  Add a unit test in which an event is created with event_base_once() but never fires
  Free dangling event_once objects on event_base_free()
  Warn when openssl version in unit test mismatches compiled version.
  Fix renegotiation test to work around openssl 1.0.1 bug
  Use the same CFLAGS for openssl when building unit tests as with libevent
  preserve errno in evhttp_connection_fail_ for inspection by the callback
  Fix event_dlist definition when sys/queue not included
  Clean up unit test for evbuffer_file_segment_add_cleanup_cb a little
  Add a new callback to get called on evbuffer_file_segment free
  Fix compilation on mingw64 with -DUSE_DEBUG
  Fix a few mingw64 incompatibilities introduced since 2.0
  Fix some warnings found cross-compiling with mingw32
  Compile without warnings on mingw64
  Close IOCP listener socket on free when LEV_OPT_CLOSE_ON_FREE is set
  fix a few trivial documentation typos
  Use python2 rather than python
  Use python2 rather than python
  No need to reserve space if reading is suspended.
  Stop looping in "consider_reading" if reading is suspended.
  Fix typo : events instead of evets
  FIx another memleak on OOM in evdns
  Avoid a memory-leak on OOM in evdns.
  Add missing return value in event_base_foreach_event
  Don't discard SSL read event when timeout and read come close together
  Tweak patch for event_base_foreach_event()
  Expose event_base_foreach_event() as a public API.
  Prevent reference leak of bufferevent if getaddrinfo fails.
  Rename configure.in to configure.ac.
  We now require automake 1.9 or later. Modernize!
  Fix handling of no-python case for nonrecursive make
  Be quiet when making regress.gen.[ch]
  New --quiet option for event_rpcgen.py
  Make quiet build even quieter
  Rename subordinate Makefile.ams to include.am
  Switch to non-recursive makefiles
  Enable silent build rules by default. Override with V=1
  Use newer syntax for autoconf/automake init
  Increment version to 2.0.20-stable-dev
  Update ChangeLog-2.0
  Add a date to the changelog
  Increment version to 2.0.20-stable
  Initial changelog and credits for 2.0.20
  Add missing implementation for event_enable_debug_logging
  Rename event_enable_lock_debuging() to ..._debugging()
  Correctly invoke callbacks when a SSL bufferevent reads some and then blocks.
  Avoid test -e; older shs don't have one.
  Add deferred_cb_skew to list of timing-dependent tests
  Avoid unused-var warning on systems with clock_gettime but without CLOCK_MONOTONIC_COARSE
  Add explicit AC_PROG_SED to configure.in so all autoconfs will expose $(SED)
  Fix an unused variable warning on *BSD.
  Avoid segfault on weird timeout during name lookup.
  Extract common error-handling code in evconnlistener_new_bind
  Avoid double-free on error in evbuffer_add_file. Found by coverity.
  Check return value when using LEV_OPT_DEFERRED_ACCEPT. Found by coverity
  Check more setsockopt return values when binding sockets. Found by coverity
  memset sockaddr_in before using it. Found by coverity.
  Move assignment outside tt_assert in ssl unit tests. Appeases coverity.
  Add checks to various return values in unit tests. Found by coverity
  Avoid possible needless call to writev. Found by coverity.
  Remove unused variable; spotted by coverity
  Fix a shadowed variable in addfile_test_readcb; found by coverity
  Avoid memory leak in test_event_calloc unit test; found by coverity
  Add checks for functions in test-ratelim.c; found by Coverity
  Avoid more crashes/bad calls in unit tests; found by coverity
  Add some missing null checks to unit tests; found by coverity
  Fix resource leaks in the unit tests; found by coverity
  Fix various check-after-dereference issues in unit tests: found by coverity
  Set umask before calling mkstemp in unit tests. Found by coverity
  Fix another possible uninitialized read in dns regression tests. Found by coverity.
  Fix possible uninitialized read in dns regression tests. Found by coverity.
  Remove deadcode in http regression tests. Found by coverity.
  Add process.h include to evutil.c for _getpid
  Fix tinytset_skip to work with new tinytest_set_flag_ signature
  Fix compile error in win32 listener.c
  Fix a memory leak on error in evhttp_uriencode
  Win32: avoid crash when waiting forever on zero fds.
  Additional comments about OPENSSL_DIR variable, prompted by Dave Hart
  attempt to support OpenSSL in Makefile.nmake
  Make load-dependent monotonic timer tests off-by-default
  Avoid (unlikely) overflow in bench_httpclient.c
  Check return value of write() in regress.c
  Make all tests that hit the network disabled by default
  Update to latest tinytest (911b4f0349377)
  Make test_evutil_monotonic a little more tolerant
  Make th_base_lock nonrecursive
  remove a now-unused var in thread_deferred_cb_skew test
  Avoid a resource leak on error in http client benchmark
  Simplify and correct evutil_open_closeonexec_
  Avoid giving a spurious warning when timerfd support is unavailable
  Make event_pending() threadsafe.
  Add GCC annotations so that the vsprintf functions get checked properly
  Make the Makefile.nmake warning slightly less dire
  Add evutil_time.obj to Makefile.nmake
  Fix a couple of memory leaks (found with Valgrind).
  Fix a comment in test-fdleak after 077c7e949.
  Correctly check for arc4random_buf
  check for arc4random_buf at runtime, on OS X
  Make it more clear that NOLOCK means "I promise, no multithreading"
  Add caveat to docs about bufferevent_free() with data in outbuf
  Be more clear that LEV_OPT_DEFERRED_ACCEPT has tricky prereqs
  Remove unnecessary code in configure.in.
  Add an event_base_loopcontinue() to tell libevent to rescan right away
  Restore our priority-inversion-prevention code with deferreds
  Give event_base_process_active a single exit path
  Make event_base_getnpriorities work with old "implicit base" code
  Add a bufferevent_get_priority() function
  New event_get_priority() function to return an event's priority
  Replace more deferred_cb names with event_callback
  Replace deferred_cbs with event_callback-based implementation.
  event_base_assert_ok: check value of event_active_count for correctness
  Add "active later" event_callbacks to supersede deferred
  Remove the unused bits from EVLIST_ALL
  Refactor the callback part of an event into its own event_callback type
  Bump version to 2.0.19-stable-dev
  Increment version to 2.0.19-stable
  Oops; fix the *right* windows compile issue
  Fix win32 build issues: sleep, pid_t
  Start changelog for 2.0.19-stable
  Fix evdns build with threads disabled
  When retransmitting a timed-out DNS request, pick a fresh nameserver.
  Make some evdns.c debug logs more verbose
  dns-example.c can now take a resolv.conf file on the commandline
  Correctly handle running on a system where accept4 doesn't work.
  Work-around a stupid gcov-breaking bug in OSX 10.6
  Fixed potential double-readcb execution with openssl bufferevents.
  If a higher-priority event becomes active, don't continue running events of the current priority.
  Generate event-config.h with a single sed script
  Generate event-config.h with a single sed script
  When PRECISE_TIMERS is set with epoll, use timerfd for microsecond precision
  Improve the monotonic-time unit test: make it check the step size
  Simple unit tests for monotonic timers
  Implement fast/precise monotonic clocks on Windows
  Add EVENT_PRECISE_TIMER environment var for selecting precise-but-slow timer
  Refactor monotonic timer handling into a new type and set of functions; add a gettimeofday-based ratcheting implementation
  Split out time-related prototypes into time-internal.h
  Split out time-related evutil functions into a new evutil_time.c
  Split long lists in Makefile.am into one-item-per-line
  Shave 700 msec off the persistent_timeout_jump test
  If time has jumped so we'd reschedule a periodic event in the past, schedule it for the future instead
  Refactor event_persist_closure: raise and extract some common logic
  remove redundant DNS_ERR_CANCEL check, move comment
  cancel the probe request when the server is freed, and ignore cancelled probe callbacks
  Note that make_base_notifiable should not be necessary
  Implement a GetTickCount-based monotonic timer for Windows
  On Linux, use CLOCK_MONOTONIC_COARSE by default
  EVENT_BASE_FLAG_PRECISE_TIMER indicates we want fine timer precision
  Move use_monotonic and friends into event_base
  Work-around a stupid gcov-breaking bug in OSX 10.6
  Replace pipe-based notification with EVFILT_USER where possible
  Do not track use_monotonic field when is no monotonic clock
  Use mach_absolute_time() for monotonic clock support on OSX.
  Tweak the new evutil_weakrand_() code
  Change evutil_weakrand_() to avoid platform random()
  Simplify test.sh code significantly.
  Increment the version to 2.1.1-alpha-dev
  Backport: provide EVENT_LOG_* names, and deprecate _EVENT_LOG_*
  fix some typos in the 2.1 changelog
  Bump the version to Libevent 2.1.1-alpha
  Fix the website URL in the readme
  Try to finalize changelog situation for 2.1.1-alpha
  Add pending names to the README; add more entries to the changelog
  Include ws2tcpip.h from util.h to get EAI_* definitions.
  Fix some compilation warnings with msvc
  Oops; fix a merge conflict that got committed into event2/event-config.h.  Now msvc builds work again.
  Decrease MAX_REQUESTS in test-fdleak
  Include util-internal.h earlier in test-dumpevents to fix solaris build
  Fix compilation with mm-replacement disabled.
  make event_base_get_running_event build with threads disabled.
  Make check-dumpevents work with out-of-tree builds
  Make check-dumpevents.py actually get included in the tarballs
  Configure with gcc older than 2.95
  Missing ) in bufferevent_ratelim.c comment. Found by rransom
  Add missing ) to changelog; spotted by rransom
  Add a missing name to the readme.
  Increase duration and tolerance on http/connection_retry test
  Fix a compilation error with MSVC 2005 due to use of mode_t
  Temporarily disable event_queue_reinsert_timeout
  Make libevent_global_shutdown() idempotent
  Updates for whatsnew-2.1.txt
  Require at least Python 2.4 for check-dumpevents.py.
  Fix a typo in the bufferevent documentation
  Test more bufferevent_ratelim features
  Add event_base_get_running_event() to get the event* whose cb we are in
  More coverage on reinsert_timeout tests
  Make test-dumpevents build on Linux
  Fix a nasty bug in event_queue_reinsert_timeout()
  Add a unit test for event_base_dump_events()
  event_base_dump_events: Report active events tersely, and note internal events
  Fix compilation of evutil_rand on osx
  Fix typo in whatsnew-2.1.txt
  Use libevent_global_shutdown() to clean up in unit tests.
  Distribute whatsnew-2.1.txt.
  Fix another bug from rebase of libevent_global_shutdown patch
  Write a first draft of whatsnew-2.1.txt
  Tweak changelog for 2.1 even more
  Add more things to the 2.1 changelog
  Add an empty changelog section for 2.0.19-stable
  Bump version to 2.0.18-stable-dev
  Bump version to 2.0.18-stable
  Add credits to README
  Changelog for libevent 2.0.18-stable
  Add a new libevent_global_shutdown() to free all globals before exiting.
  event-read-fifo: Use EV_PERSIST appropriately
  Rename event-test.c to event-read-fifo.c.
  On Unix, remove event.fifo left by sample/event-test.c.
  Fix up sample/event-test.c to use newer interfaces and make it actually work.
  Now that event_assign() special-cases event_self_cbarg(), event_new() can stop
  Add a test for using event_self_cbarg() with event_assign().
  event_self_cbarg() works with event_assign() for consistency with event_new().
  Properly zero the kevent in kq_setup_kevent()
  Don't do clang version detection when disabling some flags
  Add a regression test for event_self_cbarg().
  Update sample/signal-test.c to use the new event_self_cbarg().
  Add event_self_cbarg() to be used in conjunction with event_new().
  event_rpcgen.py now prints status information to stdout and errors to stderr.
  Add netinet/in.h include to fix test-fdleak on openbsd
  Restore accidentally disabled nanosleep implementation of evutil_usleep.
  Fix doxygen to use new macro conventions
  Clean up lingering _identifiers.
  Apply the naming convention to our EVUTIL_IS* functions
  Have all visible internal function names end with an underscore.
  Fix some problems introduced by automated identifier cleanup script
  Make event_rpcgen.py output conform to indentifier conventions, more
  Fix all identifiers with names beginning with underscore.
  Make the generated event-config.h use correct include guards
  Stop referring to an obsolete include guard in bench_http.h
  Make event_rpcgen.py output conform to indentifier conventions
  Convert include-guard macro convention to avoid reserved identifiers
  Generate event-config.h using the correct macros.
  Convert event-config.h macros to avoid reserved identifiers
  Make event-config.h depend on Makefile.am
  Check for NULL return on win32 mm_calloc, and set ENOMEM.
  Do not use system EAI/AI values if we are not using the system getaddrinfo.
  Replace sole internal user of socklen_t with ev_socklen_t
  Fix evmap to work with HT-backed IO maps again.
  evutil_accept4() should take ev_socklen_t
  test-fdleak: Avoid perror, since it does not capture windows socket errors
  remove debugging prints
  test-fdleak: Call event callbacks event_cb.
  Remove fixed port from test-fdleak, so two instances can run in parallel
  Remove an unsafe programming practice from test-fdleak; add XX comments
  Try and fix compilation and running of test-fdleak on Windows.
  Allow compilation on machines that do not have setrlimit.
  Simply test-fdleak by running server & client sockets in the same event loop.
  Add a new test: test-fdleak which tests for fd leaks by creating many sockets.
  If accept4 is absent, fall back to accept.
  Avoid leaking fd in evutil_socket() by Linux.
  Remove the last vestiges of _EVENT_USE_EVENTLIST
  Add doxygen for event_base_dump_events
  Refactor the functions that run over every event.
  Fix an "unused return value" warning on write() in signal handler
  Start work on a 2.1 changelog and whats-new
  Add another caveat to the TCP_DEFER_ACCEPT documentation
  Support TCP_DEFER_ACCEPT sockopts for listeners
  Stop crashing in evdns when nameserver probes give a weird error
  Changed OPENSSL_LDFLAGS to OPENSSL_LIBADD
  Added OPENSSL_LDFLAGS env variable which is appended to SSL checks.
  If open(O_CLOEXEC) fails, fall back to fcntl(CLOEXEC)
  Fix up usage of reserved identifiers in ht-internal.h
  Port changes from Tor for ht-internal.h
  Invert the sense and the name of HT_CACHE_HASH_VALUES
  Synchronize with upstream tinytest
  Merge in a punctuation fix from upstream tinytest
  Move libevent 1.x headers to include/, to put all public headers in one place.
  Tweak the evutil_open_closeonexec patch to work on windows, old unixes.
  Make uses of open() close-on-exec safe by introducing evutil_open_closeonexec.
  Add a bufferevent_getcb() to find a bufferevent's current callbacks
  Also make win32select.c conditional for IDE users
  Add an empty section to the changelog for 2.0.18-stable
  Correct a name in the credits. oops
  Bump version to 2.0.17-stable-dev
  Update the credits in the readme
  Finalize the changelog
  Fix compilation on osx
  Update copyright notices to 2012
  Bump version to 2.0.17-stable
  Prefer epoll_create1 on Linuxen that have it
  Save some syscalls when constructing a socket for a bufferevent
  Save some syscalls when creating evdns sockets
  Save syscalls when constructing listener sockets for evhttp
  Use pipes for telling signals to main thread when possible
  Use a wrapper function to create the notification pipe/socketpair/eventfd
  The LEV_OPT_CLOSE_ON_EXEC flag now applies to accepted listener sockets too
  Minimize syscalls during socket creation in listener.c
  Infrastructure for using faster/fewer syscalls when creating sockets
  In the kqueue backend, do not report EBADF as an EV_READ
  Avoid crash when freeing event_iocp and using event_set_mem_functions
  Put #ifdef around some files to support alternate build systems.
  Bring the changelog up to date
  Loop on filtering SSL reads until we are blocked or exhausted.
  Replace more C99/C++ comments with oldschool /* */ comments
  Use C-style comments in C source files (for compatibility with compilers such as xlc on AIX).
  evdns: fix a bug in circular-queue implementation
  Fix a compile warning in event_reinit
  Remove the eventqueue list and the ev_next pointers.
  Make test-changelist faster
  Check changelist as part of checking representational integrity
  Restore fast-path event_reinit() for slower backends
  Make event_reinit() more robust and maintainable
  Better workaround for Linux 3.2 edge-triggered epoll bug
  Do a memberwise comparison of threading function tables
  When including an -internal.h header outside the main tree, do so early
  Allow more slop in deferred_cb_skew test; freebsd needs it
  Remove a couple of now-unused variables
  Make event_base integrity check work on windows
  Start writing a changelog for 2.0.17-stable
  Use test_timeval_diff_eq more consistently
  Make regression tests run over 3x faster.
  New evhttp function to adjust initial retry timeout
  Reduce the timeout in the main/fork test.
  Add an (internal) usleep function for use by unit tests
  Oops:remove an accidentally committed "sleep(1)" in a unit test
  Workaround in the unit tests for an apparent epoll bug in Linux 3.2
  Fix a fd leak in event_reinit()
  Fix a list corruption bug when using event_reinit() with signals present
  Check event_base correctness at end of each unit test
  Fix compilation of windows evutil_check_ifaddrs
  Add function to check referential integrity of an event_base
  Force strict validation of HTTP version in response.
  Suppress a gcc warning from ignoring fwrite return in http-sample.c
  Fix a race condition in the dns/bufferevent_connect_hostname test.
  Make evconnlistener work around bug in older Linux when getting nmapped
  Remove bogus casts of socket to int before calling ev_callback
  Backport evhttp_connection_get_bufferevent to Libevent 2.0
  Slightly clarify evbuffer_peek documentation
  Fix behavior of evbuffer_peek(buf,-1,NULL,NULL,0)
  Remove some accidentally-committed debugging code
  whitespace fixes
  check for sysctl before we use it
  Split up extra-long AC_CHECK_FUNCS/HEADERS lines in configure.in
  Use getifaddrs to detect our interfaces if possible
  Changed use of refcounts to make sure referenced chains are freed in all cases.
  Add evbuffer_copyout_from to copy data from the middle of a buffer
  Bypass event_add when using event_base_once() for a 0-sec timeout
  Fix a silly compilation error with the sun compiler
  Be absolutely sure to clear pncalls before leaving event_signal_closure
  fix windows compilation issues with new file segment code
  Fix two issues in the allow_dirty_shutdown code.
  Tweak allow_dirty_shutdown documentation
  Allow users to set allow_dirty_shutdown
  bev_ssl: Be more specific in event callbacks. evhttp in particular gets confused without at least one of BEV_EVENT_{READING|WRITING}.
  Increment version to 2.0.16-stable-dev
  Increment version to 2.0.16-stable
  Revise 2.0.16-stable changelog
  add comment to new consider_reading code
  Avoid spinning on OpenSSL reads
  Move SSL rate-limit enforcement into bytes_to_read()
  Refactor amount-to-read calculations in buffervent_ssl consider_reading()
  Revert "Avoid potential SSL read spinlocks"
  Revert "openssl bufferevent has the same issue with writing as prior commit."
  Add new entries to changelog, new credits to README
  Fix DNS memleak checks when running with malloc-replacement/debugging disabled
  Don't try to make notifiable event_base when no threading fns are configured
  Warn when unable to construct base because of failing make_base_notifiable
  openssl bufferevent has the same issue with writing as prior commit.
  Avoid potential SSL read spinlocks
  unit tests for EVBUFFER_EOL_NUL
  New EVBUFFER_EOL_NUL to read NUL-terminated strings from an evbuffer
  Tweaks, fixups, and comments on evbuffer_add_iovec
  Added evbuffer_add_iovec and unit tests.
  Improve win32 behavior of dns-sample.c codex
  Fix typo in whatsnew-2.0.txt
  Use the free-trailing-chains function in evbuffer_insert_chain too
  Fix an evbuffer crash in evbuffer_remove_buffer()
  improve test to remove at least one buffer from src
  unit test for remove_buffer bug
  Fix compile warning from saying event2/*.h inside a comment
  epoll: close fd on alloc fail at initialization
  evhttp: Add evhttp_foreach_bound_socket.
  Update copyright dates to 2011.
  New event_base_update_cache_time() to set cached_tv to current time
  Add argument checks to some memory functions in `event.c'.
  Add note about evhttp_send_reply_end to its doxygen
  More detailed message in case of libevent self-debugging failure.
  Style and comment tweaks for dns/leak* tests
  Test for commit aff6ba1
  Empty DNS reply with OK status is another way to say NODATA.
  Tests for 94fba5b and f72e8f6
  fixed typo
  added comments to describe refcounting of multicase chains
  Bump version to 2.0.15-stable-dev
  Credit a patch from a one-named user
  Increment version to 2.0.15-stable
  Add changelog for 2.0.15-stable
  bufferevent: Add functions to set/get max_single_read/write values.
  Make evbase_priority_init() and evbase_get_npriorities() threadsafe
  Add event_base_get_npriorities() function.
  refer to non-deprecated evdns functions in comments
  Make evbuffer_file_segment_types adaptable
  New EVLOOP_NO_EXIT_ON_EMPTY option to keep looping even when no events are pending
  Allow evconnlistener to be created in disabled state.
  Fix some "value never used" warnings with gcc 4.6.1
  Make write-checking fixes use tt_fail_perror
  Fixed compiler warnings for unchecked read/write calls.
  Prefer mmap to sendfile unless a DRAINS_TO_FD flag is set. Allows add_file to work with SSL.
  Make evbuffer callbacks get the right n_added value after evbuffer_add
  Use _SOURCES, not _sources, in sample/Makefile.am
  le-proxy and regress depend on openssl directly
  Add DNS_ERR_NODATA error code to handle empty replies.
  Fix docstring in dns.h
  Build with large-file support on platforms where it matters
  Clarify event_enable_debug_logging a little
  Remove calls to deprecated bufferevent functions from evhttp.c
  Add evhttp callback for bufferevent creation; this lets evhttp support SSL.
  Implement --enable-gcc-hardening configure option
  Make gcc warnings on by default, and --enable-gcc-warnings only add -Werror
  When a signal callback is activated to run multiple times, allow event_base_loopbreak to work even before they all have run.
  DNS: add ttl for negative answers using RFC 2308 idea.
  Make --enable-verbose-debug option match its help text
  Increment version to 2.0.14-stable-dev
  Credit new contributors for 2.0.14-stable
  Pick a release date for the changelog
  Bump version to 2.0.14-stable
  Use SIG_IGN instead of a do-nothing handler for signal events with kqueue
  Fix OSX build: $(OPENSSL_INCS) needs to be after $(AM_CPPFLAGS).
  clear read watermark on underlying bufferevent when creating filtering bev to fix potentially failing fragmented ssl handshakes
  Checkpoint changelog entries for 2.0.14-stable
  Correctly terminate IO on an async bufferevent on bufferevent_free
  Have test-ratelim.c support IOCP
  Make IOCP rate-limiting group support stricter and less surprising.
  Support negative arguments to _bufferevent_decrement_(read/write)_buckets()
  We need AM_CPPFLAGS when compiling bufferevent_openssl.c
  Use pkg-config (if available) to handle OpenSSL.
  Provide the autoconf m4 macros for the new OpenSSL via pkg-config stuff.
  Cleanup on 7c11e51e1ab: fix strtol usage
  Cleanup on 7c11e51e1ab: restore c90 declaration compliance
  Clean up some problems identified by Coverity.
  Make rate limiting work with common_timeout logic
  Make overlapped reads result in evbuffer callbacks getting invoked
  IOCP: don't launch reads or writes on an unconnected socket
  Try to fix 'make distcheck' errors when building out-of-tree
  Make the priority inversion code use gettime(), not evutil_gettimeofday()
  Make max_dispatch_interval able to apply only to low-priority events
  Optimization in event_process_active(): ignore maxcb & endtime for highest priority events.
  Make sure max_dispatch_callbacks is never negative
  Add event_config function to limit time/callbacks between calls to dispatch
  Solaris sendfile: correctly detect amount of data sent
  Fix request_finished memory leak with debugging turned on.
  Fix evsig_dealloc memory leak with debugging turned on.
  Another docstring fix.
  more event dbg updates
  Fix handling of group rate limits under 64 bytes of burst
  added timeout debug logs to include event ptr.
  Added usec debug in another area for debug
  Debug addition for printing usec on TIMEOUT debugging.
  Ignore deprecation warnings on OS X
  prevent nested multicast references, reworked locking
  support adding buffers to other buffers non-destructively
  Allow OS-neutral builds for platforms where some versions have arc4random_buf
  changed to --enable-verbose-debug
  Propagate errors on the underlying bufferevent to the user.
  Added --enable-event-debugging in configure
  Add missing break to evhttp_parse_request_line
  Fix typo in event_compat.h comments.
  Bump version to 2.0.13-stable-dev
  Bump version to 2.0.13-dev
  acks and changelog for 2.0.13-stable
  Give Makefile.am echo a non-null argument. msys likes this
  Fix a warning in evutil_rand when building with threads disabled
  Use AM_CPPFLAGS in sample/Makefile.am, not AM_CFLAGS
  Add doxygen to .gitignore
  Fix up test_evutil_snprintf
  Fix a test-call accidentally in the last commit
  More abstraction in test.sh
  Update Doxyfile to produce more useful output
  Revise the event/evbuffer/bufferevent doxygen for clarity and accuracy
  Use "unlimited select" on OSX so that we can have more than FD_SETSIZE fds
  Fix select.c compilation on systems with no NFDBITS
  Speed up invoke_callbacks on evbuffers when there are no callbacks
  Fix bug in SSL bufferevents backed by a bev with a write high-watermarks
  Fix a few warnings on OpenBSD
  Fix AIX build issue with TAILQ_FOREACH definition
  Don't install event_rpcgen.py when --disable-libevent-install is used
  Set the special "not found" evbuffer_ptr consistantly.
  Don't break when building tests from git without python installed
  Improve evbuffer_ptr documentation
  Tweaks to return types with end-of-buf ptrs
  Allow evbuffer_ptr to point to position 0 in an empty evbuffer
  Allow evbuffer_ptr_set to yield a point just after the end of the buffer.
  Add failing test for evbuffer_search_range.
  Simplify windows commandname logic in tinytest
  Fix tinytest invocation from windows shell
  Use the correct printf args when formatting size_t
  Check if the `evhttp_new_object' function in `http.c' returns NULL.
  Report kqueue ebadf, epipe, and eperm as EV_READ events
  Replace an assertion for event_base_free(NULL) with a check-and-warn
  Add some missing checks for mm_calloc failures
  Remove a needless branch in evbuffer_drain()
  Fix a bug in the improved EOL_CRLF code
  Fix incorrect results from evbuffer_search_eol(EOL_LF)
  Bump version to 2.0.12-stable-dev
  tweak date on changelog
  Changelog and new credits for 2.0.12-stable
  Bump version to 2.0.12-stable.  Not release just yet
  Fix regress_ssl.c build on openbsd
  Fix windows file segment mappings
  Avoid a segfault when all methods are disabled or broken
  Try to squeeze a little more speed out of EVBUFFER_EOL_CRLF
  cygwin: make it possible to build DLLs
  Roughly 20% speed increase when line-draining a buffer using EVBUFFER_EOL_CRLF
  Fix a fencepost bug in the select backend
  Make the new http_connect_fail_test use a multicast addr, not broadcast
  InitializeCriticalSectionAndSpinCount requires _WIN32_WINNT >= 0x0403.
  Allow base-notification functions to exist without setting an fd
  Reenable main/many_events_slow_add for evport in 2.1
  evport: Remove artificial low limit on max events per getn call
  evport: don't scan more events in ed_pending than needed
  evport: Use portev_user to remember fdinfo struct
  evport: Remove a linear search over recent events when reactivating them
  evport: use evmap_io to track fdinfo status. Should save time and RAM.
  Fix a couple of signed/unsigned warnings in http.c
  Disable main/many_events_slow_add with evport backend
  Fix compilation.
  updated EV_S(s)IZE definitions
  Added overflow checks in evhttp_read_body and evhttp_get_body
  Added several checks for under/overflow conditions in evhttp_handle_chunked_read
  Always use evutil_snprintf, even if OS provides it
  Do not define WIN32 in Makefile.nmake
  In configure, test for _WIN32 not WIN32.
  Use "_WIN32", not WIN32: it's standard and we don't need to fake it
  Use evutil_gettimeofday instead of relying on the system gettimeofday.
  ...
b9d4b1a
@azat azat added a commit to azat/libevent-deb that referenced this issue Sep 14, 2015
@azat azat Merge remote-tracking branch 'main/master' into 2.1.5-release-3
* main/master: (3028 commits)
  test: fix bufferevent/bufferevent_pair_release_lock in debug mode
  test: fix bufferevent/bufferevent_pair_release_lock for freebsd
  Assume that ke_udata is an integer type on CloudABI.
  Add missing include of <netinet/in.h>.
  Include <sys/ioctl.h>, <sys/resource.h> and <sys/wait.h> optionally.
  Add a prototype for event_disable_debug_mode()
  http: export evhttp_connection_set_family()
  test/regress_be: bufferevent_enable() shouldn't call eventcb by it's own
  test/regress_be: introduce fake_listener_create()
  http: fix evhttp_request_own() by checking EVHTTP_USER_OWNED in more cases
  test/regress_http: cover evhttp_request_own()
  http: fix detecting EOF without write
  test/regress_http: cover write during read
  test/regress_http: verify that closecb will be called without multiple write
  test: run regress with EVENT_DEBUG_MODE=1 and without
  test/regress: fix bufferevent_pair_release_lock with EVENT_DEBUG_MODE
  sample/https-client: add -timeout option
  be_openssl: don't use *_auto() in do_handshake() we can't have fd == -1 there
  be_openssl: don't call set_open_callbacks() if fd == -1
  be_openssl: introduce be_openssl_auto_fd() helper
  be_openssl: introduce set_open_callbacks_auto()
  be_openssl: get rid off hackish "fd_is_set", to fix some corner cases
  test/regress_ssl: check events fd/pending after timeout triggered
  test/regress_ssl: cover case when server didn't up (failed with timeout)
  test/regress_ssl: covert that we can't change fd with underlying
  test/regress_ssl: cover that events (read/write) at finish not pending
  test/regress_ssl: cover fd manipulations
  test/regress_ssl: convert open_ssl_bufevs() to mask
  test/regress_ssl: convert client/server to mask too
  test/regress_ssl: cover "allow_dirty_shutdown"
  test/regress_ssl: convert regress_bufferevent_openssl() to bitmask
  Test against SO_REUSEADDR (along with _WIN32).
  tests/regress_ssl: drop duplicated assert
  Always define missing TAILQ functions from sys/queue.h
  Don't use BSD u_* types.
  Remove BSD-ism: TIMEVAL_TO_TIMESPEC().
  be: include all variations of headers for sockaddr_in6 struct
  http: eliminate warning about "socklen" in evhttp_connection_connect_()
  be: fix sockaddr_in6 type definition for win32
  sample/https-client: don't try to free uninitialized SSL
  sample/https-client: graceful exit with freeing memory (to make valgrind happy)
  https-client: correctly handle URLs with no path (like "https://host:port")
  sample/http-connect: don't use assert() to make it work with NDEBUG
  test/regress_http: initialize "dns_base" to avoid reading trash
  sample/http-connect: made it compatible with C90
  be_sock: bufferevent_socket_set_conn_address(): assert instead of silent no-op
  http: reuse connected address only with EVHTTP_CON_REUSE_CONNECTED_ADDR
  be_sock: sanity check in bufferevent_socket_set_conn_address()
  be: replace sockaddr_storage with sockaddr_in6 for conn_address
  be: we don't need to use getpeername() we we have conn_address
  be: replace conn_address by full struct instead of pointer
  test/http: cover retrying with saved conn_address by shutting down dns server
  http: use IP address that we got before (if any) during retrying
  bufferevent: move conn_address out from http into bufferevent
  be: make @sa const for bufferevent_socket_connect()
  util: make @sa const for evutil_socket_connect_()
  sample: add HTTP CONNECT tunnelling example using libevent http layer
  http: introduce evhttp_request_free_() helper
  http: introduce evhttp_is_request_connection_close() helper
  Updated gitignore
  Update dns-example.
  Update bench_httpclient.c
  *fix: bench_httpclient to support win32
  Set correct socklen for PF_INET6 sockaddr len
  Debug mode option to error on evthread init AFTER other event calls.
  Update README.md
  Update README.md
  Update README.md
  Update travis config for status updates
  Update README.md
  Use autotools for appveyor until cmake is fixed.
  Commented out a WIN32 threading / timing test for now
  Fix the link for appveyor OpenSSL installer (WIN32)
  Fix garbage value in socketpair util function, stdint?
  expose bufferevent_incref/decref (with fewer modifications)
  Call underlying bev ctrl SET_FD on filtered bufferevents
  Fix potential fd leak in listener_read_cb()
  tab
  fix the return value of event_deferred_cb_schedule_
  Fix mixed declarations and code (forbidden by ISO C90)
  Fix "function declaration isn’t a prototype"
  Forgot to install OpenSSL for appveyor
  Add support for appveyor.com windows CI
  This fixes a bug introduced in 27bd9faf498b91923296cc91643e03ec4055c230
  New function to get address for nameserver.
  changed strtotimeval signature as per #211
  Added cmake-generated files to ignore list.
  be_pair/regress: cover use of shared lock (lock/unlock/free)
  event_free_debug_globals_locks(): disable lock debugging
  evthread: evthreadimpl_disable_lock_debugging_() for libevent_global_shutdown()
  evthread: add evthread_get_{lock,condition}_callbacks() helpers
  be_pair: release shared lock with the latest of bufferevent_pair
  EVBUFFER_PTR_SET -> EVBUFFER_PTR_ADD
  regress_dns: drop hack for event_debug_map_HT_GROW in leak tests
  event: call event_disable_debug_mode() in libevent_global_shutdown()
  ht-internal: don't reset hth_table_length explicitly in name_##HT_CLEAR
  Update changelog
  Fix CVE-2014-6272 in Libevent 2.1
  Increment version to 2.1.5-beta
  work on changelog for 2.1.5-alpah
  Fix CMake shared library build
  Fix warnings when compiling with clang 3.5
  Fix annoying heisenbug in test-time.c
  Fix mixed declarations and code (forbidden by ISO C90)
  Implement new/free for struct evutil_monotonic_timer and export monotonic time functions
  Fix evbuffer_peek() with len==-1 and start_at non-NULL.
  Start on 2.1.5-alpha/beta changelog
  Work on the changelog for 2.0.22
  Fix race caused by event_active
  More evbuffer_peek() test cases
  test/evbuffer_peek: add regress in case we have first buffer greater
  Fix evbuffer_peek() with len==-1 and start_at non-NULL.
  Fix cmake error when the Module path has more than one entry.
  evhttp: Fix failure to send all output data for POST/PUT requests
  be async: avoid double close()
  Prevent duplicate event_del on fd
  evdns: avoid read-after-free in evdns_request_timeout_callback()
  dns-example: allow to set ns from args
  dns-example: convert to getopt()
  Add test for evhttp_connection_free_on_completion
  Implement interface that provides the ability to have an outbound evhttp_connection free itself once all requests have completed
  remove trailing comma from enum
  Provide support for SO_REUSEPORT through LEV_OPT_REUSABLE_PORT
  Fix a typo in a doxygen comment. Reported by 亦得.
  http: reset connection before installing retry timer (fix http retries handling)
  evdns: fail ns after we are failing/retrasmitting request
  evdns: add retry/reissue tests for EVDNS_BASE_DISABLE_WHEN_INACTIVE
  evdns: fix EVDNS_BASE_DISABLE_WHEN_INACTIVE in case retransmit/retry
  Fix compilation for older OpenSSL versions.
  bufferevent_openssl: reset fd_is_set when setfd with -1 is called
  https-client: add -retries argument, for connection retries
  [Bugfix] fix bufferevent setwatermark suspend_read
  Fix several memory leaks in the unit tests.
  Fix for a677b72bd6d9d378daf9775966aa8ca574e26e67
  Make a buffer larger in the tests to avoid a scary evbuffer_copyout_from()
  Use a more precise calculation for max in time-ratelim.c
  Use evutil_weakrand() in unit tests.
  Fix a c90 warning
  Fix a dead-code warning in unit tests. CID 1193548
  Fix a use-after-free in unit tests. CID 752027
  Fix use-after-free error in EV_CLOSURE_EVENT callback
  regress_buffer: fix 'memcmp' compare size
  use correct tt macro for pointer compare
  make bufferevent_getwatermark api more robust
  [Bugfix] fix grammer error
  updates in cmake build
  Correctly handle allocation failures in evdns_getaddrinfo
  Consistently check for failure from evbuffer_pullup()
  Use FindClose for handle from FindFirstFile in http-server.c
  Change return type of evutil_load_windows_system_library_ to HMODULE
  Fix issue #127, double free for filterevents that use BEV_OPT_CLOSE_ON_FREE
  Add a few files created by "make verify" to .gitignore.
  test/regress: add simplestsignal: to track reorder bugs separately
  add a --disable-samples configure flag
  ignore config.cache/test-driver files
  Handle ENOTCAPABLE from FreeBSD - this is returned if an event in the changelist is for an FD that has been closed.
  Make http-server.c output into good html5
  Update to a more recent tinytest_macros.
  ignore one more test binary
  regress dns: drop alarm() (since windows don't have it)
  evdns: we don't need to add retry timer in transmit_to it will be done on fail
  evdns: add regress test for flag EVDNS_BASE_DISABLE_WHEN_INACTIVE without ns
  evdns: add regress for EVDNS_BASE_DISABLE_WHEN_INACTIVE base flag
  evdns: disable probing with EVDNS_BASE_DISABLE_WHEN_INACTIVE
  tree.h: drop duplicated content of tree.h
  test/http: add regress test for set family to AF_INET6
  test: add regress for evhttp_connection_set_family() with AF_INET and AF_UNSPEC
  test: add family argument for http_connection_test_()
  Fix a crash in evdns related to shutting down evdns
  Add missing headerfile for cmake
  regress_dns: fix leaks in getaddrinfo_async{,_cancel_stress} tests
  Fix a crash in evdns related to shutting down evdns
  Increment version to 2.1.4-alpha-dev
  Update release date in changelog
  Don't truncate hosts file path on Windows.
  Load hosts file on Windows.
  Add evhttp_connection_set_family() to set addrinfo->family for DNS requests
  Fixup make install for cmake projects
  Renamed sin to saddr due to name conflict
  Correctly skip ipv6 http test on systems without ipv6
  Remove integer-overflow unit tests
  evtag: detect tags over 32-bits earlier
  Catch over-large port numbers early in http
  Fix ubsan warnings when parsing ipv4/ipv6 addrs
  Fix a use-after-free error on EV_CLOSURE_EVENT_FINALIZE callbacks
  Fix an illegal read error in the evbuffer_add_reference tests
  Add new APIs to whatsnew-2.1
  Increment version to 2.1.4-alpha
  Bring changelog up to date for 2.1.4-alpha
  Avoid double-close paths in http tests
  Add missing include to regress_finalize.h
  Skip http/ipv6_for_domain test when we have no ipv6 support
  Add an include to evrpc-internal to fix openbsd compilation warning
  Heap-allocate zlib data structure in regress_zlib tests
  Fix consts in WIN32-Code/getopt*.[ch]
  Fix duplicate paragraph in evbuffer_ptr documentation
  Initialize async bufferevent timeout CBs unconditionally
  add a cast to https-client.c
  Export event_extra not event_extras.
  Update to the latest version of tinytest
  Fix 'make distcheck' by adding regress.gen.[ch] to DISTCLEANFILES
  Move assert(ev) to before we use ev in EV_CLOSURE_EVENT_FINALIZE case
  Add -Qunused-arguments for clang on macos
  Add option to build shared library
  Do not offer EV_FEATURE_EARLY_CLOSE if we have no EPOLLRDHUP
  Stop checking for inet_aton; we don't use it.
  Rename event_extras to event_extra
  BUGFIX: Fix compilation on systems with EPOLLRDHUP undefined.
  Add cmake-related files to .gitignore
  Added -Qunused-arguments for clang on macosx
  bufferevent_pair: don't call downcast(NULL)
  Tweaked callbacks to prevent race condition (https://github.com/libevent/libevent/issues/104)
  Tweaked callbacks to prevent race condition (https://github.com/libevent/libevent/issues/104)
  Added a Travis-CI configuration file.
  Check does arch have the epoll_create and __NR_epoll_wait syscalls.
  Check for OSX when checking for clang.
  Guard against EVENT_NOWIN32 being set during testing.
  Fix https-client compilation on Windows.
  CMake: Get rid of python not found warning when regress tests turned off.
  Fix CMake compile when OpenSSL is disabled.
  Split epoll lookup table into a separate header file
  Expand EV_CLOSED documentation a bit
  Disclaimerize cmake a little in the README
  Fix broken autotools build.
  Fix a c90 warning
  Check if we're on OSX before disabling deprecation in le-proxy
  Change all uses of WIN32 to _WIN32
  Fix include bug.
  Implemented EV_CLOSED event for epoll backend (EPOLLRDHUP).
  Forgotten headers for old nmake project compatability.
  Clean up the README some.
  Update README with CMake build instructions.
  Rename README to README.md and use markdown to format.
  Fix so that old nmake project still builds.
  Set USE_DEBUG=1 on EVENT__ENABLE_VERBOSE_DEBUG
  Some work on making it possible to simply do add_subdirectory() on the project.
  Fix typo
  Add CMake config and install targets.
  Fix even more coverity warnings.
  Fix a couple of compilation warnings in regress_http.c
  Remove spurious checks in evrpc.c error cases (coverity)
  Whoops; fix compilation in bench.c
  Fix coverity warnings in benchmark tools.
  Fix a pile of coverity warnings in the unit tests
  Update unit test to make sure that the callback happens after the output data is written
  evhttp_request_set_on_complete_cb to be more specific about what the function actually does and usage
  Provide on request complete callback facility
  Added unit test for max event counts
  Fixed bug using wrong variable in max event compare
  Add access to max event count stats
  Remove unneeded declaration in bufferevent-internal.h
  Fix needless bufferevent includes in evdns.c
  Fix a couple of "#ifdef WIN32" instances
  Sample HTTPS Client: Set hostname for SNI extension (by f69m)
  fix for ServFail from RIPE Atlas release
  Small tweaks to https-client.c
  Minor optimizations on bufferevent_trigger options
  Make bufferevent_trigger_nolock_() inline
  Unit tests for active_by_fd; unsupport active_by_fd(TIMEOUT)
  Add event_base_active_by_signal by analogy
  Sanity-check arguments to event_base_active_by_fd()
  Refactor evmap_{io,signal}_active_() to tolerate bad inputs
  Typo fixes from Linus Nordberg
  Typo fixes from Linus Nordberg
  Added EVENT__ENABLE_GCC_WARNINGS, turns all warnings into errors.
  Only look for ZLib when it is used (if tests are included).
  Fix the "make verify" target on NetBSD
  Add a "make verify_coverage" target generation coverage info.
  Get rid of unknown pragma warnings.
  Minimum required python version is 2.4.
  Change the BSD license from 4 to 3-clause.
  Added a test for testing if kqueue works with pipes.
  Fix kqueue support.
  Get rid of deprecation warnings for OpenSSL on OSX 10.7+
  Fix the make "verify" target on Windows.
  Clarify event_base_loop exit conditions
  Added a "make verify" target.
  Only test the event backends available on the system.
  Don't segfault on no found event backend.
  Fix bench_cascade program on Windows.
  Only include WIN32 getopt where it is used.
  Add copyright and licensing files for CMake modules.
  Use evutil_closesocket instead.
  Added some GCC specific options.
  Link libm on unix platforms.
  Generate a dummy evconfig-private.h so things build properly.
  More work on adding tests to CMake project
  Add all tests and benchmarks to CMake project.
  Initial CMake commit.
  Fix non-C89 variable declaration.
  Fix non-C89 variable declaration.
  Rename flush_outdated_host_addresses to clear_host_addresses
  bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated addresses
  bug fix for issues #293 evdns_base_load_hosts doesn't remove outdated adresses
  Clarifications in response to merge req. comments
  start writing a changelog for 2.1.4-(beta?)
  update the 2.0 changelog
  Add an option to trigger bufferevent event callbacks
  Add an option to trigger bufferevent I/O callbacks
  Add watermark introspection
  Document deferred eventcb behaviour
  Fix a typo
  Try another doxygen tweak
  Small doxygen tweaks
  Allow registering callback for parsing HTTP headers
  Add a variant of evhttp_send_reply_chunk() with a callback on evhttp_write_buffer()
  Avoid redundant invocations of init_extension_functions for IOCP
  regress_http: add tests for evhttp_connection_get_addr()
  http: implement new evhttp_connection_get_addr() api.
  Tweak indentation
  regress_main: logging all if env EVENT_DEBUG_LOGGING_ALL isset
  add a http default content type option
  Fix another arc4random_buf-related warning
  Fix a compiler warning when checking for arc4random_buf linker breakage.
  rpcgen: Generate regress.gen.[c,h] in build rather than src dir
  Avoid racy bufferevent activation
  Fix reinit of fds with EV_WRITE but not EV_READ.
  Check CLOCK_MONOTONIC_* at runtime if needed.
  Really remove RNG seeds from the stack
  Oops; revert testing code
  Avoid other RNG initialization FS reads when urandom file is specified
  Finish a sentence
  sample: drop uri_root from base_url in http-server.
  Add an assertion for another of the complaints from coverity. See 1b065d07df196
  test_evutil_rtrim: add another missing check.
  Finalize tests: add a missing check
  DNS tests: add a missing check
  Fix some crash-on-fail cases in DNS regression tests
  Add missing check to test_evbuffer_file_segment_add_cleanup_cb
  Fix a logic error in test_evbuffer_freeze
  Fix a (failure-only) null dereference in the unit tests
  Use void casts to suppress some "unchecked return value" warns
  sample/le-proxy: Fail more gracefully if opening listener fails
  Fix an unlikely but possible error case for http connections
  Move event_debug_note_teardown_ before mm_free.
  Add some assertions to please coverity.
  Fix compilation
  Add evutil_secure_rng_set_urandom_device_file
  Remove an unreachable return statement in minheap-internal.h
  Avoid leaking segment mappings when offset is not a page multiple
  Add checks for evhttp_connection_get_server() in unit tests.
  Add evhttp_connection_get_server().
  Add Maxime Henrion to README
  libevent/win32_dealloc() : fix sizeof(pointer) vs sizeof(*pointer)
  Pass and return const for bufferevent_get_token_bucket_cfg
  Add function to fetch underlying ratelimit cfg
  We should return after arc4random_buf()
  Don't use return since return type is void and build error occurs using clang
  Added event_base_get_num_events()
  Document that arc4random is not a great cryptographic PRNG.
  When we seed from /proc/sys/kernel/random/uuid, count it as success
  restore the comment
  Fix SEGFAULT after evdns_base_resume if no nameservers installed.
  Actually use the log facility for reporting evdns problems.
  Use windows vsnprintf fixup logic on all windows environments
  Remove a debugging assert that should not have been left in
  Fix locking in bufferevent_get_options_().
  Fix a double close() bug in evhttp when the underlying bufferevent uses BEV_OPT_CLOSE_ON_FREE.
  Avoid redundant syscall if making a socket cloexec twice
  Avoid redundant syscall to make a nonblocking socket nonblocking
  If evsel->del() fails, don't leave the evmap in an inconsistent state.
  Fix dns/leak_resume_send_err test.
  Add tests for evdns_base_resume().
  Fix SEGFAULT after evdns_base_resume if no nameservers installed.
  Whoops. It is gdi.lib, not gdi32.lib. (github issue #61)
  Missed lock acquire/release in event_base_cancel_single_callback_()
  Fix test compilation with nmake: add the gdi.lib dependency
  Checking request nameserver for NULL, before using it.
  Bump version to 2.1.3-alpha-dev
  Add regress_finalize to makefile.nmake
  Set a release date
  Make http/connection_retry off-by-default
  Fix a windows compilation regression
  Fix a bug in fixing a bug in out-of-tree test-dumpevents
  Make regress_finalize work with malloc replacement disabled
  Fix some out-of-tree build bugs
  Incremement version to 2.1.3-alpha
  Add acknowledgements to readme
  Start editing the changelog for 2.1.3-alpha
  Mark the finalize stuff as experiemental in case it needs to change
  Start a changelog for Libevent 2.0.22-stable
  Clarify an important point about event_base_foreach_event()
  Fix a bug in the new main/event_foreach test
  More unit tests for initializing common timeouts.
  A test for event_get_assignment()
  Unit tests for event_base_gettimeofday_cached() and event_base_update_cache_time()
  New tests for event_base_foreach_event()
  New test for active_later->active transition on event_active
  Remove a no-longer-true XXXX comment.
  Make the event_finalize* functions return an error code
  More documentation for finalization feature
  Remove bufferevent_del_generic_timeout_cbs as now unused
  Always run pending finalizers when event_base_free() is called
  Use finalization feature so bufferevents can avoid deadlocks
  Add some verbose notes to bufferevent unit tests
  Implement event_finalize() and related functions to avoid certain deadlocks
  Make all tests pass under EVENT_DEBUG_MODE=1
  Drop extra header http_struct.h from regress_http.c
  Add test for EVREQ_HTTP_REQUEST_CANCEL into http_cancel_test()
  Add new error_cb for actual reporting of HTTP request errors.
  Fix another warning introduced in 0c6ec5d8
  Fix a warning introduced in 0c6ec5d8
  evdns: New flag to make evdns not prevent the event loop from exiting
  event_base_update_cache_time should be a no-op if the loop isn't running
  https-client: code cleanup
  Add a test with an active_later event at event_base_free time.
  Another tweak to https-client.c
  Remove http_struct.h usage in sample/https-client.c
  Add an environment variable (EVENT_DEBUG_MODE) to run unit tests in debug mode
  Do not build strlcpy.c when it will have no code.
  Specify return behavior in header for evbuffer_pullup() in corner case
  Fix a typo in a comment in buffer.h. Spotted by Alt_F4
  build test/test-script.sh on systems with a less-featureful $<
  Make --disable-libevent-regress work again
  POST supported, args supported
  Double-check next timeout when adding events
  Test: decoding just part of string with evhttp_decode_uri_internal()
  Move prototype of evhttp_decode_uri_internal() to http-internal.h
  uri decode: changed the test for the existence of the next character
  uri decode: fix for warning "use of uninitialised value"
  pull in wildcard matching code from cURL
  avoid sign mismatch warning in openssl_hostname_validation.c
  use iSECPartners code to validate hostname in certificate
  use Debian's default root certificate location
  better handling of OpenSSL errors
  https-client was putting newlines at 256-byte boundaries
  use ${OPENSSL_LIBS} instead of -lssl -lcrypto
  Add sample/https-client.c, an example of stacking evhttp as a client on top of bufferevent_ssl.
  test filling up the hash table a bit
  use hashtable instead of linked list to cache winsock errors
  make sure caching works, and we don't leak memory
  use FormatMessage for winsock errors
  a program to print out the error strings for winsock errors
  fix #73 and fix http_connection_fail_test to catch it
  Unit test for event_remove_timer with EV_PERSIST.
  Make event_remove_timer behave correctly with persistent timers
  Avoid using $(top_srcdir) in TESTS.
  Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat
  Avoid using top_srcdir in TESTS-new automakes do not like this
  Rename configure.in to configure.ac to appease newer autoconfs
  Use AC_CONFIG_HEADERS in place of AM_CONFIG_HEADERS for autmake 1.13 compat
  "buffer" spelling
  remove all exes on "make clean", not just regress.exe
  Fix a locking error in bufferevent_socket_get_dns_error.
  Preliminary changes for Minix3.
  Add regress test ipv6_for_domain.
  Implement EVUTIL_ERR_IS_EAGAIN on windows.
  Fix ipv6 support for http. When URL contain domain, not IP address.
  Fix a mistake in evbuffer_remove() arguments in example http server code
  fix some hinky indentation in evhttp_make_request
  Fix typo : Dispatching instead of Dispaching
  event_base_active_by_fd
  Backport libevent to vanilla Autoconf 2.59 (as used in RHEL5)
  Fix missing AC_PROG_SED on older Autoconfs
  When EWOULDBLOCK is not EAGAIN, treat it as equivalent to it
  Fix harmless clang enum warning
  Fix comment to refer to sample/include.am correctly
  Avoid double-close on getsockname error in evutil_ersatz_socketpair
  Avoid leaking fds on evconnlistener with no callback set
  Fix cut-and-paste err in whatsnew-2.1
  minor documentation typos
  Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled
  Increment version to 2.0.21-stable-dev
  Increment version to 2.1.2-alpha-dev
  Fix a bug when running "make verify" out-of-tree
  Clean up and clarify a little more documentation
  Make the argument to bufferevent_get_priority const
  Avoid defining recommended functions in terms of deprecated ones
  Update "what's new in Libevent 2.1"
  Bump versions to 2.1.2-alpha
  Update changelog for 2.1.2-alpha
  Update ChangeLog-2.0
  Fix a gcc warning in rtrim test
  Fix a warning when building without threading.
  Increment libtool version for 2.0.21 too
  Increment version to 2.0.21-stable
  Changelog for 2.0.21-stable
  Make ssl version check in unit tests work
  avoid valgrind false positive by zeroing epoll_event
  Make bufferevent_set_timeouts(bev, NULL, NULL) have plausible semantics
  Add an event_remove_timer() to remove timer on an event without deleting it
  Fix a couple of compile warnings in the unit tests
  Avoid crash when event_pending() called with no event_base set on event
  Use EVUTIL_SOCKET_ERROR() wrapper to save/restor errno in evhttp_connection_fail_
  add evhttp_request_get_response_code_line
  Move evutil_rtrim_lws_ to evutil.c where it belongs
  Remove internal ws from multiline http headers correctly
  Remove trailing tabs in HTTP headers as well.
  Clean up rtrim implementation
  ignore LWS after field-content in headers
  Use correct openssl libs and includes in pkgconfig file
  remove stray 'x' so print_err will compile when uncommented
  Make rpcgen_wrapper.sh work on systems without a "python2" binary
  Add a unit test in which an event is created with event_base_once() but never fires
  Free dangling event_once objects on event_base_free()
  Warn when openssl version in unit test mismatches compiled version.
  Fix renegotiation test to work around openssl 1.0.1 bug
  Use the same CFLAGS for openssl when building unit tests as with libevent
  preserve errno in evhttp_connection_fail_ for inspection by the callback
  Fix event_dlist definition when sys/queue not included
  Clean up unit test for evbuffer_file_segment_add_cleanup_cb a little
  Add a new callback to get called on evbuffer_file_segment free
  Fix compilation on mingw64 with -DUSE_DEBUG
  Fix a few mingw64 incompatibilities introduced since 2.0
  Fix some warnings found cross-compiling with mingw32
  Compile without warnings on mingw64
  Close IOCP listener socket on free when LEV_OPT_CLOSE_ON_FREE is set
  fix a few trivial documentation typos
  Use python2 rather than python
  Use python2 rather than python
  No need to reserve space if reading is suspended.
  Stop looping in "consider_reading" if reading is suspended.
  Fix typo : events instead of evets
  FIx another memleak on OOM in evdns
  Avoid a memory-leak on OOM in evdns.
  Add missing return value in event_base_foreach_event
  Don't discard SSL read event when timeout and read come close together
  Tweak patch for event_base_foreach_event()
  Expose event_base_foreach_event() as a public API.
  Prevent reference leak of bufferevent if getaddrinfo fails.
  Rename configure.in to configure.ac.
  We now require automake 1.9 or later. Modernize!
  Fix handling of no-python case for nonrecursive make
  Be quiet when making regress.gen.[ch]
  New --quiet option for event_rpcgen.py
  Make quiet build even quieter
  Rename subordinate Makefile.ams to include.am
  Switch to non-recursive makefiles
  Enable silent build rules by default. Override with V=1
  Use newer syntax for autoconf/automake init
  Increment version to 2.0.20-stable-dev
  Update ChangeLog-2.0
  Add a date to the changelog
  Increment version to 2.0.20-stable
  Initial changelog and credits for 2.0.20
  Add missing implementation for event_enable_debug_logging
  Rename event_enable_lock_debuging() to ..._debugging()
  Correctly invoke callbacks when a SSL bufferevent reads some and then blocks.
  Avoid test -e; older shs don't have one.
  Add deferred_cb_skew to list of timing-dependent tests
  Avoid unused-var warning on systems with clock_gettime but without CLOCK_MONOTONIC_COARSE
  Add explicit AC_PROG_SED to configure.in so all autoconfs will expose $(SED)
  Fix an unused variable warning on *BSD.
  Avoid segfault on weird timeout during name lookup.
  Extract common error-handling code in evconnlistener_new_bind
  Avoid double-free on error in evbuffer_add_file. Found by coverity.
  Check return value when using LEV_OPT_DEFERRED_ACCEPT. Found by coverity
  Check more setsockopt return values when binding sockets. Found by coverity
  memset sockaddr_in before using it. Found by coverity.
  Move assignment outside tt_assert in ssl unit tests. Appeases coverity.
  Add checks to various return values in unit tests. Found by coverity
  Avoid possible needless call to writev. Found by coverity.
  Remove unused variable; spotted by coverity
  Fix a shadowed variable in addfile_test_readcb; found by coverity
  Avoid memory leak in test_event_calloc unit test; found by coverity
  Add checks for functions in test-ratelim.c; found by Coverity
  Avoid more crashes/bad calls in unit tests; found by coverity
  Add some missing null checks to unit tests; found by coverity
  Fix resource leaks in the unit tests; found by coverity
  Fix various check-after-dereference issues in unit tests: found by coverity
  Set umask before calling mkstemp in unit tests. Found by coverity
  Fix another possible uninitialized read in dns regression tests. Found by coverity.
  Fix possible uninitialized read in dns regression tests. Found by coverity.
  Remove deadcode in http regression tests. Found by coverity.
  Add process.h include to evutil.c for _getpid
  Fix tinytset_skip to work with new tinytest_set_flag_ signature
  Fix compile error in win32 listener.c
  Fix a memory leak on error in evhttp_uriencode
  Win32: avoid crash when waiting forever on zero fds.
  Additional comments about OPENSSL_DIR variable, prompted by Dave Hart
  attempt to support OpenSSL in Makefile.nmake
  Make load-dependent monotonic timer tests off-by-default
  Avoid (unlikely) overflow in bench_httpclient.c
  Check return value of write() in regress.c
  Make all tests that hit the network disabled by default
  Update to latest tinytest (911b4f0349377)
  Make test_evutil_monotonic a little more tolerant
  Make th_base_lock nonrecursive
  remove a now-unused var in thread_deferred_cb_skew test
  Avoid a resource leak on error in http client benchmark
  Simplify and correct evutil_open_closeonexec_
  Avoid giving a spurious warning when timerfd support is unavailable
  Make event_pending() threadsafe.
  Add GCC annotations so that the vsprintf functions get checked properly
  Make the Makefile.nmake warning slightly less dire
  Add evutil_time.obj to Makefile.nmake
  Fix a couple of memory leaks (found with Valgrind).
  Fix a comment in test-fdleak after 077c7e949.
  Correctly check for arc4random_buf
  check for arc4random_buf at runtime, on OS X
  Make it more clear that NOLOCK means "I promise, no multithreading"
  Add caveat to docs about bufferevent_free() with data in outbuf
  Be more clear that LEV_OPT_DEFERRED_ACCEPT has tricky prereqs
  Remove unnecessary code in configure.in.
  Add an event_base_loopcontinue() to tell libevent to rescan right away
  Restore our priority-inversion-prevention code with deferreds
  Give event_base_process_active a single exit path
  Make event_base_getnpriorities work with old "implicit base" code
  Add a bufferevent_get_priority() function
  New event_get_priority() function to return an event's priority
  Replace more deferred_cb names with event_callback
  Replace deferred_cbs with event_callback-based implementation.
  event_base_assert_ok: check value of event_active_count for correctness
  Add "active later" event_callbacks to supersede deferred
  Remove the unused bits from EVLIST_ALL
  Refactor the callback part of an event into its own event_callback type
  Bump version to 2.0.19-stable-dev
  Increment version to 2.0.19-stable
  Oops; fix the *right* windows compile issue
  Fix win32 build issues: sleep, pid_t
  Start changelog for 2.0.19-stable
  Fix evdns build with threads disabled
  When retransmitting a timed-out DNS request, pick a fresh nameserver.
  Make some evdns.c debug logs more verbose
  dns-example.c can now take a resolv.conf file on the commandline
  Correctly handle running on a system where accept4 doesn't work.
  Work-around a stupid gcov-breaking bug in OSX 10.6
  Fixed potential double-readcb execution with openssl bufferevents.
  If a higher-priority event becomes active, don't continue running events of the current priority.
  Generate event-config.h with a single sed script
  Generate event-config.h with a single sed script
  When PRECISE_TIMERS is set with epoll, use timerfd for microsecond precision
  Improve the monotonic-time unit test: make it check the step size
  Simple unit tests for monotonic timers
  Implement fast/precise monotonic clocks on Windows
  Add EVENT_PRECISE_TIMER environment var for selecting precise-but-slow timer
  Refactor monotonic timer handling into a new type and set of functions; add a gettimeofday-based ratcheting implementation
  Split out time-related prototypes into time-internal.h
  Split out time-related evutil functions into a new evutil_time.c
  Split long lists in Makefile.am into one-item-per-line
  Shave 700 msec off the persistent_timeout_jump test
  If time has jumped so we'd reschedule a periodic event in the past, schedule it for the future instead
  Refactor event_persist_closure: raise and extract some common logic
  remove redundant DNS_ERR_CANCEL check, move comment
  cancel the probe request when the server is freed, and ignore cancelled probe callbacks
  Note that make_base_notifiable should not be necessary
  Implement a GetTickCount-based monotonic timer for Windows
  On Linux, use CLOCK_MONOTONIC_COARSE by default
  EVENT_BASE_FLAG_PRECISE_TIMER indicates we want fine timer precision
  Move use_monotonic and friends into event_base
  Work-around a stupid gcov-breaking bug in OSX 10.6
  Replace pipe-based notification with EVFILT_USER where possible
  Do not track use_monotonic field when is no monotonic clock
  Use mach_absolute_time() for monotonic clock support on OSX.
  Tweak the new evutil_weakrand_() code
  Change evutil_weakrand_() to avoid platform random()
  Simplify test.sh code significantly.
  Increment the version to 2.1.1-alpha-dev
  Backport: provide EVENT_LOG_* names, and deprecate _EVENT_LOG_*
  fix some typos in the 2.1 changelog
  Bump the version to Libevent 2.1.1-alpha
  Fix the website URL in the readme
  Try to finalize changelog situation for 2.1.1-alpha
  Add pending names to the README; add more entries to the changelog
  Include ws2tcpip.h from util.h to get EAI_* definitions.
  Fix some compilation warnings with msvc
  Oops; fix a merge conflict that got committed into event2/event-config.h.  Now msvc builds work again.
  Decrease MAX_REQUESTS in test-fdleak
  Include util-internal.h earlier in test-dumpevents to fix solaris build
  Fix compilation with mm-replacement disabled.
  make event_base_get_running_event build with threads disabled.
  Make check-dumpevents work with out-of-tree builds
  Make check-dumpevents.py actually get included in the tarballs
  Configure with gcc older than 2.95
  Missing ) in bufferevent_ratelim.c comment. Found by rransom
  Add missing ) to changelog; spotted by rransom
  Add a missing name to the readme.
  Increase duration and tolerance on http/connection_retry test
  Fix a compilation error with MSVC 2005 due to use of mode_t
  Temporarily disable event_queue_reinsert_timeout
  Make libevent_global_shutdown() idempotent
  Updates for whatsnew-2.1.txt
  Require at least Python 2.4 for check-dumpevents.py.
  Fix a typo in the bufferevent documentation
  Test more bufferevent_ratelim features
  Add event_base_get_running_event() to get the event* whose cb we are in
  More coverage on reinsert_timeout tests
  Make test-dumpevents build on Linux
  Fix a nasty bug in event_queue_reinsert_timeout()
  Add a unit test for event_base_dump_events()
  event_base_dump_events: Report active events tersely, and note internal events
  Fix compilation of evutil_rand on osx
  Fix typo in whatsnew-2.1.txt
  Use libevent_global_shutdown() to clean up in unit tests.
  Distribute whatsnew-2.1.txt.
  Fix another bug from rebase of libevent_global_shutdown patch
  Write a first draft of whatsnew-2.1.txt
  Tweak changelog for 2.1 even more
  Add more things to the 2.1 changelog
  Add an empty changelog section for 2.0.19-stable
  Bump version to 2.0.18-stable-dev
  Bump version to 2.0.18-stable
  Add credits to README
  Changelog for libevent 2.0.18-stable
  Add a new libevent_global_shutdown() to free all globals before exiting.
  event-read-fifo: Use EV_PERSIST appropriately
  Rename event-test.c to event-read-fifo.c.
  On Unix, remove event.fifo left by sample/event-test.c.
  Fix up sample/event-test.c to use newer interfaces and make it actually work.
  Now that event_assign() special-cases event_self_cbarg(), event_new() can stop
  Add a test for using event_self_cbarg() with event_assign().
  event_self_cbarg() works with event_assign() for consistency with event_new().
  Properly zero the kevent in kq_setup_kevent()
  Don't do clang version detection when disabling some flags
  Add a regression test for event_self_cbarg().
  Update sample/signal-test.c to use the new event_self_cbarg().
  Add event_self_cbarg() to be used in conjunction with event_new().
  event_rpcgen.py now prints status information to stdout and errors to stderr.
  Add netinet/in.h include to fix test-fdleak on openbsd
  Restore accidentally disabled nanosleep implementation of evutil_usleep.
  Fix doxygen to use new macro conventions
  Clean up lingering _identifiers.
  Apply the naming convention to our EVUTIL_IS* functions
  Have all visible internal function names end with an underscore.
  Fix some problems introduced by automated identifier cleanup script
  Make event_rpcgen.py output conform to indentifier conventions, more
  Fix all identifiers with names beginning with underscore.
  Make the generated event-config.h use correct include guards
  Stop referring to an obsolete include guard in bench_http.h
  Make event_rpcgen.py output conform to indentifier conventions
  Convert include-guard macro convention to avoid reserved identifiers
  Generate event-config.h using the correct macros.
  Convert event-config.h macros to avoid reserved identifiers
  Make event-config.h depend on Makefile.am
  Check for NULL return on win32 mm_calloc, and set ENOMEM.
  Do not use system EAI/AI values if we are not using the system getaddrinfo.
  Replace sole internal user of socklen_t with ev_socklen_t
  Fix evmap to work with HT-backed IO maps again.
  evutil_accept4() should take ev_socklen_t
  test-fdleak: Avoid perror, since it does not capture windows socket errors
  remove debugging prints
  test-fdleak: Call event callbacks event_cb.
  Remove fixed port from test-fdleak, so two instances can run in parallel
  Remove an unsafe programming practice from test-fdleak; add XX comments
  Try and fix compilation and running of test-fdleak on Windows.
  Allow compilation on machines that do not have setrlimit.
  Simply test-fdleak by running server & client sockets in the same event loop.
  Add a new test: test-fdleak which tests for fd leaks by creating many sockets.
  If accept4 is absent, fall back to accept.
  Avoid leaking fd in evutil_socket() by Linux.
  Remove the last vestiges of _EVENT_USE_EVENTLIST
  Add doxygen for event_base_dump_events
  Refactor the functions that run over every event.
  Fix an "unused return value" warning on write() in signal handler
  Start work on a 2.1 changelog and whats-new
  Add another caveat to the TCP_DEFER_ACCEPT documentation
  Support TCP_DEFER_ACCEPT sockopts for listeners
  Stop crashing in evdns when nameserver probes give a weird error
  Changed OPENSSL_LDFLAGS to OPENSSL_LIBADD
  Added OPENSSL_LDFLAGS env variable which is appended to SSL checks.
  If open(O_CLOEXEC) fails, fall back to fcntl(CLOEXEC)
  Fix up usage of reserved identifiers in ht-internal.h
  Port changes from Tor for ht-internal.h
  Invert the sense and the name of HT_CACHE_HASH_VALUES
  Synchronize with upstream tinytest
  Merge in a punctuation fix from upstream tinytest
  Move libevent 1.x headers to include/, to put all public headers in one place.
  Tweak the evutil_open_closeonexec patch to work on windows, old unixes.
  Make uses of open() close-on-exec safe by introducing evutil_open_closeonexec.
  Add a bufferevent_getcb() to find a bufferevent's current callbacks
  Also make win32select.c conditional for IDE users
  Add an empty section to the changelog for 2.0.18-stable
  Correct a name in the credits. oops
  Bump version to 2.0.17-stable-dev
  Update the credits in the readme
  Finalize the changelog
  Fix compilation on osx
  Update copyright notices to 2012
  Bump version to 2.0.17-stable
  Prefer epoll_create1 on Linuxen that have it
  Save some syscalls when constructing a socket for a bufferevent
  Save some syscalls when creating evdns sockets
  Save syscalls when constructing listener sockets for evhttp
  Use pipes for telling signals to main thread when possible
  Use a wrapper function to create the notification pipe/socketpair/eventfd
  The LEV_OPT_CLOSE_ON_EXEC flag now applies to accepted listener sockets too
  Minimize syscalls during socket creation in listener.c
  Infrastructure for using faster/fewer syscalls when creating sockets
  In the kqueue backend, do not report EBADF as an EV_READ
  Avoid crash when freeing event_iocp and using event_set_mem_functions
  Put #ifdef around some files to support alternate build systems.
  Bring the changelog up to date
  Loop on filtering SSL reads until we are blocked or exhausted.
  Replace more C99/C++ comments with oldschool /* */ comments
  Use C-style comments in C source files (for compatibility with compilers such as xlc on AIX).
  evdns: fix a bug in circular-queue implementation
  Fix a compile warning in event_reinit
  Remove the eventqueue list and the ev_next pointers.
  Make test-changelist faster
  Check changelist as part of checking representational integrity
  Restore fast-path event_reinit() for slower backends
  Make event_reinit() more robust and maintainable
  Better workaround for Linux 3.2 edge-triggered epoll bug
  Do a memberwise comparison of threading function tables
  When including an -internal.h header outside the main tree, do so early
  Allow more slop in deferred_cb_skew test; freebsd needs it
  Remove a couple of now-unused variables
  Make event_base integrity check work on windows
  Start writing a changelog for 2.0.17-stable
  Use test_timeval_diff_eq more consistently
  Make regression tests run over 3x faster.
  New evhttp function to adjust initial retry timeout
  Reduce the timeout in the main/fork test.
  Add an (internal) usleep function for use by unit tests
  Oops:remove an accidentally committed "sleep(1)" in a unit test
  Workaround in the unit tests for an apparent epoll bug in Linux 3.2
  Fix a fd leak in event_reinit()
  Fix a list corruption bug when using event_reinit() with signals present
  Check event_base correctness at end of each unit test
  Fix compilation of windows evutil_check_ifaddrs
  Add function to check referential integrity of an event_base
  Force strict validation of HTTP version in response.
  Suppress a gcc warning from ignoring fwrite return in http-sample.c
  Fix a race condition in the dns/bufferevent_connect_hostname test.
  Make evconnlistener work around bug in older Linux when getting nmapped
  Remove bogus casts of socket to int before calling ev_callback
  Backport evhttp_connection_get_bufferevent to Libevent 2.0
  Slightly clarify evbuffer_peek documentation
  Fix behavior of evbuffer_peek(buf,-1,NULL,NULL,0)
  Remove some accidentally-committed debugging code
  whitespace fixes
  check for sysctl before we use it
  Split up extra-long AC_CHECK_FUNCS/HEADERS lines in configure.in
  Use getifaddrs to detect our interfaces if possible
  Changed use of refcounts to make sure referenced chains are freed in all cases.
  Add evbuffer_copyout_from to copy data from the middle of a buffer
  Bypass event_add when using event_base_once() for a 0-sec timeout
  Fix a silly compilation error with the sun compiler
  Be absolutely sure to clear pncalls before leaving event_signal_closure
  fix windows compilation issues with new file segment code
  Fix two issues in the allow_dirty_shutdown code.
  Tweak allow_dirty_shutdown documentation
  Allow users to set allow_dirty_shutdown
  bev_ssl: Be more specific in event callbacks. evhttp in particular gets confused without at least one of BEV_EVENT_{READING|WRITING}.
  Increment version to 2.0.16-stable-dev
  Increment version to 2.0.16-stable
  Revise 2.0.16-stable changelog
  add comment to new consider_reading code
  Avoid spinning on OpenSSL reads
  Move SSL rate-limit enforcement into bytes_to_read()
  Refactor amount-to-read calculations in buffervent_ssl consider_reading()
  Revert "Avoid potential SSL read spinlocks"
  Revert "openssl bufferevent has the same issue with writing as prior commit."
  Add new entries to changelog, new credits to README
  Fix DNS memleak checks when running with malloc-replacement/debugging disabled
  Don't try to make notifiable event_base when no threading fns are configured
  Warn when unable to construct base because of failing make_base_notifiable
  openssl bufferevent has the same issue with writing as prior commit.
  Avoid potential SSL read spinlocks
  unit tests for EVBUFFER_EOL_NUL
  New EVBUFFER_EOL_NUL to read NUL-terminated strings from an evbuffer
  Tweaks, fixups, and comments on evbuffer_add_iovec
  Added evbuffer_add_iovec and unit tests.
  Improve win32 behavior of dns-sample.c codex
  Fix typo in whatsnew-2.0.txt
  Use the free-trailing-chains function in evbuffer_insert_chain too
  Fix an evbuffer crash in evbuffer_remove_buffer()
  improve test to remove at least one buffer from src
  unit test for remove_buffer bug
  Fix compile warning from saying event2/*.h inside a comment
  epoll: close fd on alloc fail at initialization
  evhttp: Add evhttp_foreach_bound_socket.
  Update copyright dates to 2011.
  New event_base_update_cache_time() to set cached_tv to current time
  Add argument checks to some memory functions in `event.c'.
  Add note about evhttp_send_reply_end to its doxygen
  More detailed message in case of libevent self-debugging failure.
  Style and comment tweaks for dns/leak* tests
  Test for commit aff6ba1
  Empty DNS reply with OK status is another way to say NODATA.
  Tests for 94fba5b and f72e8f6
  fixed typo
  added comments to describe refcounting of multicase chains
  Bump version to 2.0.15-stable-dev
  Credit a patch from a one-named user
  Increment version to 2.0.15-stable
  Add changelog for 2.0.15-stable
  bufferevent: Add functions to set/get max_single_read/write values.
  Make evbase_priority_init() and evbase_get_npriorities() threadsafe
  Add event_base_get_npriorities() function.
  refer to non-deprecated evdns functions in comments
  Make evbuffer_file_segment_types adaptable
  New EVLOOP_NO_EXIT_ON_EMPTY option to keep looping even when no events are pending
  Allow evconnlistener to be created in disabled state.
  Fix some "value never used" warnings with gcc 4.6.1
  Make write-checking fixes use tt_fail_perror
  Fixed compiler warnings for unchecked read/write calls.
  Prefer mmap to sendfile unless a DRAINS_TO_FD flag is set. Allows add_file to work with SSL.
  Make evbuffer callbacks get the right n_added value after evbuffer_add
  Use _SOURCES, not _sources, in sample/Makefile.am
  le-proxy and regress depend on openssl directly
  Add DNS_ERR_NODATA error code to handle empty replies.
  Fix docstring in dns.h
  Build with large-file support on platforms where it matters
  Clarify event_enable_debug_logging a little
  Remove calls to deprecated bufferevent functions from evhttp.c
  Add evhttp callback for bufferevent creation; this lets evhttp support SSL.
  Implement --enable-gcc-hardening configure option
  Make gcc warnings on by default, and --enable-gcc-warnings only add -Werror
  When a signal callback is activated to run multiple times, allow event_base_loopbreak to work even before they all have run.
  DNS: add ttl for negative answers using RFC 2308 idea.
  Make --enable-verbose-debug option match its help text
  Increment version to 2.0.14-stable-dev
  Credit new contributors for 2.0.14-stable
  Pick a release date for the changelog
  Bump version to 2.0.14-stable
  Use SIG_IGN instead of a do-nothing handler for signal events with kqueue
  Fix OSX build: $(OPENSSL_INCS) needs to be after $(AM_CPPFLAGS).
  clear read watermark on underlying bufferevent when creating filtering bev to fix potentially failing fragmented ssl handshakes
  Checkpoint changelog entries for 2.0.14-stable
  Correctly terminate IO on an async bufferevent on bufferevent_free
  Have test-ratelim.c support IOCP
  Make IOCP rate-limiting group support stricter and less surprising.
  Support negative arguments to _bufferevent_decrement_(read/write)_buckets()
  We need AM_CPPFLAGS when compiling bufferevent_openssl.c
  Use pkg-config (if available) to handle OpenSSL.
  Provide the autoconf m4 macros for the new OpenSSL via pkg-config stuff.
  Cleanup on 7c11e51e1ab: fix strtol usage
  Cleanup on 7c11e51e1ab: restore c90 declaration compliance
  Clean up some problems identified by Coverity.
  Make rate limiting work with common_timeout logic
  Make overlapped reads result in evbuffer callbacks getting invoked
  IOCP: don't launch reads or writes on an unconnected socket
  Try to fix 'make distcheck' errors when building out-of-tree
  Make the priority inversion code use gettime(), not evutil_gettimeofday()
  Make max_dispatch_interval able to apply only to low-priority events
  Optimization in event_process_active(): ignore maxcb & endtime for highest priority events.
  Make sure max_dispatch_callbacks is never negative
  Add event_config function to limit time/callbacks between calls to dispatch
  Solaris sendfile: correctly detect amount of data sent
  Fix request_finished memory leak with debugging turned on.
  Fix evsig_dealloc memory leak with debugging turned on.
  Another docstring fix.
  more event dbg updates
  Fix handling of group rate limits under 64 bytes of burst
  added timeout debug logs to include event ptr.
  Added usec debug in another area for debug
  Debug addition for printing usec on TIMEOUT debugging.
  Ignore deprecation warnings on OS X
  prevent nested multicast references, reworked locking
  support adding buffers to other buffers non-destructively
  Allow OS-neutral builds for platforms where some versions have arc4random_buf
  changed to --enable-verbose-debug
  Propagate errors on the underlying bufferevent to the user.
  Added --enable-event-debugging in configure
  Add missing break to evhttp_parse_request_line
  Fix typo in event_compat.h comments.
  Bump version to 2.0.13-stable-dev
  Bump version to 2.0.13-dev
  acks and changelog for 2.0.13-stable
  Give Makefile.am echo a non-null argument. msys likes this
  Fix a warning in evutil_rand when building with threads disabled
  Use AM_CPPFLAGS in sample/Makefile.am, not AM_CFLAGS
  Add doxygen to .gitignore
  Fix up test_evutil_snprintf
  Fix a test-call accidentally in the last commit
  More abstraction in test.sh
  Update Doxyfile to produce more useful output
  Revise the event/evbuffer/bufferevent doxygen for clarity and accuracy
  Use "unlimited select" on OSX so that we can have more than FD_SETSIZE fds
  Fix select.c compilation on systems with no NFDBITS
  Speed up invoke_callbacks on evbuffers when there are no callbacks
  Fix bug in SSL bufferevents backed by a bev with a write high-watermarks
  Fix a few warnings on OpenBSD
  Fix AIX build issue with TAILQ_FOREACH definition
  Don't install event_rpcgen.py when --disable-libevent-install is used
  Set the special "not found" evbuffer_ptr consistantly.
  Don't break when building tests from git without python installed
  Improve evbuffer_ptr documentation
  Tweaks to return types with end-of-buf ptrs
  Allow evbuffer_ptr to point to position 0 in an empty evbuffer
  Allow evbuffer_ptr_set to yield a point just after the end of the buffer.
  Add failing test for evbuffer_search_range.
  Simplify windows commandname logic in tinytest
  Fix tinytest invocation from windows shell
  Use the correct printf args when formatting size_t
  Check if the `evhttp_new_object' function in `http.c' returns NULL.
  Report kqueue ebadf, epipe, and eperm as EV_READ events
  Replace an assertion for event_base_free(NULL) with a check-and-warn
  Add some missing checks for mm_calloc failures
  Remove a needless branch in evbuffer_drain()
  Fix a bug in the improved EOL_CRLF code
  Fix incorrect results from evbuffer_search_eol(EOL_LF)
  Bump version to 2.0.12-stable-dev
  tweak date on changelog
  Changelog and new credits for 2.0.12-stable
  Bump version to 2.0.12-stable.  Not release just yet
  Fix regress_ssl.c build on openbsd
  Fix windows file segment mappings
  Avoid a segfault when all methods are disabled or broken
  Try to squeeze a little more speed out of EVBUFFER_EOL_CRLF
  cygwin: make it possible to build DLLs
  Roughly 20% speed increase when line-draining a buffer using EVBUFFER_EOL_CRLF
  Fix a fencepost bug in the select backend
  Make the new http_connect_fail_test use a multicast addr, not broadcast
  InitializeCriticalSectionAndSpinCount requires _WIN32_WINNT >= 0x0403.
  Allow base-notification functions to exist without setting an fd
  Reenable main/many_events_slow_add for evport in 2.1
  evport: Remove artificial low limit on max events per getn call
  evport: don't scan more events in ed_pending than needed
  ...
83a8d4d
@azat azat added a commit to azat/libevent-deb that referenced this issue Oct 4, 2015
@azat azat Merge remote-tracking branch 'main/master' into 2.1.5-release-4
* main/master: (3033 commits)
  evthread: fix evthread_setup_global_lock_() for debug-lock with a real-lock case
  Fix checking for make_base_notifiable()
  test/regress_be: drop debug __asm__(int3) to fix arm build
  travis: add builds without debug mode into matrix
  event_debug_created_threadable_ctx_: fix compilation without debug mode
  test: fix bufferevent/bufferevent_pair_release_lock in debug mode
  test: fix bufferevent/bufferevent_pair_release_lock for freebsd
  Assume that ke_udata is an integer type on CloudABI.
  Add missing include of <netinet/in.h>.
  Include <sys/ioctl.h>, <sys/resource.h> and <sys/wait.h> optionally.
  Add a prototype for event_disable_debug_mode()
  http: export evhttp_connection_set_family()
  test/regress_be: bufferevent_enable() shouldn't call eventcb by it's own
  test/regress_be: introduce fake_listener_create()
  http: fix evhttp_request_own() by checking EVHTTP_USER_OWNED in more cases
  test/regress_http: cover evhttp_request_own()
  http: fix detecting EOF without write
  test/regress_http: cover write during read
  test/regress_http: verify that closecb will be called without multiple write
  test: run regress with EVENT_DEBUG_MODE=1 and without
  test/regress: fix bufferevent_pair_release_lock with EVENT_DEBUG_MODE
  sample/https-client: add -timeout option
  be_openssl: don't use *_auto() in do_handshake() we can't have fd == -1 there
  be_openssl: don't call set_open_callbacks() if fd == -1
  be_openssl: introduce be_openssl_auto_fd() helper
  be_openssl: introduce set_open_callbacks_auto()
  be_openssl: get rid off hackish "fd_is_set", to fix some corner cases
  test/regress_ssl: check events fd/pending after timeout triggered
  test/regress_ssl: cover case when server didn't up (failed with timeout)
  test/regress_ssl: covert that we can't change fd with underlying
  test/regress_ssl: cover that events (read/write) at finish not pending
  test/regress_ssl: cover fd manipulations
  test/regress_ssl: convert open_ssl_bufevs() to mask
  test/regress_ssl: convert client/server to mask too
  test/regress_ssl: cover "allow_dirty_shutdown"
  test/regress_ssl: convert regress_bufferevent_openssl() to bitmask
  Test against SO_REUSEADDR (along with _WIN32).
  tests/regress_ssl: drop duplicated assert
  Always define missing TAILQ functions from sys/queue.h
  Don't use BSD u_* types.
  Remove BSD-ism: TIMEVAL_TO_TIMESPEC().
  be: include all variations of headers for sockaddr_in6 struct
  http: eliminate warning about "socklen" in evhttp_connection_connect_()
  be: fix sockaddr_in6 type definition for win32
  sample/https-client: don't try to free uninitialized SSL
  sample/https-client: graceful exit with freeing memory (to make valgrind happy)
  https-client: correctly handle URLs with no path (like "https://host:port")
  sample/http-connect: don't use assert() to make it work with NDEBUG
  test/regress_http: initialize "dns_base" to avoid reading trash
  sample/http-connect: made it compatible with C90
  be_sock: bufferevent_socket_set_conn_address(): assert instead of silent no-op
  http: reuse connected address only with EVHTTP_CON_REUSE_CONNECTED_ADDR
  be_sock: sanity check in bufferevent_socket_set_conn_address()
  be: replace sockaddr_storage with sockaddr_in6 for conn_address
  be: we don't need to use getpeername() we we have conn_address
  be: replace conn_address by full struct instead of pointer
  test/http: cover retrying with saved conn_address by shutting down dns server
  http: use IP address that we got before (if any) during retrying
  bufferevent: move conn_address out from http into bufferevent
  be: make @sa const for bufferevent_socket_connect()
  util: make @sa const for evutil_socket_connect_()
  sample: add HTTP CONNECT tunnelling example using libevent http layer
  http: introduce evhttp_request_free_() helper
  http: introduce evhttp_is_request_connection_close() helper
  Updated gitignore
  Update dns-example.
  Update bench_httpclient.c
  *fix: bench_httpclient to support win32
  Set correct socklen for PF_INET6 sockaddr len
  Debug mode option to error on evthread init AFTER other event calls.
  Update README.md
  Update README.md
  Update README.md
  Update travis config for status updates
  Update README.md
  Use autotools for appveyor until cmake is fixed.
  Commented out a WIN32 threading / timing test for now
  Fix the link for appveyor OpenSSL installer (WIN32)
  Fix garbage value in socketpair util function, stdint?
  expose bufferevent_incref/decref (with fewer modifications)
  Call underlying bev ctrl SET_FD on filtered bufferevents
  Fix potential fd leak in listener_read_cb()
  tab
  fix the return value of event_deferred_cb_schedule_
  Fix mixed declarations and code (forbidden by ISO C90)
  Fix "function declaration isn’t a prototype"
  Forgot to install OpenSSL for appveyor
  Add support for appveyor.com windows CI
  This fixes a bug introduced in 27bd9faf498b91923296cc91643e03ec4055c230
  New function to get address for nameserver.
  changed strtotimeval signature as per #211
  Added cmake-generated files to ignore list.
  be_pair/regress: cover use of shared lock (lock/unlock/free)
  event_free_debug_globals_locks(): disable lock debugging
  evthread: evthreadimpl_disable_lock_debugging_() for libevent_global_shutdown()
  evthread: add evthread_get_{lock,condition}_callbacks() h