mirror of
https://github.com/cuberite/libevent.git
synced 2025-09-09 20:41:27 -04:00
Merge branch 'release-2.1.8-stable-pull'
* release-2.1.8-stable-pull: Bump version to 2.1.8-stable everywhere VERSION_INFO should me equal to library version Bump whatsnew-2.1 document Update ChangeLog for 2.1.8-stable README: update AUTHORS
This commit is contained in:
commit
e7ff4ef2b4
@ -73,7 +73,7 @@ set(EVENT_ABI_LIBVERSION
|
|||||||
set(EVENT_PACKAGE_VERSION
|
set(EVENT_PACKAGE_VERSION
|
||||||
"${EVENT_VERSION_MAJOR}.${EVENT_VERSION_MINOR}.${EVENT_VERSION_PATCH}")
|
"${EVENT_VERSION_MAJOR}.${EVENT_VERSION_MINOR}.${EVENT_VERSION_PATCH}")
|
||||||
|
|
||||||
set(EVENT_NUMERIC_VERSION 0x02010700)
|
set(EVENT_NUMERIC_VERSION 0x02010800)
|
||||||
|
|
||||||
# only a subset of names can be used, defaults to "beta"
|
# only a subset of names can be used, defaults to "beta"
|
||||||
set(EVENT_STAGE_NAME ${EVENT_VERSION_STAGE}
|
set(EVENT_STAGE_NAME ${EVENT_VERSION_STAGE}
|
||||||
|
38
ChangeLog
38
ChangeLog
@ -1,3 +1,41 @@
|
|||||||
|
Changes in version 2.1.8-stable (22 January 2017)
|
||||||
|
|
||||||
|
Libevent 2.1.8-stable, it contains openssl fixes for resetting fd and using
|
||||||
|
bufferevent_openssl_filter_new(). vagrant fixes, some build fixes, increased
|
||||||
|
timeout for some tests (to reduce number of failures due to timing issues),
|
||||||
|
date in RFC1123 format and running tests in parallel.
|
||||||
|
|
||||||
|
There are highlighted changes above.
|
||||||
|
|
||||||
|
Build fixes:
|
||||||
|
o Fix _FILE_OFFSET_BITS redinition (solaris/autotools) (336f3b11 Azat Khuzhin)
|
||||||
|
o util-internal: fix __func__ redefinition (netbsd) (253e7fa9 Azat Khuzhin)
|
||||||
|
o Fix signedness differ for iov_base (solaris) (2c62062e Azat Khuzhin)
|
||||||
|
o evutil_time: include <unistd.h> when there is only sleep()/usleep() (3e75194c Azat Khuzhin)
|
||||||
|
o http: fix formatter for pritnf for req->ntoread (osx) (1cbf26f6 Azat Khuzhin)
|
||||||
|
Testing environment:
|
||||||
|
o Merge branch 'automake-tests-parallel-v4' (*includes ci bits also*) (59e217df Azat Khuzhin)
|
||||||
|
Vagrant env fixes:
|
||||||
|
o vagrant/netbsd: missing libtool (9c9be399 Azat Khuzhin)
|
||||||
|
o vagrant/netbsd: more reliable way of installing packages (36da6877 Azat Khuzhin)
|
||||||
|
o vagrant/osx: use make instead of gmake (there is no gmake) (f7c70aef Azat Khuzhin)
|
||||||
|
o vagrant: add centos box (ca591c5b Azat Khuzhin)
|
||||||
|
Tests:
|
||||||
|
o test/dns: replace servname since solaris does not have "http" (d6bafbbe Azat Khuzhin)
|
||||||
|
o test/thread: netbsd is too slow, increase timeout for conditions_simple (3c7422fc Azat Khuzhin)
|
||||||
|
o test/dns: run async resolving after sync one (to avoid timeouts) (07862531 Azat Khuzhin)
|
||||||
|
o test/http: turn off some tests that based on backlog filling (falky) (26f416c1 Azat Khuzhin)
|
||||||
|
Bugfixes:
|
||||||
|
o Merge branch 'openssl-filter-fixes-v4' (83e0f43b Azat Khuzhin)
|
||||||
|
o Merge branch 'date-rfc1123' (68def435,4798de6c,4545807d Azat Khuzhin)
|
||||||
|
o Merge branch 'be-openssl-fd-reset-fix-v2' (86fa0070,32adf434 Azat Khuzhin)
|
||||||
|
o Merge branch 'openssl-1.1-init-fixes-v2' (18a161f0 Azat Khuzhin)
|
||||||
|
o Fix incorrect MIME type (23f9a20e johnsonlee)
|
||||||
|
Trivial fixes:
|
||||||
|
Documentation updates:
|
||||||
|
o Update README.md (3821cca1 Breaker)
|
||||||
|
|
||||||
|
|
||||||
Changes in version 2.1.7-rc (2 Novemer 2016)
|
Changes in version 2.1.7-rc (2 Novemer 2016)
|
||||||
|
|
||||||
Libevent 2.1.7-rc contains openssl 1.1 support, build fixes, CI improvements
|
Libevent 2.1.7-rc contains openssl 1.1 support, build fixes, CI improvements
|
||||||
|
@ -38,7 +38,7 @@ RELEASE = -release 2.1
|
|||||||
#
|
#
|
||||||
# Once an RC is out, DO NOT MAKE ANY ABI-BREAKING CHANGES IN THAT SERIES
|
# Once an RC is out, DO NOT MAKE ANY ABI-BREAKING CHANGES IN THAT SERIES
|
||||||
# UNLESS YOU REALLY REALLY HAVE TO.
|
# UNLESS YOU REALLY REALLY HAVE TO.
|
||||||
VERSION_INFO = 7:0:0
|
VERSION_INFO = 6:2:0
|
||||||
|
|
||||||
# History: RELEASE VERSION_INFO
|
# History: RELEASE VERSION_INFO
|
||||||
# 2.0.1-alpha -- 2.0 1:0:0
|
# 2.0.1-alpha -- 2.0 1:0:0
|
||||||
@ -71,6 +71,7 @@ VERSION_INFO = 7:0:0
|
|||||||
# 2.1.5-beta -- 2.1 5:0:0 (ABI changed slightly)
|
# 2.1.5-beta -- 2.1 5:0:0 (ABI changed slightly)
|
||||||
# 2.1.6-beta -- 2.1 6:0:0 (ABI changed slightly)
|
# 2.1.6-beta -- 2.1 6:0:0 (ABI changed slightly)
|
||||||
# 2.1.7-beta -- 2.1 6:1:0 (ABI changed slightly)
|
# 2.1.7-beta -- 2.1 6:1:0 (ABI changed slightly)
|
||||||
|
# 2.1.8-stable-- 2.1 6:2:0 (ABI changed slightly)
|
||||||
|
|
||||||
# ABI version history for this package effectively restarts every time
|
# ABI version history for this package effectively restarts every time
|
||||||
# we change RELEASE. Version 1.4.x had RELEASE of 1.4.
|
# we change RELEASE. Version 1.4.x had RELEASE of 1.4.
|
||||||
|
@ -423,5 +423,9 @@ fixing bugs:
|
|||||||
* Simone Basso
|
* Simone Basso
|
||||||
* Vlad Shcherban
|
* Vlad Shcherban
|
||||||
* Tim Hentenaar
|
* Tim Hentenaar
|
||||||
|
* Breaker
|
||||||
|
* johnsonlee
|
||||||
|
* Philip Prindeville
|
||||||
|
* Vis Virial
|
||||||
|
|
||||||
If we have forgotten your name, please contact us.
|
If we have forgotten your name, please contact us.
|
||||||
|
@ -274,7 +274,7 @@
|
|||||||
/* #undef EVENT__HAVE_WORKING_KQUEUE */
|
/* #undef EVENT__HAVE_WORKING_KQUEUE */
|
||||||
|
|
||||||
/* Numeric representation of the version */
|
/* Numeric representation of the version */
|
||||||
#define EVENT__NUMERIC_VERSION 0x02010700
|
#define EVENT__NUMERIC_VERSION 0x02010800
|
||||||
|
|
||||||
/* Name of package */
|
/* Name of package */
|
||||||
#define EVENT__PACKAGE "libevent"
|
#define EVENT__PACKAGE "libevent"
|
||||||
@ -331,7 +331,7 @@
|
|||||||
#define EVENT__TIME_WITH_SYS_TIME 1
|
#define EVENT__TIME_WITH_SYS_TIME 1
|
||||||
|
|
||||||
/* Version number of package */
|
/* Version number of package */
|
||||||
#define EVENT__VERSION "2.1.7-beta"
|
#define EVENT__VERSION "2.1.8-stable"
|
||||||
|
|
||||||
/* Define to appropriate substitue if compiler doesnt have __func__ */
|
/* Define to appropriate substitue if compiler doesnt have __func__ */
|
||||||
#define EVENT____func__ __FUNCTION__
|
#define EVENT____func__ __FUNCTION__
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
version: 2.1.7.{build}
|
version: 2.1.8.{build}
|
||||||
|
|
||||||
os: Visual Studio 2015
|
os: Visual Studio 2015
|
||||||
|
|
||||||
|
@ -27,7 +27,7 @@ macro(event_fuzzy_version_from_git)
|
|||||||
# set our defaults.
|
# set our defaults.
|
||||||
set(EVENT_GIT___VERSION_MAJOR 2)
|
set(EVENT_GIT___VERSION_MAJOR 2)
|
||||||
set(EVENT_GIT___VERSION_MINOR 1)
|
set(EVENT_GIT___VERSION_MINOR 1)
|
||||||
set(EVENT_GIT___VERSION_PATCH 7)
|
set(EVENT_GIT___VERSION_PATCH 8)
|
||||||
set(EVENT_GIT___VERSION_STAGE "beta")
|
set(EVENT_GIT___VERSION_STAGE "beta")
|
||||||
|
|
||||||
find_package(Git)
|
find_package(Git)
|
||||||
|
@ -5,7 +5,7 @@ dnl See LICENSE for copying information.
|
|||||||
dnl
|
dnl
|
||||||
dnl Original version Dug Song <dugsong@monkey.org>
|
dnl Original version Dug Song <dugsong@monkey.org>
|
||||||
|
|
||||||
AC_INIT(libevent,2.1.7-beta)
|
AC_INIT(libevent,2.1.8-stable)
|
||||||
AC_PREREQ(2.59)
|
AC_PREREQ(2.59)
|
||||||
AC_CONFIG_SRCDIR(event.c)
|
AC_CONFIG_SRCDIR(event.c)
|
||||||
|
|
||||||
@ -14,7 +14,7 @@ AM_INIT_AUTOMAKE
|
|||||||
dnl AM_SILENT_RULES req. automake 1.11. [no] defaults V=1
|
dnl AM_SILENT_RULES req. automake 1.11. [no] defaults V=1
|
||||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||||
AC_CONFIG_HEADERS(config.h evconfig-private.h:evconfig-private.h.in)
|
AC_CONFIG_HEADERS(config.h evconfig-private.h:evconfig-private.h.in)
|
||||||
AC_DEFINE(NUMERIC_VERSION, 0x02010700, [Numeric representation of the version])
|
AC_DEFINE(NUMERIC_VERSION, 0x02010800, [Numeric representation of the version])
|
||||||
|
|
||||||
dnl Initialize prefix.
|
dnl Initialize prefix.
|
||||||
if test "$prefix" = "NONE"; then
|
if test "$prefix" = "NONE"; then
|
||||||
|
@ -164,10 +164,6 @@
|
|||||||
|
|
||||||
1.3. Event finalization
|
1.3. Event finalization
|
||||||
|
|
||||||
[NOTE: This is an experimental feature in Libevent 2.1.3-alpha. Though
|
|
||||||
it seems solid so far, its API might change between now and the first
|
|
||||||
release candidate for Libevent 2.1.]
|
|
||||||
|
|
||||||
1.3.1. Why event finalization?
|
1.3.1. Why event finalization?
|
||||||
|
|
||||||
Libevent 2.1 now supports an API for safely "finalizing" events that
|
Libevent 2.1 now supports an API for safely "finalizing" events that
|
||||||
@ -320,6 +316,9 @@
|
|||||||
evbuffer_readln() now supports an EVBUFFER_EOL_NUL argument to fetch
|
evbuffer_readln() now supports an EVBUFFER_EOL_NUL argument to fetch
|
||||||
NUL-terminated strings from buffers.
|
NUL-terminated strings from buffers.
|
||||||
|
|
||||||
|
There's a new evbuffer_set_flags()/evbuffer_clear_flags() that you can use to
|
||||||
|
set EVBUFFER_FLAG_DRAINS_TO_FD.
|
||||||
|
|
||||||
1.6. New functions and features: bufferevents
|
1.6. New functions and features: bufferevents
|
||||||
|
|
||||||
You can now use the bufferevent_getcb() function to find out a
|
You can now use the bufferevent_getcb() function to find out a
|
||||||
@ -348,6 +347,17 @@
|
|||||||
You can manually trigger a bufferevent's callbacks via
|
You can manually trigger a bufferevent's callbacks via
|
||||||
bufferevent_trigger() and bufferevent_trigger_event().
|
bufferevent_trigger() and bufferevent_trigger_event().
|
||||||
|
|
||||||
|
Also you can manually increment/decrement reference for bufferevent with
|
||||||
|
bufferevent_incref()/bufferevent_decref(), it is useful in situations where a
|
||||||
|
user may reference the bufferevent somewhere else.
|
||||||
|
|
||||||
|
Now bufferevent_openssl supports "dirty" shutdown (when the peer closes the
|
||||||
|
TCP connection before closing the SSL channel), see
|
||||||
|
bufferevent_openssl_get_allow_dirty_shutdown() and
|
||||||
|
bufferevent_openssl_set_allow_dirty_shutdown().
|
||||||
|
|
||||||
|
And also libevent supports openssl 1.1.
|
||||||
|
|
||||||
1.7. New functions and features: evdns
|
1.7. New functions and features: evdns
|
||||||
|
|
||||||
The previous evdns interface used an "open a test UDP socket" trick in
|
The previous evdns interface used an "open a test UDP socket" trick in
|
||||||
@ -366,6 +376,9 @@
|
|||||||
There is a new evdns_base_clear_host_addresses() function to remove
|
There is a new evdns_base_clear_host_addresses() function to remove
|
||||||
all the /etc/hosts addresses registered with an evdns instance.
|
all the /etc/hosts addresses registered with an evdns instance.
|
||||||
|
|
||||||
|
Also there is evdns_base_get_nameserver_addr() for retrieve the address of
|
||||||
|
the 'idx'th configured nameserver.
|
||||||
|
|
||||||
1.8. New functions and features: evconnlistener
|
1.8. New functions and features: evconnlistener
|
||||||
|
|
||||||
Libevent 2.1 adds the following evconnlistener flags:
|
Libevent 2.1 adds the following evconnlistener flags:
|
||||||
@ -376,6 +389,10 @@
|
|||||||
HTTP where the client always speaks first. On operating systems
|
HTTP where the client always speaks first. On operating systems
|
||||||
that don't support this functionality, this option has no effect.
|
that don't support this functionality, this option has no effect.
|
||||||
|
|
||||||
|
LEV_OPT_REUSEABLE_PORT -- Indicates that we ask to allow multiple servers
|
||||||
|
to bind to the same port if they each set the option Ionly on Linux and
|
||||||
|
>=3.9)
|
||||||
|
|
||||||
LEV_OPT_DISABLED -- Creates an evconnlistener in the disabled (not
|
LEV_OPT_DISABLED -- Creates an evconnlistener in the disabled (not
|
||||||
listening) state.
|
listening) state.
|
||||||
|
|
||||||
@ -398,6 +415,9 @@
|
|||||||
evhttp_connection_set_timeout_tv() to configure
|
evhttp_connection_set_timeout_tv() to configure
|
||||||
microsecond-granularity timeouts.
|
microsecond-granularity timeouts.
|
||||||
|
|
||||||
|
Also there is evhttp_connection_set_initial_retry_tv() to change initial
|
||||||
|
retry timeout.
|
||||||
|
|
||||||
There are a new pair of functions: evhttp_set_bevcb() and
|
There are a new pair of functions: evhttp_set_bevcb() and
|
||||||
evhttp_connection_base_bufferevent_new(), that you can use to
|
evhttp_connection_base_bufferevent_new(), that you can use to
|
||||||
configure which bufferevents will be used for incoming and outgoing
|
configure which bufferevents will be used for incoming and outgoing
|
||||||
@ -437,12 +457,53 @@
|
|||||||
The evhttp_request_set_on_complete_cb() facility adds a callback to be
|
The evhttp_request_set_on_complete_cb() facility adds a callback to be
|
||||||
invoked on request completion.
|
invoked on request completion.
|
||||||
|
|
||||||
|
You can add linger-close for http server by passing
|
||||||
|
EVHTTP_SERVER_LINGERING_CLOSE to evhttp_set_flags(), with this flag server
|
||||||
|
read all the clients body, and only after this respond with an error if the
|
||||||
|
clients body exceed max_body_size (since some clients cannot read response
|
||||||
|
otherwise).
|
||||||
|
|
||||||
|
The evhttp_connection_set_family() can bypass family hint to evdns.
|
||||||
|
|
||||||
|
There are some flags available for connections, which can be installed with
|
||||||
|
evhttp_connection_set_flags():
|
||||||
|
- EVHTTP_CON_REUSE_CONNECTED_ADDR -- reuse connection address on retry (avoid
|
||||||
|
extra DNS request).
|
||||||
|
- EVHTTP_CON_READ_ON_WRITE_ERROR - try read error, since server may already
|
||||||
|
close the connection.
|
||||||
|
|
||||||
|
The evhttp_connection_free_on_completion() can be used to tell libevent to
|
||||||
|
free the connection object after the last request has completed or failed.
|
||||||
|
|
||||||
|
There is evhttp_request_get_response_code_line() if
|
||||||
|
evhttp_request_get_response_code() is not enough for you.
|
||||||
|
|
||||||
|
There are *evhttp_uri_parse_with_flags() that accepts
|
||||||
|
EVHTTP_URI_NONCONFORMANT to tolerate URIs that do not conform to RFC3986.
|
||||||
|
The evhttp_uri_set_flags() can changes the flags on URI.
|
||||||
|
|
||||||
1.10. New functions and features: evutil
|
1.10. New functions and features: evutil
|
||||||
|
|
||||||
There's a function "evutil_secure_rng_set_urandom_device_file()" that
|
There's a function "evutil_secure_rng_set_urandom_device_file()" that
|
||||||
you can use to override the default file that Libevent uses to seed
|
you can use to override the default file that Libevent uses to seed
|
||||||
its (sort-of) secure RNG.
|
its (sort-of) secure RNG.
|
||||||
|
|
||||||
|
The evutil_date_rfc1123() returns date in RFC1123
|
||||||
|
|
||||||
|
There are new API to work with monotonic timer -- monotonic time is
|
||||||
|
guaranteed never to run in reverse, but is not necessarily epoch-based. Use
|
||||||
|
it to make reliable measurements of elapsed time between events even when the
|
||||||
|
system time may be changed:
|
||||||
|
- evutil_monotonic_timer_new()/evutil_monotonic_timer_free()
|
||||||
|
- evutil_configure_monotonic_time()
|
||||||
|
- evutil_gettime_monotonic()
|
||||||
|
|
||||||
|
Use evutil_make_listen_socket_reuseable_port() to set SO_REUSEPORT (linux >=
|
||||||
|
3.9)
|
||||||
|
|
||||||
|
The evutil_make_tcp_listen_socket_deferred() can make a tcp listener socket
|
||||||
|
defer accept()s until there is data to read (TCP_DEFER_ACCEPT).
|
||||||
|
|
||||||
2. Cross-platform performance improvements
|
2. Cross-platform performance improvements
|
||||||
|
|
||||||
2.1. Better data structures
|
2.1. Better data structures
|
||||||
@ -686,5 +747,22 @@
|
|||||||
5. Testing
|
5. Testing
|
||||||
|
|
||||||
Libevent's test coverage level is more or less unchanged since before:
|
Libevent's test coverage level is more or less unchanged since before:
|
||||||
we still have over 80% line coverage in our tests on Linux and OSX.
|
we still have over 80% line coverage in our tests on Linux, FreeBSD, NetBSD,
|
||||||
|
Windows, OSX.
|
||||||
There are some under-tested modules, though: we need to fix those.
|
There are some under-tested modules, though: we need to fix those.
|
||||||
|
|
||||||
|
And now we have CI:
|
||||||
|
- https://travis-ci.org/libevent/libevent
|
||||||
|
- https://ci.appveyor.com/project/nmathewson/libevent
|
||||||
|
|
||||||
|
And code coverage:
|
||||||
|
- https://coveralls.io/github/libevent/libevent
|
||||||
|
|
||||||
|
Plus there is vagrant boxes if you what to test it on more OS'es then
|
||||||
|
travis-ci allows, and there is a wrapper (in python) that will parse logs and
|
||||||
|
provide report:
|
||||||
|
- https://github.com/libevent/libevent-extras/blob/master/tools/vagrant-tests.py
|
||||||
|
|
||||||
|
6. Contributing
|
||||||
|
|
||||||
|
From now we have contributing guide and checkpatch.sh.
|
||||||
|
Loading…
x
Reference in New Issue
Block a user