mirror of
https://github.com/cuberite/libevent.git
synced 2025-09-09 12:28:19 -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
|
||||
"${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"
|
||||
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)
|
||||
|
||||
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
|
||||
# UNLESS YOU REALLY REALLY HAVE TO.
|
||||
VERSION_INFO = 7:0:0
|
||||
VERSION_INFO = 6:2:0
|
||||
|
||||
# History: RELEASE VERSION_INFO
|
||||
# 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.6-beta -- 2.1 6:0: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
|
||||
# we change RELEASE. Version 1.4.x had RELEASE of 1.4.
|
||||
|
@ -423,5 +423,9 @@ fixing bugs:
|
||||
* Simone Basso
|
||||
* Vlad Shcherban
|
||||
* Tim Hentenaar
|
||||
* Breaker
|
||||
* johnsonlee
|
||||
* Philip Prindeville
|
||||
* Vis Virial
|
||||
|
||||
If we have forgotten your name, please contact us.
|
||||
|
@ -274,7 +274,7 @@
|
||||
/* #undef EVENT__HAVE_WORKING_KQUEUE */
|
||||
|
||||
/* Numeric representation of the version */
|
||||
#define EVENT__NUMERIC_VERSION 0x02010700
|
||||
#define EVENT__NUMERIC_VERSION 0x02010800
|
||||
|
||||
/* Name of package */
|
||||
#define EVENT__PACKAGE "libevent"
|
||||
@ -331,7 +331,7 @@
|
||||
#define EVENT__TIME_WITH_SYS_TIME 1
|
||||
|
||||
/* 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 EVENT____func__ __FUNCTION__
|
||||
|
@ -1,4 +1,4 @@
|
||||
version: 2.1.7.{build}
|
||||
version: 2.1.8.{build}
|
||||
|
||||
os: Visual Studio 2015
|
||||
|
||||
|
@ -27,7 +27,7 @@ macro(event_fuzzy_version_from_git)
|
||||
# set our defaults.
|
||||
set(EVENT_GIT___VERSION_MAJOR 2)
|
||||
set(EVENT_GIT___VERSION_MINOR 1)
|
||||
set(EVENT_GIT___VERSION_PATCH 7)
|
||||
set(EVENT_GIT___VERSION_PATCH 8)
|
||||
set(EVENT_GIT___VERSION_STAGE "beta")
|
||||
|
||||
find_package(Git)
|
||||
|
@ -5,7 +5,7 @@ dnl See LICENSE for copying information.
|
||||
dnl
|
||||
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_CONFIG_SRCDIR(event.c)
|
||||
|
||||
@ -14,7 +14,7 @@ AM_INIT_AUTOMAKE
|
||||
dnl AM_SILENT_RULES req. automake 1.11. [no] defaults V=1
|
||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
|
||||
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.
|
||||
if test "$prefix" = "NONE"; then
|
||||
|
@ -164,10 +164,6 @@
|
||||
|
||||
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?
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
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
|
||||
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
|
||||
|
||||
Libevent 2.1 adds the following evconnlistener flags:
|
||||
@ -376,6 +389,10 @@
|
||||
HTTP where the client always speaks first. On operating systems
|
||||
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
|
||||
listening) state.
|
||||
|
||||
@ -398,6 +415,9 @@
|
||||
evhttp_connection_set_timeout_tv() to configure
|
||||
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
|
||||
evhttp_connection_base_bufferevent_new(), that you can use to
|
||||
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
|
||||
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
|
||||
|
||||
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
|
||||
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.1. Better data structures
|
||||
@ -686,5 +747,22 @@
|
||||
5. Testing
|
||||
|
||||
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.
|
||||
|
||||
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