You can subscribe to this list here.
| 2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(9) |
Sep
(48) |
Oct
(11) |
Nov
(101) |
Dec
(60) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2008 |
Jan
(2) |
Feb
(53) |
Mar
(18) |
Apr
(53) |
May
(91) |
Jun
(50) |
Jul
(33) |
Aug
(6) |
Sep
(10) |
Oct
(3) |
Nov
(12) |
Dec
(23) |
| 2009 |
Jan
(106) |
Feb
(37) |
Mar
(5) |
Apr
(133) |
May
(61) |
Jun
(10) |
Jul
(72) |
Aug
(21) |
Sep
(12) |
Oct
(46) |
Nov
(89) |
Dec
(44) |
| 2010 |
Jan
(56) |
Feb
(59) |
Mar
(52) |
Apr
(49) |
May
(57) |
Jun
(17) |
Jul
(21) |
Aug
(47) |
Sep
(54) |
Oct
(72) |
Nov
(81) |
Dec
(27) |
| 2011 |
Jan
(42) |
Feb
(61) |
Mar
(21) |
Apr
(65) |
May
(77) |
Jun
(38) |
Jul
(42) |
Aug
(73) |
Sep
(20) |
Oct
(44) |
Nov
(49) |
Dec
(24) |
| 2012 |
Jan
(48) |
Feb
(91) |
Mar
(50) |
Apr
(49) |
May
(34) |
Jun
(31) |
Jul
(46) |
Aug
(29) |
Sep
(8) |
Oct
(10) |
Nov
(58) |
Dec
(8) |
|
From: Nick M. <ni...@us...> - 2012-12-20 16:59:31
|
Author: Nick Mathewson <ni...@to...> Date: Thu, 20 Dec 2012 11:48:05 -0500 Subject: Avoid double-close on getsockname error in evutil_ersatz_socketpair Commit: 0a822a640e11f76f8d7533042e8fb565da920934 Found by coverity; CID 739726 --- evutil.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/evutil.c b/evutil.c index e17e5b8..1627809 100644 --- a/evutil.c +++ b/evutil.c @@ -259,7 +259,6 @@ evutil_ersatz_socketpair(int family, int type, int protocol, goto tidy_up_and_fail; if (size != sizeof(listen_addr)) goto abort_tidy_up_and_fail; - evutil_closesocket(listener); /* Now check we are talking to ourself by matching port and host on the two sockets. */ if (getsockname(connector, (struct sockaddr *) &connect_addr, &size) == -1) @@ -269,6 +268,7 @@ evutil_ersatz_socketpair(int family, int type, int protocol, || listen_addr.sin_addr.s_addr != connect_addr.sin_addr.s_addr || listen_addr.sin_port != connect_addr.sin_port) goto abort_tidy_up_and_fail; + evutil_closesocket(listener); fd[0] = connector; fd[1] = acceptor; -- 1.7.4.1 |
|
From: Nick M. <ni...@us...> - 2012-12-20 16:59:30
|
Author: Nick Mathewson <ni...@to...>
Date: Thu, 20 Dec 2012 11:47:09 -0500
Subject: Avoid leaking fds on evconnlistener with no callback set
Commit: 69db2610be9b6b0d67f3dfda28a6059d3b2fb82f
There's no way to retrieve an fd from an evconnlistener whose
callback has been cleared, so we had better close any such fd.
Found by coverity; CID 739725.
---
listener.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/listener.c b/listener.c
index d21e8db..2b67b52 100644
--- a/listener.c
+++ b/listener.c
@@ -407,6 +407,7 @@ listener_read_cb(evutil_socket_t fd, short what, void *p)
evutil_make_socket_nonblocking(new_fd);
if (lev->cb == NULL) {
+ evutil_closesocket(new_fd);
UNLOCK(lev);
return;
}
--
1.7.4.1
|
|
From: Nick M. <ni...@us...> - 2012-12-20 16:50:25
|
Author: Nick Mathewson <ni...@to...> Date: Thu, 20 Dec 2012 11:48:05 -0500 Subject: Avoid double-close on getsockname error in evutil_ersatz_socketpair Commit: 0a822a640e11f76f8d7533042e8fb565da920934 Found by coverity; CID 739726 --- evutil.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/evutil.c b/evutil.c index e17e5b8..1627809 100644 --- a/evutil.c +++ b/evutil.c @@ -259,7 +259,6 @@ evutil_ersatz_socketpair(int family, int type, int protocol, goto tidy_up_and_fail; if (size != sizeof(listen_addr)) goto abort_tidy_up_and_fail; - evutil_closesocket(listener); /* Now check we are talking to ourself by matching port and host on the two sockets. */ if (getsockname(connector, (struct sockaddr *) &connect_addr, &size) == -1) @@ -269,6 +268,7 @@ evutil_ersatz_socketpair(int family, int type, int protocol, || listen_addr.sin_addr.s_addr != connect_addr.sin_addr.s_addr || listen_addr.sin_port != connect_addr.sin_port) goto abort_tidy_up_and_fail; + evutil_closesocket(listener); fd[0] = connector; fd[1] = acceptor; -- 1.7.4.1 |
|
From: Nick M. <ni...@us...> - 2012-12-20 16:50:24
|
Author: Nick Mathewson <ni...@to...>
Date: Thu, 20 Dec 2012 11:47:09 -0500
Subject: Avoid leaking fds on evconnlistener with no callback set
Commit: 69db2610be9b6b0d67f3dfda28a6059d3b2fb82f
There's no way to retrieve an fd from an evconnlistener whose
callback has been cleared, so we had better close any such fd.
Found by coverity; CID 739725.
---
listener.c | 1 +
1 files changed, 1 insertions(+), 0 deletions(-)
diff --git a/listener.c b/listener.c
index d21e8db..2b67b52 100644
--- a/listener.c
+++ b/listener.c
@@ -407,6 +407,7 @@ listener_read_cb(evutil_socket_t fd, short what, void *p)
evutil_make_socket_nonblocking(new_fd);
if (lev->cb == NULL) {
+ evutil_closesocket(new_fd);
UNLOCK(lev);
return;
}
--
1.7.4.1
|
|
From: Nick M. <ni...@us...> - 2012-12-11 17:53:35
|
Author: Nick Mathewson <ni...@to...> Date: Tue, 11 Dec 2012 12:53:09 -0500 Subject: Fix cut-and-paste err in whatsnew-2.1 Commit: 49905ac3283566a917b064f5752e93d053b23f4a --- whatsnew-2.1.txt | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/whatsnew-2.1.txt b/whatsnew-2.1.txt index d019825..fc829ac 100644 --- a/whatsnew-2.1.txt +++ b/whatsnew-2.1.txt @@ -351,7 +351,7 @@ than 1 millisecond. But Libevent had been using CLOCK_MONOTONIC for timekeeping on Linux, which is needlessly expensive: CLOCK_MONOTONIC_COARSE has approximately the resolution corresponding to epoll, and is much faster - to invoke than CLOCK_MONOTONIC_COARSE. + to invoke than CLOCK_MONOTONIC. To disable coarse timers, and get a more plausible precision, use the new EVENT_BASE_FLAG_PRECISE_TIMER flag when setting up your event base. -- 1.7.4.1 |
|
From: Nick M. <ni...@us...> - 2012-12-10 06:06:26
|
Author: Patrick Pelletier <co...@fu...>
Date: Wed, 28 Nov 2012 00:20:13 -0800
Subject: minor documentation typos
Commit: 809586a9c3c2f4df292ac71aca949b3a5ddea645
---
include/event2/http.h | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/include/event2/http.h b/include/event2/http.h
index 28d0f56..04338a7 100644
--- a/include/event2/http.h
+++ b/include/event2/http.h
@@ -626,7 +626,7 @@ const char *evhttp_request_get_host(struct evhttp_request *req);
@param headers the evkeyvalq object in which to find the header
@param key the name of the header to find
@returns a pointer to the value for the header or NULL if the header
- count not be found.
+ could not be found.
@see evhttp_add_header(), evhttp_remove_header()
*/
const char *evhttp_find_header(const struct evkeyvalq *headers,
@@ -718,7 +718,7 @@ char *evhttp_decode_uri(const char *uri);
The returned string must be freed by the caller.
@param uri a URI-encode encoded URI
- @param decode_plus determines whether we convert '+' to sapce.
+ @param decode_plus determines whether we convert '+' to space.
@param size_out if size_out is not NULL, *size_out is set to the size of the
returned string
@return a newly allocated unencoded URI or NULL on failure
--
1.7.4.1
|
|
From: Nick M. <ni...@us...> - 2012-12-04 17:33:00
|
Author: Nick Mathewson <ni...@to...> Date: Tue, 4 Dec 2012 12:01:25 -0500 Subject: Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled Commit: 7e45739e26f0a2066a56591472d5e109a482674e Reported by Xiuqiang Jiang --- evthread_win32.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/evthread_win32.c b/evthread_win32.c index 2389d72..fabd981 100644 --- a/evthread_win32.c +++ b/evthread_win32.c @@ -112,7 +112,7 @@ evthread_win32_condvar_init(void) #define LOAD(name) \ name##_fn = GetProcAddress(lib, #name) LOAD(InitializeConditionVariable); - LOAD(SleepConditionVariable); + LOAD(SleepConditionVariableCS); LOAD(WakeAllConditionVariable); LOAD(WakeConditionVariable); -- 1.7.4.1 |
|
From: Nick M. <ni...@us...> - 2012-12-04 17:03:05
|
Author: Nick Mathewson <ni...@to...> Date: Tue, 4 Dec 2012 12:01:25 -0500 Subject: Fix compilation with WIN32_HAVE_CONDITION_VARIABLES enabled Commit: 7e45739e26f0a2066a56591472d5e109a482674e Reported by Xiuqiang Jiang --- evthread_win32.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/evthread_win32.c b/evthread_win32.c index 2389d72..fabd981 100644 --- a/evthread_win32.c +++ b/evthread_win32.c @@ -112,7 +112,7 @@ evthread_win32_condvar_init(void) #define LOAD(name) \ name##_fn = GetProcAddress(lib, #name) LOAD(InitializeConditionVariable); - LOAD(SleepConditionVariable); + LOAD(SleepConditionVariableCS); LOAD(WakeAllConditionVariable); LOAD(WakeConditionVariable); -- 1.7.4.1 |
|
From: Nick M. <ni...@us...> - 2012-11-19 16:01:41
|
Author: Nick Mathewson <ni...@to...> Date: Mon, 19 Nov 2012 10:56:16 -0500 Subject: Increment version to 2.0.21-stable-dev Commit: f7d92c63928a1460f3d99b9bc418bd3b686a0dca --- ChangeLog | 3 +++ WIN32-Code/event2/event-config.h | 4 ++-- configure.in | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index eb6530d..80a0970 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +Changes in version 2.0.22-stable (?? ??? 201?) + + Changes in version 2.0.21-stable (18 Nov 2012) BUGFIXES: o ssl: Don't discard SSL read event when timeout and read come close together (576b29f) diff --git a/WIN32-Code/event2/event-config.h b/WIN32-Code/event2/event-config.h index 9d085c4..da8c23a 100644 --- a/WIN32-Code/event2/event-config.h +++ b/WIN32-Code/event2/event-config.h @@ -277,7 +277,7 @@ /* #undef _EVENT_HAVE_WORKING_KQUEUE */ /* Numeric representation of the version */ -#define _EVENT_NUMERIC_VERSION 0x02001500 +#define _EVENT_NUMERIC_VERSION 0x02001501 /* Name of package */ #define _EVENT_PACKAGE "libevent" @@ -334,7 +334,7 @@ #define _EVENT_TIME_WITH_SYS_TIME 1 /* Version number of package */ -#define _EVENT_VERSION "2.0.21-stable" +#define _EVENT_VERSION "2.0.21-stable-dev" /* Define to appropriate substitue if compiler doesnt have __func__ */ #define _EVENT___func__ __FUNCTION__ diff --git a/configure.in b/configure.in index 18165f3..189988a 100644 --- a/configure.in +++ b/configure.in @@ -11,9 +11,9 @@ AC_INIT(event.c) AC_CONFIG_MACRO_DIR([m4]) -AM_INIT_AUTOMAKE(libevent,2.0.21-stable) +AM_INIT_AUTOMAKE(libevent,2.0.21-stable-dev) AM_CONFIG_HEADER(config.h) -AC_DEFINE(NUMERIC_VERSION, 0x02001500, [Numeric representation of the version]) +AC_DEFINE(NUMERIC_VERSION, 0x02001501, [Numeric representation of the version]) dnl Initialize prefix. if test "$prefix" = "NONE"; then -- 1.7.4.1 |
|
From: Nick M. <ni...@us...> - 2012-11-19 16:01:39
|
Author: Nick Mathewson <ni...@to...> Date: Mon, 19 Nov 2012 10:53:25 -0500 Subject: Increment version to 2.1.2-alpha-dev Commit: 40b95ae26d94f0ed62f3031fe2e572a3bcf00a5f --- ChangeLog | 3 +++ WIN32-Code/event2/event-config.h | 4 ++-- configure.ac | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 70eccaf..50c6527 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +Changes in version 2.1.3-alpha (?? ??? 201?) + + Changes in version 2.1.2-alpha (18 Nov 2012) Libevent 2.1.2-alpha includes more portable for monotonic timers, diff --git a/WIN32-Code/event2/event-config.h b/WIN32-Code/event2/event-config.h index 2791d8d..63e6a58 100644 --- a/WIN32-Code/event2/event-config.h +++ b/WIN32-Code/event2/event-config.h @@ -277,7 +277,7 @@ /* #undef EVENT__HAVE_WORKING_KQUEUE */ /* Numeric representation of the version */ -#define EVENT__NUMERIC_VERSION 0x02010200 +#define EVENT__NUMERIC_VERSION 0x02010201 /* Name of package */ #define EVENT__PACKAGE "libevent" @@ -334,7 +334,7 @@ #define EVENT__TIME_WITH_SYS_TIME 1 /* Version number of package */ -#define EVENT__VERSION "2.1.2-alpha" +#define EVENT__VERSION "2.1.2-alpha-dev" /* Define to appropriate substitue if compiler doesnt have __func__ */ #define EVENT____func__ __FUNCTION__ diff --git a/configure.ac b/configure.ac index f008b23..75b2b6a 100644 --- a/configure.ac +++ b/configure.ac @@ -5,7 +5,7 @@ dnl See LICENSE for copying information. dnl dnl Original version Dug Song <du...@mo...> -AC_INIT(libevent,2.1.2-alpha) +AC_INIT(libevent,2.1.2-alpha-dev) 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])]) AM_CONFIG_HEADER(config.h evconfig-private.h:evconfig-private.h.in) -AC_DEFINE(NUMERIC_VERSION, 0x02010200, [Numeric representation of the version]) +AC_DEFINE(NUMERIC_VERSION, 0x02010201, [Numeric representation of the version]) dnl Initialize prefix. if test "$prefix" = "NONE"; then -- 1.7.4.1 |
|
From: Nick M. <ni...@us...> - 2012-11-19 15:59:23
|
Author: Nick Mathewson <ni...@to...> Date: Mon, 19 Nov 2012 10:56:16 -0500 Subject: Increment version to 2.0.21-stable-dev Commit: f7d92c63928a1460f3d99b9bc418bd3b686a0dca --- ChangeLog | 3 +++ WIN32-Code/event2/event-config.h | 4 ++-- configure.in | 4 ++-- 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index eb6530d..80a0970 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,6 @@ +Changes in version 2.0.22-stable (?? ??? 201?) + + Changes in version 2.0.21-stable (18 Nov 2012) BUGFIXES: o ssl: Don't discard SSL read event when timeout and read come close together (576b29f) diff --git a/WIN32-Code/event2/event-config.h b/WIN32-Code/event2/event-config.h index 9d085c4..da8c23a 100644 --- a/WIN32-Code/event2/event-config.h +++ b/WIN32-Code/event2/event-config.h @@ -277,7 +277,7 @@ /* #undef _EVENT_HAVE_WORKING_KQUEUE */ /* Numeric representation of the version */ -#define _EVENT_NUMERIC_VERSION 0x02001500 +#define _EVENT_NUMERIC_VERSION 0x02001501 /* Name of package */ #define _EVENT_PACKAGE "libevent" @@ -334,7 +334,7 @@ #define _EVENT_TIME_WITH_SYS_TIME 1 /* Version number of package */ -#define _EVENT_VERSION "2.0.21-stable" +#define _EVENT_VERSION "2.0.21-stable-dev" /* Define to appropriate substitue if compiler doesnt have __func__ */ #define _EVENT___func__ __FUNCTION__ diff --git a/configure.in b/configure.in index 18165f3..189988a 100644 --- a/configure.in +++ b/configure.in @@ -11,9 +11,9 @@ AC_INIT(event.c) AC_CONFIG_MACRO_DIR([m4]) -AM_INIT_AUTOMAKE(libevent,2.0.21-stable) +AM_INIT_AUTOMAKE(libevent,2.0.21-stable-dev) AM_CONFIG_HEADER(config.h) -AC_DEFINE(NUMERIC_VERSION, 0x02001500, [Numeric representation of the version]) +AC_DEFINE(NUMERIC_VERSION, 0x02001501, [Numeric representation of the version]) dnl Initialize prefix. if test "$prefix" = "NONE"; then -- 1.7.4.1 |
|
From: Nick M. <ni...@us...> - 2012-11-19 15:14:49
|
Author: Nick Mathewson <ni...@to...>
Date: Mon, 19 Nov 2012 09:07:13 -0500
Subject: Fix a bug when running "make verify" out-of-tree
Commit: c142069098ce5e39e7c03a50172e5bd18b015330
---
test/test.sh | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/test/test.sh b/test/test.sh
index d47bd2d..a4f03ef 100755
--- a/test/test.sh
+++ b/test/test.sh
@@ -32,10 +32,16 @@ T=`echo "$0" | sed -e 's/test.sh$//'`
if test -x "$T/test-init"
then
TEST_DIR="$T"
+elif test -x "./test/test-init"
+then
+ TEST_DIR="./test"
fi
if test -f "$T/check-dumpevents.py"
then
TEST_SRC_DIR="$T"
+elif test -f "./test/check-dumpevents.py"
+then
+ TEST_SRC_DIR="./test"
fi
setup () {
--
1.7.4.1
|
|
From: Nick M. <ni...@us...> - 2012-11-19 00:33:26
|
Author: Nick Mathewson <ni...@to...>
Date: Sun, 18 Nov 2012 19:32:41 -0500
Subject: Clean up and clarify a little more documentation
Commit: dc0287c473d3e33f8c6c0e6462ed336c6d7387da
---
include/event2/buffer.h | 6 +++---
include/event2/event.h | 10 +++++++---
2 files changed, 10 insertions(+), 6 deletions(-)
diff --git a/include/event2/buffer.h b/include/event2/buffer.h
index 645a190..3791e92 100644
--- a/include/event2/buffer.h
+++ b/include/event2/buffer.h
@@ -589,10 +589,10 @@ struct evbuffer_file_segment *evbuffer_file_segment_new(
void evbuffer_file_segment_free(struct evbuffer_file_segment *seg);
/**
- Add cleanup callback and argument for the callback to an
- evbuffer_file_segment.
+ Add cleanup callback and argument for the callback to an
+ evbuffer_file_segment.
- The cleanup callback will be invoked when no more references to the
+ The cleanup callback will be invoked when no more references to the
evbuffer_file_segment exist.
**/
void evbuffer_file_segment_add_cleanup_cb(struct evbuffer_file_segment *seg,
diff --git a/include/event2/event.h b/include/event2/event.h
index 17b8034..288ce39 100644
--- a/include/event2/event.h
+++ b/include/event2/event.h
@@ -1347,9 +1347,13 @@ typedef int (*event_base_foreach_event_cb)(const struct event_base *, const stru
Iterate over all added or active events events in an event loop, and invoke
a given callback on each one.
- The callback must not call any function that modifies the event base, or
- modifies any event in the event base. Doing so is unsupported and
- will lead to undefined behavior.
+ The callback must not call any function that modifies the event base, that
+ modifies any event in the event base, or that adds or removes any event to
+ the event base. Doing so is unsupported and will lead to undefined
+ behavior -- likely, to crashes.
+
+ event_base_foreach_event() holds a lock on the event_base() for the whole
+ time it's running: slow callbacks are not advisable.
The callback function must return 0 to continue iteration, or some other
integer to stop iterating.
--
1.7.4.1
|
|
From: Nick M. <ni...@us...> - 2012-11-19 00:33:25
|
Author: Nick Mathewson <ni...@to...>
Date: Sun, 18 Nov 2012 19:32:11 -0500
Subject: Make the argument to bufferevent_get_priority const
Commit: 060c409e8b5eafb56e32b943afcaa8e55a5c6559
---
bufferevent.c | 2 +-
include/event2/bufferevent.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/bufferevent.c b/bufferevent.c
index 98003ac..7c03ce9 100644
--- a/bufferevent.c
+++ b/bufferevent.c
@@ -398,7 +398,7 @@ bufferevent_get_base(struct bufferevent *bufev)
}
int
-bufferevent_get_priority(struct bufferevent *bufev)
+bufferevent_get_priority(const struct bufferevent *bufev)
{
if (event_initialized(&bufev->ev_read)) {
return event_get_priority(&bufev->ev_read);
diff --git a/include/event2/bufferevent.h b/include/event2/bufferevent.h
index 0d94e8d..4ed4e5d 100644
--- a/include/event2/bufferevent.h
+++ b/include/event2/bufferevent.h
@@ -278,7 +278,7 @@ int bufferevent_priority_set(struct bufferevent *bufev, int pri);
Only supported for socket bufferevents
*/
-int bufferevent_get_priority(struct bufferevent *bufev);
+int bufferevent_get_priority(const struct bufferevent *bufev);
/**
Deallocate the storage associated with a bufferevent structure.
--
1.7.4.1
|
|
From: Nick M. <ni...@us...> - 2012-11-19 00:00:17
|
Author: Nick Mathewson <ni...@to...>
Date: Sun, 18 Nov 2012 18:59:19 -0500
Subject: Avoid defining recommended functions in terms of deprecated ones
Commit: 96584866cd63aa2efd2e358366959dbb0bf8fc60
---
include/event2/event.h | 14 +++++++-------
1 files changed, 7 insertions(+), 7 deletions(-)
diff --git a/include/event2/event.h b/include/event2/event.h
index 4f177d9..17b8034 100644
--- a/include/event2/event.h
+++ b/include/event2/event.h
@@ -39,7 +39,7 @@
to signals or regular timeouts.
Libevent is meant to replace the event loop found in event driven network
- servers. An application just needs to call event_dispatch() and then add or
+ servers. An application just needs to call event_base_dispatch() and then add or
remove events dynamically without having to change the event loop.
@@ -750,7 +750,7 @@ int event_base_loopexit(struct event_base *, const struct timeval *);
event_base_loopbreak() is typically invoked from this event's callback.
This behavior is analogous to the "break;" statement.
- Subsequent invocations of event_loop() will proceed normally.
+ Subsequent invocations of event_base_loop() will proceed normally.
@param eb the event_base structure returned by event_init()
@return 0 if successful, or -1 if an error occurred
@@ -778,7 +778,7 @@ int event_base_loopbreak(struct event_base *);
int event_base_loopcontinue(struct event_base *);
/**
- Checks if the event loop was told to exit by event_loopexit().
+ Checks if the event loop was told to exit by event_base_loopexit().
This function will return true for an event_base at every point after
event_loopexit() is called, until the event loop is next entered.
@@ -792,10 +792,10 @@ int event_base_loopcontinue(struct event_base *);
int event_base_got_exit(struct event_base *);
/**
- Checks if the event loop was told to abort immediately by event_loopbreak().
+ Checks if the event loop was told to abort immediately by event_base_loopbreak().
This function will return true for an event_base at every point after
- event_loopbreak() is called, until the event loop is next entered.
+ event_base_loopbreak() is called, until the event loop is next entered.
@param eb the event_base structure returned by event_init()
@return true if event_base_loopbreak() was called on this event base,
@@ -1001,7 +1001,7 @@ void event_free(struct event *);
/**
Schedule a one-time event
- The function event_base_once() is similar to event_set(). However, it
+ The function event_base_once() is similar to event_new(). However, it
schedules a callback to be called exactly once, and does not require the
caller to prepare an event structure.
@@ -1039,7 +1039,7 @@ int event_base_once(struct event_base *, evutil_socket_t, short, event_callback_
If the event in the ev argument already has a scheduled timeout, calling
event_add() replaces the old timeout with the new one if tv is non-NULL.
- @param ev an event struct initialized via event_set()
+ @param ev an event struct initialized via event_assign() or event_new()
@param timeout the maximum amount of time to wait for the event, or NULL
to wait forever
@return 0 if successful, or -1 if an error occurred
--
1.7.4.1
|
|
From: Nick M. <ni...@us...> - 2012-11-18 16:27:47
|
Author: Nick Mathewson <ni...@to...>
Date: Sun, 18 Nov 2012 11:25:13 -0500
Subject: Update "what's new in Libevent 2.1"
Commit: 3db0737ae6bccc8680d7ee39d46c43d0310166ed
---
whatsnew-2.1.txt | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 134 insertions(+), 3 deletions(-)
diff --git a/whatsnew-2.1.txt b/whatsnew-2.1.txt
index ae69093..d019825 100644
--- a/whatsnew-2.1.txt
+++ b/whatsnew-2.1.txt
@@ -74,6 +74,13 @@
loop checks for new events either every N microseconds, every M
callbacks, or both.
+ When configuring an event base, you can now choose whether you want
+ timers to be more efficient, or more precise. (This only has effect
+ on Linux for now.) Timers are efficient by default: to select more
+ precise timers, use the EVENT_BASE_FLAG_PRECISE_TIMER flag when
+ constructing the event_config, or set the EVENT_PRECISE_TIMER
+ environment variable to a non-empty string.
+
There is an EVLOOP_NO_EXIT_ON_EMPTY flag that tells event_base_loop()
to keep looping even when there are no pending events. (Ordinarily,
event_base_loop() will exit as soon as no events are pending.)
@@ -113,11 +120,41 @@
event. This should never be strictly necessary, but it's sometimes
convenient.
+ The event_base_once() function used to leak some memory if the event
+ that it added was never actually triggered. Now, its memory is
+ tracked in the event_base and freed when the event_base is freed.
+ Note however that Libevent doesn't know how to free any information
+ passed as the callback argument to event_base_once is still something
+ you'll might need a way to de-allocate yourself.
+
+ There is an event_get_priority() function to return an event's
+ priority.
+
+ By analogy to event_base_loopbreak(), there is now an
+ event_base_loopcontinue() that tells Libevent to stop processing
+ active event callbacks, and re-scan for new events right away.
+
+ There's a function, event_base_foreach_event(), that can iterate over
+ every event currently pending or active on an event base, and invoke a
+ user-supplied callback on each. The callback must not alter the events
+ or add or remove anything to the event base.
+
+ We now have an event_remove_timer() function to remove the timeout on
+ an event while leaving its socket and/or signal triggers unchanged.
+ (If we were designing the API from scratch, this would be the behavior
+ of "event_add(ev, NULL)" on an already-added event with a timeout. But
+ that's a no-op in past versions of Libevent, and we don't want to
+ break compatibility.)
+
1.3. New debugging features
You can now turn on debug logs at runtime using a new function,
event_enable_debug_logging().
+ The event_enable_lock_debugging() function is now spelled correctly.
+ You can still use the old "event_enable_lock_debuging" name, though,
+ so your old programs shouldnt' break.
+
There's also been some work done to try to make the debugging logs
more generally useful.
@@ -140,6 +177,9 @@
supports sendfile) to map the file when that's necessary, and use
sendfile() otherwise.
+ File segments can receive callback functions that are invoked when the
+ file segments are freed.
+
The evbuffer_ptr interface has been extended so that an evbuffer_ptr
can now yield a point just after the end of the buffer. This makes
many algorithms simpler to implement.
@@ -170,7 +210,14 @@
bufferevent_set_max_single_write().
For consistency, OpenSSL bufferevents now make sure to always set one
- of BEV_EVENT_READING or BEV_EVENT_WRITING when invoking an event callback.
+ of BEV_EVENT_READING or BEV_EVENT_WRITING when invoking an event
+ callback.
+
+ Calling bufferevent_set_timeouts(bev, NULL, NULL) now removes the
+ timeouts from socket and ssl bufferevents correctly.
+
+ You can find the priority at which a bufferevent runs with
+ bufferevent_get_priority().
1.6. New functions and features: evdns
@@ -221,6 +268,12 @@
There's a new evhttp_foreach_bound_socket() function to iterate over
every listener on an evhttp object.
+ Whitespace between lines in headers is now folded into a single space;
+ whitespace at the end of a header is now removed.
+
+ The socket errno value is now preserved when invoking an http error
+ callback.
+
2. Cross-platform performance improvements
2.1. Better data structures
@@ -291,6 +344,17 @@
o Performance tweak to evhttp_parse_request_line. (aee1a97 Mark Ellzey)
o Add missing break to evhttp_parse_request_line (0fcc536)
+2.6. Coarse timers by default on Linux
+
+ Due to limitations of the epoll interface, Libevent programs using epoll
+ have not previously been able to wait for timeouts with accuracy smaller
+ than 1 millisecond. But Libevent had been using CLOCK_MONOTONIC for
+ timekeeping on Linux, which is needlessly expensive: CLOCK_MONOTONIC_COARSE
+ has approximately the resolution corresponding to epoll, and is much faster
+ to invoke than CLOCK_MONOTONIC_COARSE.
+
+ To disable coarse timers, and get a more plausible precision, use the
+ new EVENT_BASE_FLAG_PRECISE_TIMER flag when setting up your event base.
3. Backend/OS-specific improvements
@@ -328,6 +392,30 @@
of fds set unless an "unlimited select" option has been set.
Therefore, we now set it.
+3.5. Monotonic clocks on even more platforms
+
+ Libevent previously used a monotonic clock for its internal timekeeping
+ only on platforms supporting the POSIX clock_gettime() interface. Now,
+ Libevent has support for monotonic clocks on OSX and Windows too, and a
+ fallback implementation for systems without monotonic clocks that will at
+ least keep time running forwards.
+
+ Using monotonic timers makes Libevent more resilient to changes in the
+ system time, as can happen in small amounts due to clock adjustments from
+ NTP, or in large amounts due to users who move their system clocks all over
+ the timeline in order to keep nagware from nagging them.
+
+3.6. Faster cross-thread notification on kqueue
+
+ When a thread other than the one in which the main event loop is
+ running needs to wake the thread running the main event loop, Libevent
+ usually writes to a socketpair in order to force the main event loop
+ to wake up. On Linux, we've been able to use eventfd() instead. Now
+ on BSD and OSX systems (any anywhere else that has kqueue with the
+ EVFILT_USER extension), we can use EVFILT_USER to wake up the main
+ thread from kqueue. This should be a tiny bit faster than the
+ previous approach.
+
4. Infrastructure improvements
4.1. Faster tests
@@ -345,7 +433,31 @@
Faster unit tests are great, since they let programmers test their
changes without losing their train of thought.
-4.2. Portability
+4.2. Finicky tests are now off-by-default
+
+ The Tinytest unit testing framework now supports optional tests, and
+ Libevent uses them. By default, Libevent's unit testing framework
+ does not run tests that require a working network, and does not run
+ tests that tend to fail on heavily loaded systems because of timing
+ issues. To re-enable all tests, run ./test/regress using the "@all"
+ alias.
+
+4.3. Modernized use of autotools
+
+ Our autotools-based build system has been updated to build without
+ warnings on recent autoconf/automake versions.
+
+ Libevent's autotools makefiles are no longer recursive. This allows
+ make to use the maximum possible parallelism to do the minimally
+ necessary amount of work. See Peter Miller's "Recursive Make
+ Considered Harmful" at http://miller.emu.id.au/pmiller/books/rmch/ for
+ more information here.
+
+ We now use the "quiet build" option to suppress distracting messages
+ about which commandlines are running. You can get them back with
+ "make V=1".
+
+4.4. Portability
Libevent now uses large-file support internally on platforms where it
matters. You shouldn't need to set _LARGEFILE or OFFSET_BITS or
@@ -364,7 +476,7 @@
Libevent now tries to detect OpenSSL via pkg-config.
-4.3. Standards conformance
+4.5. Standards conformance
Previous Libevent versions had no consistent convention for internal
vs external identifiers, and used identifiers starting with the "_"
@@ -383,6 +495,25 @@
around for a while. New code should use EVENT_LOG_DEBUG,
EVENT_LOG_MSG, EVENT_LOG_WARN, and EVENT_LOG_ERR instead.
+4.6. Event and callback refactoring
+
+ As a simplification and optimization to Libevent's "deferred callback"
+ logic (introduced in 2.0 to avoid callback recursion), Libevent now
+ treats all of its deferrable callback types using the same logic it
+ uses for active events. Now deferred events no longer cause priority
+ inversion, no longer require special code to cancel them, and so on.
+
+ Regular events and deferred callbacks now both descend from an
+ internal light-weight event_callback supertype, and both support
+ priorities and take part in the other anti-priority-inversion
+ mechanisms in Libevent.
+
+ To avoid starvation from callback recursion (which was the reason we
+ introduced "deferred callbacks" in the first place) the implementation
+ now allows an event callback to be scheduled as "active later":
+ instead of running in the current iteration of the event loop, it runs
+ in the next one.
+
5. Testing
Libevent's test coverage level is more or less unchanged since before:
--
1.7.4.1
|
|
From: Nick M. <ni...@us...> - 2012-11-18 16:27:46
|
Author: Nick Mathewson <ni...@to...> Date: Sun, 18 Nov 2012 10:53:52 -0500 Subject: Bump versions to 2.1.2-alpha Commit: ffdad1dcbc23614adcc72735c2d60d64eb09f2ff --- Makefile.am | 5 +++++ WIN32-Code/event2/event-config.h | 4 ++-- configure.ac | 4 ++-- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Makefile.am b/Makefile.am index 1b6cfca..3040c2a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -58,9 +58,14 @@ VERSION_INFO = 1:0:0 # 2.0.15-stable-- 2.0 6:3:1 (Forgot to update :( ) # 2.0.16-stable-- 2.0 6:4:1 (No ABI change) # 2.0.17-stable-- 2.0 6:5:1 (No ABI change) +# 2.0.18-stable-- 2.0 6:6:1 (No ABI change) +# 2.0.19-stable-- 2.0 6:7:1 (No ABI change) +# 2.0.20-stable-- 2.0 6:8:1 (No ABI change) +# 2.0.21-stable-- 2.0 6:9:1 (No ABI change) # # For Libevent 2.1: # 2.1.1-alpha -- 2.1 1:0:0 +# 2.1.2-alpha-- 2.2 2:0:1 (Backward-compatible) # ABI version history for this package effectively restarts every time diff --git a/WIN32-Code/event2/event-config.h b/WIN32-Code/event2/event-config.h index a765507..2791d8d 100644 --- a/WIN32-Code/event2/event-config.h +++ b/WIN32-Code/event2/event-config.h @@ -277,7 +277,7 @@ /* #undef EVENT__HAVE_WORKING_KQUEUE */ /* Numeric representation of the version */ -#define EVENT__NUMERIC_VERSION 0x02010101 +#define EVENT__NUMERIC_VERSION 0x02010200 /* Name of package */ #define EVENT__PACKAGE "libevent" @@ -334,7 +334,7 @@ #define EVENT__TIME_WITH_SYS_TIME 1 /* Version number of package */ -#define EVENT__VERSION "2.1.1-alpha-dev" +#define EVENT__VERSION "2.1.2-alpha" /* Define to appropriate substitue if compiler doesnt have __func__ */ #define EVENT____func__ __FUNCTION__ diff --git a/configure.ac b/configure.ac index 1defb5c..f008b23 100644 --- a/configure.ac +++ b/configure.ac @@ -5,7 +5,7 @@ dnl See LICENSE for copying information. dnl dnl Original version Dug Song <du...@mo...> -AC_INIT(libevent,2.1.1-alpha-dev) +AC_INIT(libevent,2.1.2-alpha) 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])]) AM_CONFIG_HEADER(config.h evconfig-private.h:evconfig-private.h.in) -AC_DEFINE(NUMERIC_VERSION, 0x02010101, [Numeric representation of the version]) +AC_DEFINE(NUMERIC_VERSION, 0x02010200, [Numeric representation of the version]) dnl Initialize prefix. if test "$prefix" = "NONE"; then -- 1.7.4.1 |
|
From: Nick M. <ni...@us...> - 2012-11-18 16:27:45
|
Author: Nick Mathewson <ni...@to...> Date: Sun, 18 Nov 2012 10:53:26 -0500 Subject: Update changelog for 2.1.2-alpha Commit: 143cb613bdd68dda5f55ed26c63c2a7a06a2d99c --- ChangeLog | 190 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- README | 18 ++++++- 2 files changed, 206 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 274141b..70eccaf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,192 @@ -Changes in version 2.1.2-alpha (?? ??? 2012) +Changes in version 2.1.2-alpha (18 Nov 2012) + + Libevent 2.1.2-alpha includes more portable for monotonic timers, + refactors much of Libevent's internal and external infrastructure, + closes some longstanding gaps in the interface, makde other + improvements. Ths log below tries to organize features by rough area of + effect. It omits a few commits which were pure bugfixes on other commits + listed below. For more detail, see the git changelogs. For more + insight, see the "whatsnew-2.1.txt" document included in the Libevent + 2.1.2-alpha distribution. + + Libevent 2.1.2-alpha also includes all changes made in 2.0.19-stable + through 2.0.21-stable inclusive. + + Performance (core): + o Replace pipe-based notification with EVFILT_USER where possible. This + should make multithreaded programs on OSX and *BSD alert the main thread a + little faster. (53a07fe) + o Make th_base_lock nonrecursive. (9cd5acb) + + New/Changed API Functions: + o New event_get_priority() function to return an event's priority (f90e255) + o Add a bufferevent_get_priority() function (bd39554) + o Add an event_base_loopcontinue() to tell Libevent to rescan for more + events right away (7d6aa5e) + o Add a new callback to get called on evbuffer_file_segment free + (e9f8feb yangacer, 64051b9) + o Expose event_base_foreach_event() as a public API. (84fd6d7 Roman + Puls, 232055e, ffe1643) + o Add an event_remove_timer() to remove timer on an event without + deleting it (e3b2e08) + o Make bufferevent_set_timeouts(bev, NULL, NULL) have plausible + semantics (9dee36b) + o Rename event_enable_lock_debuging() to ..._debugging(). (The old name + should still work.) (07e132e) + o Add missing implementation for event_enable_debug_logging (3b3e21d) + + PORTABLE MONOTONIC TIMERS: + + Libevent 2.1.2 includes internal support for monotonic timers on + (nearly) all supported platforms, including Windows, and OSX. Libevent + applications should now be more resilient to jumps forwards or backwards + in the system clock. Also, on Linux systems with epoll, we now + optionally support microsecond-level timeouts (whereas epoll only + supports millisecond-precision timeouts). + + o Use mach_absolute_time() for monotonic clock support on OSX. (b8fd6f9) + o Do not track use_monotonic field when is no monotonic clock (cb653a0) + o EVENT_BASE_FLAG_PRECISE_TIMER indicates we want fine timer precision + (ddd69d3) + o On Linux, use CLOCK_MONOTONIC_COARSE by default (55780a7) + o Implement a GetTickCount-based monotonic timer for Windows (d5e1d5a) + o Refactor monotonic timer handling into a new type and set of + functions; add a gettimeofday-based ratcheting implementation (f5e4eb0) + o Add EVENT_PRECISE_TIMER environment var for selecting precise-but-slow + timer (a2598ec) + o Implement fast/precise monotonic clocks on Windows (2c47045) + o Simple unit tests for monotonic timers (630f077) + o Improve the monotonic-time unit test: make it check the step size (7428c78) + o When PRECISE_TIMERS is set with epoll, use timerfd for microsecond + precision (26c7582) + o Split out time-related evutil functions into a new evutil_time.c (c419485) + o Split out time-related prototypes into time-internal.h (71bca50) + o Add evutil_time.obj to Makefile.nmake (0ba0683) + o Avoid giving a spurious warning when timerfd support is unavailable + (1aaf9f0 Dave Hart) + o Make test_evutil_monotonic a little more tolerant (def3b83) + o Avoid unused-var warning on systems with clock_gettime but without + CLOCK_MONOTONIC_COARSE (9be5468) + +EVENT_BASE_ONCE LEAKS: + If a callback added by event_base_once() is never invoked, Libevent no + longer leaks internal memory. + + o Free dangling event_once objects on event_base_free() (c17dd59) + o Add a unit test in which an event is created with event_base_once() + but never fires (4343edf) + +TESTING SUPPORT, FIXES AND IMPROVEMENTS: + + Libevent now disables by default its unit tests that would touch the + network, or that tend to fail on heavily-loaded systems. To re-enable + them, invoke the ./test/regress program with the @all alias. + + o Simplify test.sh code significantly. (9b856fd Ross Lagerwall) + o Make all tests that hit the network disabled by default (f2cea87) + o Avoid a resource leak on error in http client benchmark (ea92fba) + o Update to latest tinytest (911b4f0349377) (ef7c4f7) + o Avoid (unlikely) overflow in bench_httpclient.c (5671033) + o Shave 700 msec off the persistent_timeout_jump test (21205b8) + o Check return value of write() in regress.c (c8009d2) + o Make load-dependent monotonic timer tests off-by-default (2b6fe8b) + o Add deferred_cb_skew to list of timing-dependent tests (34c8f31) + o Avoid test -e; older shs don't have one. (f1bd938) + o Fix renegotiation test to work around openssl 1.0.1 bug (c2f3086) + o Fix a couple of compile warnings in the unit tests (5a9a014) + +MISC: + o Change evutil_weakrand_() to avoid platform random() (e86af4b Nicholas + Marriott, 3aa4415) + +INFRASTRUCTURE (Active-later events): + As a simplification and optimization to Libevent's "deferred callback" + logic (introduced in 2.0 to avoid callback recursion), Libevent now + treats all of its deferrable callback types using the same logic it uses + for active events. Now deferred events no longer cause priority + inversion, no longer require special code to cancel them, and so on. + + o Refactor the callback part of an event into its own event_callback + type (cba59e5) + o Add "active later" event_callbacks to supersede deferred (745a63d) + o event_base_assert_ok: check value of event_active_count for + correctness (fec8bae) + o Replace deferred_cbs with event_callback-based implementation. (ae2b84b) + o Replace more deferred_cb names with event_callback (a4079aa) + o Give event_base_process_active a single exit path (581b5be) + o Restore our priority-inversion-prevention code with deferreds (c0e425a) + o Refactor event_persist_closure: raise and extract some common logic + (bec22b4) + o Remove the unused bits from EVLIST_ALL (9889a3d) + +BUILD IMPROVEMENTS: + Libevent 2.1.2-alpha modernizes Libevent's use of autotools, and makes + numerous other build system. Parallel builds should be faster, and all + builds should be quieter. + + o Split long lists in Makefile.am into one-item-per-line (2711cda) + o Remove unnecessary code in configure.in. (e65914f Ross Lagerwall) + o attempt to support OpenSSL in Makefile.nmake (eba0eb2 Patrick Pelletier) + o Use newer syntax for autoconf/automake init (7d60ba8) + o Enable silent build rules by default. Override with V=1 (7b18e5c) + o Switch to non-recursive makefiles (7092f3b) + o Rename subordinate Makefile.ams to include.am (6cdfeeb) + o Make quiet build even quieter (371a123) + o New --quiet option for event_rpcgen.py (aa59c1e) + o Be quiet when making regress.gen.[ch] (607a8ff) + o Fix handling of no-python case for nonrecursive make (1e3123d) + o We now require automake 1.9 or later. Modernize! (b7f6e89) + o Rename configure.in to configure.ac. (b3fea67 Ross Lagerwall) + o Use correct openssl libs and includes in pkgconfig file (d70af27) + o Use the same CFLAGS for openssl when building unit tests as with + libevent (1d9d511) + +DOCUMENTATION + o Note that make_base_notifiable should not be necessary (26ee5f9) + o Be more clear that LEV_OPT_DEFERRED_ACCEPT has tricky prereqs (371efeb) + o Add caveat to docs about bufferevent_free() with data in outbuf (6fab9ee) + o Make it more clear that NOLOCK means "I promise, no multithreading" + (9444524) + o Fix a comment in test-fdleak after 077c7e949. (3881d8f Ross Lagerwall) + o Make the Makefile.nmake warning slightly less dire (e7bf4c8) + o Fix typo : events instead of evets (05f1aca Azat Khuzhin) + o Additional comments about OPENSSL_DIR variable, prompted by Dave Hart + (6bde2ef Patrick Pelletier) + +EVHTTP: + o ignore LWS after field-content in headers (370a2c0 Artem Germanov) + o Clean up rtrim implementation (aa59d80) + o Remove trailing tabs in HTTP headers as well. (ac42519) + o Remove internal ws from multiline http headers correctly (c6ff381) + o Move evutil_rtrim_lws_ to evutil.c where it belongs (61b93af) + o add evhttp_request_get_response_code_line (4f4d0c9 Jay R. Wren) + o Use EVUTIL_SOCKET_ERROR() wrapper to save/restore errno in + evhttp_connection_fail_ (7afbd60) + o preserve errno in evhttp_connection_fail_ for inspection by the + callback (36d0ee5 Patrick Pelletier) + +BUGFIXES: + o Correctly handle running on a system where accept4 doesn't work. (9fbfe9b) + o Avoid double-free on error in evbuffer_add_file. Found by + coverity. (6a81b1f) + o Fix another possible uninitialized read in dns regression tests. Found + by coverity. (13525c5) + o Add checks for functions in test-ratelim.c; found by Coverity (aa501e1) + o Avoid memory leak in test_event_calloc unit test; found by coverity + (92817a1) + o Fix a shadowed variable in addfile_test_readcb; found by coverity + (225344c) + o Check return value when using LEV_OPT_DEFERRED_ACCEPT. Found by + coverity (6487f63) + o Prevent reference leak of bufferevent if getaddrinfo fails. (b757786 + Joachim Bauch) + o Make event_base_getnpriorities work with old "implicit base" code + (c46cb9c) + o Simplify and correct evutil_open_closeonexec_ (0de587f) + o Fix event_dlist definition when sys/queue not included (81b6209 + Derrick Pallas) + + Changes in version 2.1.1-alpha (4 Apr 2012) diff --git a/README b/README index 313a803..2723a2c 100644 --- a/README +++ b/README @@ -92,20 +92,27 @@ fixing bugs: Lawnstein Chan Shuo Chen Ka-Hing Cheung + Andrew Cox + Paul Croome + George Danchev Andrew Danforth Ed Day Christopher Davis Mike Davis + Antony Dovgal Mihai Draghicioiu Alexander Drozdov Mark Ellzey Shie Erlich Leonid Evdokimov + Juan Pablo Fernandez Christophe Fillot Mike Frysinger Remi Gacogne + Artem Germanov Alexander von Gernler Artur Grabowski + Diwaker Gupta Sebastian Hahn Dave Hart Greg Hazel @@ -115,6 +122,7 @@ fixing bugs: Mark Heily Michael Herf Greg Hewgill + Andrew Hochhaus Aaron Hopkins Tani Hosokawa Jamie Iles @@ -122,6 +130,8 @@ fixing bugs: Evan Jones George Kadianakis Phua Keat + Azat Khuzhin + Alexander Klauer Kevin Ko Brian Koehmstedt Marko Kreen @@ -136,6 +146,7 @@ fixing bugs: David Libenzi Yan Lin Moshe Litvin + Simon Liu Mitchell Livingston Hagne Mahre Lubomir Marinov @@ -157,8 +168,10 @@ fixing bugs: Jon Oberheide Phil Oleson Dave Pacheco + Derrick Pallas Tassilo von Parseval Catalin Patulea + Patrick Pelletier Simon Perreault Pierre Phaneuf Amarin Phaosawasdi @@ -166,6 +179,7 @@ fixing bugs: Dimitre Piskyulev Pavel Plesov Jon Poland + Roman Puls Nate R Robert Ransom Bert JW Regeer @@ -192,11 +206,13 @@ fixing bugs: Colin Watt Zack Weinberg Jardel Weyrich + Jay R. Wren + Zack Weinberg Alejo Alex Taral propanbutan mmadia - + yangacer If we have forgotten your name, please contact us. -- 1.7.4.1 |
|
From: Nick M. <ni...@us...> - 2012-11-18 07:03:34
|
Author: Nick Mathewson <ni...@to...> Date: Sun, 18 Nov 2012 02:01:26 -0500 Subject: Update ChangeLog-2.0 Commit: 5af4caa9ee59f7337401c1c2c767eb4ded70e65e --- ChangeLog-2.0 | 17 +++++++++++++++++ 1 files changed, 17 insertions(+), 0 deletions(-) diff --git a/ChangeLog-2.0 b/ChangeLog-2.0 index eaee3a6..a925d33 100644 --- a/ChangeLog-2.0 +++ b/ChangeLog-2.0 @@ -1,3 +1,20 @@ +Changes in version 2.0.21-stable (18 Nov 2012) +BUGFIXES: + o ssl: Don't discard SSL read event when timeout and read come close together (576b29f) + o ssl: Stop looping in "consider_reading" if reading is suspended. (f719b8a Joachim Bauch) + o ssl: No need to reserve space if reading is suspended. (1acf2eb Joachim Bauch) + o dns: Avoid a memory-leak on OOM in evdns. (73e85dd, f2bff75 George Danchev) + o build: Use python2 rather than python (0eb0109 Ross Lagerwall) + o build: Compile without warnings on mingw64 (94866c2) + o build: Fix compilation on mingw64 with -DUSE_DEBUG (62bd2c4) + o build: Make rpcgen_wrapper.sh work on systems without a "python2" binary (f3009e4) + o iocp: Close IOCP listener socket on free when LEV_OPT_CLOSE_ON_FREE is set (cb853ea Juan Pablo Fernandez) + o core: Avoid crash when event_pending() called with no event_base set on event (e3cccf3) + o misc: remove stray 'x' so print_err will compile when uncommented (ac35650 Patrick Pelletier) + o tests: Fix renegotiation test to work around openssl 1.0.1 bug (c2f3086) + o tests: Warn when openssl version in unit test mismatches compiled version. (ac009f9) + + Changes in version 2.0.20-stable (23 Aug 2012) BUGFIXES: o core: Make event_pending() threadsafe. (be7a95c Simon Liu) -- 1.7.4.1 |
|
From: Nick M. <ni...@us...> - 2012-11-18 07:03:33
|
Author: Nick Mathewson <ni...@to...> Date: Sun, 18 Nov 2012 01:39:10 -0500 Subject: Increment libtool version for 2.0.21 too Commit: 64177777165d9684bafbfa946abd126f7ebff11f --- Makefile.am | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/Makefile.am b/Makefile.am index a08e3e1..42879a3 100644 --- a/Makefile.am +++ b/Makefile.am @@ -38,7 +38,7 @@ RELEASE = -release 2.0 # # Once an RC is out, DO NOT MAKE ANY ABI-BREAKING CHANGES IN THAT SERIES # UNLESS YOU REALLY REALLY HAVE TO. -VERSION_INFO = 6:8:1 +VERSION_INFO = 6:9:1 # History: RELEASE VERSION_INFO # 2.0.1-alpha -- 2.0 1:0:0 @@ -61,6 +61,7 @@ VERSION_INFO = 6:8:1 # 2.0.18-stable-- 2.0 6:6:1 (No ABI change) # 2.0.19-stable-- 2.0 6:7:1 (No ABI change) # 2.0.20-stable-- 2.0 6:8:1 (No ABI change) +# 2.0.21-stable-- 2.0 6:9:1 (No ABI change) # # For Libevent 2.1: # 2.1.1-alpha -- 2.1 1:0:0 -- 1.7.4.1 |
|
From: Nick M. <ni...@us...> - 2012-11-18 07:03:32
|
Author: Nick Mathewson <ni...@to...> Date: Sun, 18 Nov 2012 01:38:07 -0500 Subject: Increment version to 2.0.21-stable Commit: 0ee10fdfee3a9f438e95efb915e4e1a4df2f4bd5 --- WIN32-Code/event2/event-config.h | 4 ++-- configure.in | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/WIN32-Code/event2/event-config.h b/WIN32-Code/event2/event-config.h index ed11769..9d085c4 100644 --- a/WIN32-Code/event2/event-config.h +++ b/WIN32-Code/event2/event-config.h @@ -277,7 +277,7 @@ /* #undef _EVENT_HAVE_WORKING_KQUEUE */ /* Numeric representation of the version */ -#define _EVENT_NUMERIC_VERSION 0x02001401 +#define _EVENT_NUMERIC_VERSION 0x02001500 /* Name of package */ #define _EVENT_PACKAGE "libevent" @@ -334,7 +334,7 @@ #define _EVENT_TIME_WITH_SYS_TIME 1 /* Version number of package */ -#define _EVENT_VERSION "2.0.20-stable-dev" +#define _EVENT_VERSION "2.0.21-stable" /* Define to appropriate substitue if compiler doesnt have __func__ */ #define _EVENT___func__ __FUNCTION__ diff --git a/configure.in b/configure.in index 5ecf5f4..18165f3 100644 --- a/configure.in +++ b/configure.in @@ -11,9 +11,9 @@ AC_INIT(event.c) AC_CONFIG_MACRO_DIR([m4]) -AM_INIT_AUTOMAKE(libevent,2.0.20-stable-dev) +AM_INIT_AUTOMAKE(libevent,2.0.21-stable) AM_CONFIG_HEADER(config.h) -AC_DEFINE(NUMERIC_VERSION, 0x02001401, [Numeric representation of the version]) +AC_DEFINE(NUMERIC_VERSION, 0x02001500, [Numeric representation of the version]) dnl Initialize prefix. if test "$prefix" = "NONE"; then -- 1.7.4.1 |
|
From: Nick M. <ni...@us...> - 2012-11-18 07:03:31
|
Author: Nick Mathewson <ni...@to...> Date: Sun, 18 Nov 2012 01:36:33 -0500 Subject: Changelog for 2.0.21-stable Commit: 1c5517c97c1331ee2ebb424c9a297536b377c26c --- ChangeLog | 16 +++++++++++++++- README | 4 ++++ 2 files changed, 19 insertions(+), 1 deletions(-) diff --git a/ChangeLog b/ChangeLog index c06ad86..eb6530d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,18 @@ -Changes in version 2.0.21-stable (?? ??? 2012) +Changes in version 2.0.21-stable (18 Nov 2012) +BUGFIXES: + o ssl: Don't discard SSL read event when timeout and read come close together (576b29f) + o ssl: Stop looping in "consider_reading" if reading is suspended. (f719b8a Joachim Bauch) + o ssl: No need to reserve space if reading is suspended. (1acf2eb Joachim Bauch) + o dns: Avoid a memory-leak on OOM in evdns. (73e85dd, f2bff75 George Danchev) + o build: Use python2 rather than python (0eb0109 Ross Lagerwall) + o build: Compile without warnings on mingw64 (94866c2) + o build: Fix compilation on mingw64 with -DUSE_DEBUG (62bd2c4) + o build: Make rpcgen_wrapper.sh work on systems without a "python2" binary (f3009e4) + o iocp: Close IOCP listener socket on free when LEV_OPT_CLOSE_ON_FREE is set (cb853ea Juan Pablo Fernandez) + o core: Avoid crash when event_pending() called with no event_base set on event (e3cccf3) + o misc: remove stray 'x' so print_err will compile when uncommented (ac35650 Patrick Pelletier) + o tests: Fix renegotiation test to work around openssl 1.0.1 bug (c2f3086) + o tests: Warn when openssl version in unit test mismatches compiled version. (ac009f9) Changes in version 2.0.20-stable (23 Aug 2012) diff --git a/README b/README index 9f719ce..23b769f 100644 --- a/README +++ b/README @@ -92,7 +92,9 @@ fixing bugs: Shuo Chen Ka-Hing Cheung Andrew Cox + George Danchev Andrew Danforth + Antony Dovgal Ed Day Christopher Davis Mike Davis @@ -100,6 +102,7 @@ fixing bugs: Mark Ellzey Shie Erlich Leonid Evdokimov + Juan Pablo Fernandez Christophe Fillot Mike Frysinger Remi Gacogne @@ -154,6 +157,7 @@ fixing bugs: Dave Pacheco Tassilo von Parseval Catalin Patulea + Patrick Pelletier Simon Perreault Pierre Phaneuf Ryan Phillips -- 1.7.4.1 |
|
From: Nick M. <ni...@us...> - 2012-11-18 07:03:30
|
Author: Nick Mathewson <ni...@to...>
Date: Sun, 18 Nov 2012 01:36:03 -0500
Subject: Make ssl version check in unit tests work
Commit: f38e07886829bb4613d3fa08c06d65b2d18ae584
---
test/regress_ssl.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/test/regress_ssl.c b/test/regress_ssl.c
index 271a962..1ce5f6a 100644
--- a/test/regress_ssl.c
+++ b/test/regress_ssl.c
@@ -159,7 +159,7 @@ init_ssl(void)
SSL_load_error_strings();
OpenSSL_add_all_algorithms();
if (SSLeay() != OPENSSL_VERSION_NUMBER) {
- TT_DECLARE("WARN", ("Version mismatch for openssl: compiled with %lx but running with %lx", OPENSSL_VERSION_NUMBER, SSLeay()));
+ TT_DECLARE("WARN", ("Version mismatch for openssl: compiled with %lx but running with %lx", (unsigned long)OPENSSL_VERSION_NUMBER, (unsigned long)SSLeay()));
}
}
--
1.7.4.1
|
|
From: Nick M. <ni...@us...> - 2012-11-18 06:42:58
|
Author: Nick Mathewson <ni...@to...>
Date: Sun, 18 Nov 2012 01:40:33 -0500
Subject: Fix a gcc warning in rtrim test
Commit: 173d782345eb3647d02e4d8a6209c690f1fbd07b
---
test/regress_util.c | 8 ++------
1 files changed, 2 insertions(+), 6 deletions(-)
diff --git a/test/regress_util.c b/test/regress_util.c
index 6c8374d..9f8c316 100644
--- a/test/regress_util.c
+++ b/test/regress_util.c
@@ -440,18 +440,14 @@ test_evutil_rtrim(void *ptr)
#define TEST_TRIM(s, result) \
do { \
if (cp) mm_free(cp); \
- cp = s ? mm_strdup(s) : NULL; \
+ cp = mm_strdup(s); \
evutil_rtrim_lws_(cp); \
- if (result == NULL) \
- tt_ptr_op(cp, ==, NULL); \
- else \
- tt_str_op(cp, ==, result); \
+ tt_str_op(cp, ==, result); \
} while(0)
char *cp = NULL;
(void) ptr;
- TEST_TRIM(NULL, NULL);
TEST_TRIM("", "");
TEST_TRIM("a", "a");
TEST_TRIM("abcdef ghi", "abcdef ghi");
--
1.7.4.1
|
|
From: Nick M. <ni...@us...> - 2012-11-18 06:42:57
|
Author: Nick Mathewson <ni...@to...>
Date: Sun, 18 Nov 2012 01:40:13 -0500
Subject: Fix a warning when building without threading.
Commit: f2703b2e3428b918c50d4becb36a9c0b184b5c58
---
event.c | 5 ++---
1 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/event.c b/event.c
index 0fdd5d3..ce2828f 100644
--- a/event.c
+++ b/event.c
@@ -1783,12 +1783,11 @@ static void
event_once_cb(evutil_socket_t fd, short events, void *arg)
{
struct event_once *eonce = arg;
- struct event_base *base = eonce->ev.ev_base;
(*eonce->cb)(fd, events, eonce->arg);
- EVBASE_ACQUIRE_LOCK(base, th_base_lock);
+ EVBASE_ACQUIRE_LOCK(eonce->ev.ev_base, th_base_lock);
LIST_REMOVE(eonce, next_once);
- EVBASE_RELEASE_LOCK(base, th_base_lock);
+ EVBASE_RELEASE_LOCK(eonce->ev.ev_base, th_base_lock);
event_debug_unassign(&eonce->ev);
mm_free(eonce);
}
--
1.7.4.1
|