Nick Mathewson [Mon, 26 Sep 2011 15:07:58 +0000 (11:07 -0400)]
Merge branch '20_loopbreak_in_signal' into patches-2.0
Nick Mathewson [Sun, 25 Sep 2011 11:39:00 +0000 (07:39 -0400)]
Use _SOURCES, not _sources, in sample/Makefile.am
Found by Adrian Chadd
Sergey Avseyev [Thu, 15 Sep 2011 10:06:38 +0000 (13:06 +0300)]
le-proxy and regress depend on openssl directly
Leonid Evdokimov [Wed, 10 Aug 2011 11:58:47 +0000 (15:58 +0400)]
Add DNS_ERR_NODATA error code to handle empty replies.
Leonid Evdokimov [Wed, 10 Aug 2011 11:58:19 +0000 (15:58 +0400)]
Fix docstring in dns.h
Nick Mathewson [Sat, 10 Sep 2011 00:53:30 +0000 (20:53 -0400)]
When a signal callback is activated to run multiple times, allow event_base_loopbreak to work even before they all have run.
Found by Abilio Marques.
Leonid Evdokimov [Tue, 30 Aug 2011 20:56:45 +0000 (00:56 +0400)]
DNS: add ttl for negative answers using RFC 2308 idea.
Nick Mathewson [Wed, 31 Aug 2011 15:25:11 +0000 (11:25 -0400)]
Increment version to 2.0.14-stable-dev
Nick Mathewson [Wed, 31 Aug 2011 04:23:20 +0000 (00:23 -0400)]
Credit new contributors for 2.0.14-stable
Nick Mathewson [Wed, 31 Aug 2011 02:35:51 +0000 (22:35 -0400)]
Pick a release date for the changelog
Nick Mathewson [Wed, 31 Aug 2011 02:28:02 +0000 (22:28 -0400)]
Bump version to 2.0.14-stable
Joachim Bauch [Mon, 29 Aug 2011 21:39:26 +0000 (23:39 +0200)]
clear read watermark on underlying bufferevent when creating filtering bev to fix potentially failing fragmented ssl handshakes
Nick Mathewson [Mon, 29 Aug 2011 17:40:03 +0000 (13:40 -0400)]
Checkpoint changelog entries for 2.0.14-stable
Nick Mathewson [Thu, 25 Aug 2011 01:39:28 +0000 (21:39 -0400)]
Correctly terminate IO on an async bufferevent on bufferevent_free
Nick Mathewson [Wed, 24 Aug 2011 22:42:12 +0000 (18:42 -0400)]
Have test-ratelim.c support IOCP
Nick Mathewson [Wed, 24 Aug 2011 22:41:35 +0000 (18:41 -0400)]
Make IOCP rate-limiting group support stricter and less surprising.
Previously, we wouldn't decrement read/write buckets because of IOCP
reads and writes until those reads and writes were complete. That's
not so bad on the per-connection front. But for group limits, the
old approach makes us launch a huge amount of reads and writes
whenever the group limit becomes positive, and then decrement the
limit to a hugely negative number as they complete.
With this patch, we decrement our read buckets whenever we launch an
IOCP read or write, based on the maximum that tried to read or
write. Later, when the operations finish, we re-increment the
bucket based on the portion of the request that couldn't finish.
Nick Mathewson [Wed, 24 Aug 2011 22:42:00 +0000 (18:42 -0400)]
Support negative arguments to _bufferevent_decrement_(read/write)_buckets()
Nick Mathewson [Sun, 28 Aug 2011 18:03:10 +0000 (14:03 -0400)]
Cleanup on
7c11e51e1ab: fix strtol usage
Nick Mathewson [Sun, 28 Aug 2011 18:02:40 +0000 (14:02 -0400)]
Cleanup on
7c11e51e1ab: restore c90 declaration compliance
Harlan Stenn [Sat, 27 Aug 2011 09:48:11 +0000 (05:48 -0400)]
Clean up some problems identified by Coverity.
Nick Mathewson [Wed, 24 Aug 2011 20:17:05 +0000 (16:17 -0400)]
Make rate limiting work with common_timeout logic
Nick Mathewson [Thu, 18 Aug 2011 19:09:44 +0000 (15:09 -0400)]
Merge branch '20_iocp_fixes' into patches-2.0
Nick Mathewson [Thu, 18 Aug 2011 16:35:27 +0000 (12:35 -0400)]
Make overlapped reads result in evbuffer callbacks getting invoked
Nick Mathewson [Thu, 18 Aug 2011 15:41:55 +0000 (11:41 -0400)]
IOCP: don't launch reads or writes on an unconnected socket
Dave Hart [Mon, 15 Aug 2011 18:40:32 +0000 (14:40 -0400)]
Try to fix 'make distcheck' errors when building out-of-tree
Nick Mathewson [Thu, 18 Aug 2011 01:47:19 +0000 (21:47 -0400)]
Merge branch '20_low_ratelim' into patches-2.0
Michael Herf [Mon, 15 Aug 2011 17:39:10 +0000 (13:39 -0400)]
Solaris sendfile: correctly detect amount of data sent
Original message:
Solaris sendfile seems to fail when sending moderately large (<1GB)
files. Not a 32/64 problem, but a buffer problem.
Anyone else ever try this? It is definitely broken in http-server.c.
It seems to be broken in the following way:
When sendfile sends partial data (EAGAIN, would block), "res" is
always -1, rather than the amount sent.
Here's a patch that reads from the "offset" pointer instead to
discover what was sent. This seems to work:
Leonid Evdokimov [Wed, 10 Aug 2011 23:24:06 +0000 (03:24 +0400)]
Fix request_finished memory leak with debugging turned on.
Leonid Evdokimov [Wed, 10 Aug 2011 23:10:08 +0000 (03:10 +0400)]
Fix evsig_dealloc memory leak with debugging turned on.
Leonid Evdokimov [Wed, 10 Aug 2011 23:06:07 +0000 (03:06 +0400)]
Another docstring fix.
Nick Mathewson [Thu, 11 Aug 2011 19:15:17 +0000 (15:15 -0400)]
Fix handling of group rate limits under 64 bytes of burst
The "min_share" logic, which was designed to prevent piles of
extremely small writes when running up against a group rate limit,
could lead to confusing behavior if you ever set a min_share less
than your burst rate. If that happened, then as soon as your group
rate limit was exhausted, you'd stop reading/writing, and never
start again, since the amount readable/writeable would never
actually hit min_share.
We now cap min_share at the rate per tick.
Found by George Kadianakis
Sebastian Hahn [Wed, 10 Aug 2011 17:11:55 +0000 (19:11 +0200)]
Ignore deprecation warnings on OS X
Starting with Lion, Apple decided to deprecate the system openssl. We
can start requiring users to install their own openssl once OS X doesn't
ship with it anymore.
Mitchell Livingston [Mon, 8 Aug 2011 21:06:46 +0000 (17:06 -0400)]
Allow OS-neutral builds for platforms where some versions have arc4random_buf
Joachim Bauch [Tue, 26 Jul 2011 08:31:18 +0000 (10:31 +0200)]
Propagate errors on the underlying bufferevent to the user.
Nick Mathewson [Mon, 1 Aug 2011 14:27:56 +0000 (10:27 -0400)]
Fix typo in event_compat.h comments.
Nick Mathewson [Tue, 19 Jul 2011 03:37:59 +0000 (23:37 -0400)]
Bump version to 2.0.13-stable-dev
Nick Mathewson [Mon, 18 Jul 2011 22:19:25 +0000 (18:19 -0400)]
Bump version to 2.0.13-dev
Nick Mathewson [Mon, 18 Jul 2011 21:05:20 +0000 (17:05 -0400)]
acks and changelog for 2.0.13-stable
Nick Mathewson [Mon, 18 Jul 2011 16:45:50 +0000 (12:45 -0400)]
Give Makefile.am echo a non-null argument. msys likes this
Nick Mathewson [Mon, 18 Jul 2011 01:48:38 +0000 (21:48 -0400)]
Fix a warning in evutil_rand when building with threads disabled
Nick Mathewson [Fri, 15 Jul 2011 14:20:01 +0000 (10:20 -0400)]
Use AM_CPPFLAGS in sample/Makefile.am, not AM_CFLAGS
Reported by Dagobert Michelsen.
Nick Mathewson [Tue, 5 Jul 2011 18:57:08 +0000 (14:57 -0400)]
Add doxygen to .gitignore
Nick Mathewson [Tue, 5 Jul 2011 18:55:09 +0000 (14:55 -0400)]
Fix up test_evutil_snprintf
Nick Mathewson [Tue, 5 Jul 2011 18:51:24 +0000 (14:51 -0400)]
Merge remote-tracking branch 'github/20_size_fmt' into patches-2.0
Nick Mathewson [Tue, 5 Jul 2011 17:04:30 +0000 (13:04 -0400)]
Merge branch 'doxygen' into patches-2.0
Nick Mathewson [Tue, 5 Jul 2011 03:14:19 +0000 (23:14 -0400)]
Update Doxyfile to produce more useful output
Nick Mathewson [Tue, 5 Jul 2011 03:02:11 +0000 (23:02 -0400)]
Revise the event/evbuffer/bufferevent doxygen for clarity and accuracy
Nick Mathewson [Tue, 5 Jul 2011 04:11:59 +0000 (00:11 -0400)]
Fix select.c compilation on systems with no NFDBITS
Nick Mathewson [Mon, 4 Jul 2011 16:16:08 +0000 (12:16 -0400)]
Merge remote-tracking branch 'github/20_global_locks_init' into patches-2.0
Mark Ellzey [Mon, 4 Jul 2011 15:47:24 +0000 (11:47 -0400)]
Speed up invoke_callbacks on evbuffers when there are no callbacks
This fixes a performance regression against 1.4
Joachim Bauch [Mon, 4 Jul 2011 15:36:14 +0000 (11:36 -0400)]
Fix bug in SSL bufferevents backed by a bev with a write high-watermarks
Original mail:
the logic that handles write watermarks in "bio_bufferevent_write"
is not working. It currently doesn't write any data if the high
watermark is *above* the amount of data to write (i.e. when there
is actually enough room available).
Nicholas Marriott [Sun, 3 Jul 2011 01:49:07 +0000 (21:49 -0400)]
Fix a few warnings on OpenBSD
- redeclaration of dst_size
- arpa/inet.h requires netinet/in.h first
- don't use a local with the same name as a global - it isn't needed so
remove it
Nick Mathewson [Wed, 22 Jun 2011 15:22:35 +0000 (11:22 -0400)]
Fix AIX build issue with TAILQ_FOREACH definition
Reported by Lawnstein Chan.
Harlan Stenn [Tue, 21 Jun 2011 14:05:28 +0000 (10:05 -0400)]
Don't install event_rpcgen.py when --disable-libevent-install is used
Nick Mathewson [Thu, 16 Jun 2011 17:19:43 +0000 (13:19 -0400)]
Merge branch '20_kqueue_badf' into patches-2.0
Nick Mathewson [Tue, 14 Jun 2011 18:37:49 +0000 (14:37 -0400)]
Don't break when building tests from git without python installed
Nick Mathewson [Sat, 11 Jun 2011 05:26:54 +0000 (01:26 -0400)]
Simplify windows commandname logic in tinytest
Instead of using a dup'd pointer, let's use a static array, so we
don't need to free it. This patch also makes tinytest build on
non-windows again.
Ed Day [Sat, 11 Jun 2011 04:49:24 +0000 (00:49 -0400)]
Fix tinytest invocation from windows shell
Original post:
This post is in response to a posting last December on a Windows
regression fork failure ([Libevent-users] Re: Libevent 2.0.10-stable
is released by Dongsheng Song). I noticed the question was not
answered and I recently experienced the same error myself when
trying to run the Windows regression tests myself.
I checked the return status from the CreateProcess call and found it
was "file not found". This led me to look at the command-line I was
using which was .\regress in a Visual Studio 2008 command prompt
window. Windows could not find the file because it did not have the
.exe extension on the end. The code that builds the command should
be modified to ensure the extension is present.
Nick Mathewson [Wed, 8 Jun 2011 21:18:03 +0000 (17:18 -0400)]
Use the correct printf args when formatting size_t
Based on a patch from Mansour Moufid
Mansour Moufid [Fri, 27 May 2011 22:40:31 +0000 (18:40 -0400)]
Check if the `evhttp_new_object' function in `http.c' returns NULL.
Nick Mathewson [Wed, 8 Jun 2011 18:56:19 +0000 (14:56 -0400)]
Report kqueue ebadf, epipe, and eperm as EV_READ events
When asked to add one side of a pipe, and the other side has been
closed, kqueue on NetBSD will say EBADF; kqueue on FreeBSD will say
EPIPE, and kqueue on OpenBSD will say EPERM. So treat all of these
as EV_READ events, to give the user an opportunity to notice that
the pipe is closed.
Diagnosed by Nicholas Marriott and Dale Rahn; based on a patch by
Nicholas Marriott.
Nick Mathewson [Wed, 8 Jun 2011 18:24:45 +0000 (14:24 -0400)]
Replace an assertion for event_base_free(NULL) with a check-and-warn
event_base_free(NULL) means "free the current event base".
Previously, it would assert if there was no 'current' base. Now it
just warns and returns.
Reported by Gilad Benjamini
Nick Mathewson [Wed, 8 Jun 2011 18:18:41 +0000 (14:18 -0400)]
Add some missing checks for mm_calloc failures
Found by Gilad Benjamini
Nick Mathewson [Mon, 6 Jun 2011 19:11:28 +0000 (15:11 -0400)]
Fix incorrect results from evbuffer_search_eol(EOL_LF)
Our evbuffer_strchr() function [which was only used for
search_eol(EOL_LF) could give incorrect results if it found its answer
in the first chunk but didn't start searching from the front of the
chunk.
Also, this patch adds unit tests for evbuffer_search_eol, particularly
in those cases that evbuffer_readln() tests didn't exercise.
Nick Mathewson [Sun, 5 Jun 2011 01:36:34 +0000 (21:36 -0400)]
Bump version to 2.0.12-stable-dev
Nick Mathewson [Sun, 5 Jun 2011 01:12:53 +0000 (21:12 -0400)]
Merge branch 'patches-2.0' of ssh://levent.git.sourceforge.net/gitroot/levent/libevent into patches-2.0
Nick Mathewson [Sun, 5 Jun 2011 01:11:09 +0000 (21:11 -0400)]
tweak date on changelog
Nick Mathewson [Sat, 4 Jun 2011 14:34:14 +0000 (10:34 -0400)]
Merge branch 'patches-2.0' of ssh://levent.git.sourceforge.net/gitroot/levent/libevent into patches-2.0
Nick Mathewson [Fri, 3 Jun 2011 21:08:30 +0000 (17:08 -0400)]
Changelog and new credits for 2.0.12-stable
Nick Mathewson [Fri, 3 Jun 2011 21:08:14 +0000 (17:08 -0400)]
Bump version to 2.0.12-stable. Not release just yet
Nick Mathewson [Fri, 3 Jun 2011 21:06:17 +0000 (17:06 -0400)]
Fix regress_ssl.c build on openbsd
Nick Mathewson [Wed, 1 Jun 2011 21:27:28 +0000 (17:27 -0400)]
Avoid a segfault when all methods are disabled or broken
Nick Mathewson [Wed, 1 Jun 2011 17:48:02 +0000 (13:48 -0400)]
cygwin: make it possible to build DLLs
Patch from Brian Koehmstedt
Nick Mathewson [Mon, 30 May 2011 16:06:36 +0000 (12:06 -0400)]
Merge branch '20_select_nfds' into patches-2.0
Nick Mathewson [Mon, 30 May 2011 15:53:19 +0000 (11:53 -0400)]
Fix a fencepost bug in the select backend
This bug would sometimes lead us to looking one bit off the end of
the fdset arrays, and trying to activate a (nonexistent) event if
that bit was set.
Found by Harlann Stenn. Fixes a test failure on OpenSolaris.
Nick Mathewson [Sat, 28 May 2011 03:28:17 +0000 (23:28 -0400)]
Make the new http_connect_fail_test use a multicast addr, not broadcast
Turns out that FreeBSD does _not_ give a ENETUNREACH error when
told to make a TCP socket to 255.255.255.255, but it is quite happy
to do so for 239.10.20.30. So that's what we'll do.
Found by Robert Ransom and Dave Hart.
Peter Rosin [Thu, 26 May 2011 08:10:57 +0000 (10:10 +0200)]
InitializeCriticalSectionAndSpinCount requires _WIN32_WINNT >= 0x0403.
Nick Mathewson [Fri, 27 May 2011 19:08:25 +0000 (15:08 -0400)]
Fix a couple of signed/unsigned warnings in http.c
Nick Mathewson [Fri, 27 May 2011 18:57:55 +0000 (14:57 -0400)]
Disable main/many_events_slow_add with evport backend
In 2.0 and earlier, evport only reports up to 8 events at a time, which
confuses this test badly.
Nick Mathewson [Thu, 26 May 2011 21:43:17 +0000 (17:43 -0400)]
Fix compilation.
Nick Mathewson [Thu, 26 May 2011 21:34:15 +0000 (17:34 -0400)]
Merge branch 'intcmp_overflow_fixes' into patches-2.0
Mark Ellzey [Wed, 25 May 2011 22:52:07 +0000 (18:52 -0400)]
updated EV_S(s)IZE definitions
Mark Ellzey [Wed, 25 May 2011 18:31:09 +0000 (14:31 -0400)]
Added overflow checks in evhttp_read_body and evhttp_get_body
Mark Ellzey [Wed, 25 May 2011 16:58:59 +0000 (12:58 -0400)]
Added several checks for under/overflow conditions in evhttp_handle_chunked_read
Sebastian Hahn [Thu, 26 May 2011 00:05:54 +0000 (02:05 +0200)]
Always use evutil_snprintf, even if OS provides it
In test/tinytest_local.h we can't redefine snprintf if the OS has it
defined already.
Peter Rosin [Wed, 25 May 2011 13:11:01 +0000 (15:11 +0200)]
Use evutil_gettimeofday instead of relying on the system gettimeofday.
Peter Rosin [Wed, 25 May 2011 09:04:43 +0000 (11:04 +0200)]
Fix winsock2.h #include issues with MSVC
Define WIN32_LEAN_AND_MEAN, so that windows.h does not bring in
winsock.h which in turn makes it impossible to #include <winsock2.h>
(at least with MSVC)
Peter Rosin [Wed, 25 May 2011 22:03:38 +0000 (00:03 +0200)]
Make sure TINYTEST_LOCAL is defined when building tinytest.c
Peter Rosin [Wed, 25 May 2011 08:58:48 +0000 (10:58 +0200)]
unistd.h and sys/time.h might not exist.
Peter Rosin [Wed, 25 May 2011 08:57:16 +0000 (10:57 +0200)]
MSVC does not provide S_ISDIR, so provide it manually.
Peter Rosin [Wed, 25 May 2011 08:56:32 +0000 (10:56 +0200)]
Bring in the compile script from automake, if needed.
Peter Rosin [Wed, 25 May 2011 08:55:41 +0000 (10:55 +0200)]
Make the tests build when OpenSSL is not available.
Don't #define HAVE_OPENSSL (to zero) when OpenSSL is not available.
Code written as #ifdef HAVE_OPENSSL do not expect that.
Peter Rosin [Wed, 25 May 2011 08:54:06 +0000 (10:54 +0200)]
Link with -lshell32 and -ladvapi32 on Win32.
SHGetSpecialFolderPath is in Shell32.dll and the RegOpenKey (et al) and
CryptGenRandom (et al) functions are in -ladvapi32.dll. MinGW is "nice"
and brings those in automatically, but specify them explicitly for
other tool chains.
Nick Mathewson [Wed, 25 May 2011 20:51:25 +0000 (16:51 -0400)]
Fix new warnings from GCC 4.6
Mansour Moufid [Mon, 23 May 2011 22:01:24 +0000 (18:01 -0400)]
Prevent size_t overflow in evhttp_htmlescape.
Modified the `html_replace' function so that it returns the length of
the replacement string instead of the string itself. This is used to
easily check for overflows of the `new_size' variable in the first for
loop of the `evhttp_htmlescape' function, and thus potential out of
bounds writes in the second for loop (if an overflow occurs in
new_size, then new_size < old_size). Also check that new_size + 1
doesn't overflow in mm_malloc(new_size + 1).
Removed the `scratch_space' variable from the `evhttp_htmlescape'
function since it wasn't actually used; also removed the `buf'
variable from the `evhttp_htmlescape' function since it was only used
by `scratch_space'.
Nick Mathewson [Mon, 23 May 2011 21:45:14 +0000 (17:45 -0400)]
Fix a bug that prevented us from configuring IPv6 nameservers.
Kevin Ko [Mon, 23 May 2011 05:40:05 +0000 (01:40 -0400)]
Test case for
0848814ac49616
"I'm not sure if you'll like my use of the limited broadcast address
for simulating an ENETUNREACH error with a TCP connection, but it's
the best that I could think of. Basically, we want to trigger a
non-EINPROGRESS error in evutil_socket_connect() immediately at the
connect() in order to bring about the assertion in the
evhttp_connection_fail() error handling code."
Kevin Ko [Sat, 21 May 2011 03:23:44 +0000 (23:23 -0400)]
Fix failing assertion introducd in commit
0d6622e
Patch in question:
- Fix the case when failed evhttp_make_request() leaved request in the queue.
- http://levent.git.sourceforge.net/git/gitweb.cgi?p=levent/libevent;a=commit;h=
0d6622e
The above patch introduces a failing assertion in
evhttp_connection_fail(). This happens because the patch defers the
assignment of the outstanding request to the evcon->requests list,
while evhttp_connection_fail() assumes that the request lies in the
list.
One scenario in which this can happen is when the request list is
empty and a connection is made to an unreachable host. The assertion
will then fail after bufferevent_socket_connect() errors out (with
ENETUNREACH in my case).
Dave Hart [Fri, 20 May 2011 18:18:08 +0000 (14:18 -0400)]
Fix compilation with GCC 2, which had no __builtin_expect
Sebastian Hahn [Thu, 5 May 2011 16:02:42 +0000 (18:02 +0200)]
Fix a compile warning with zlib 1.2.4 and 1.2.5
I took this fix from Tor (commit
1a52e39c22d5, author Nick Mathewson,
Copyright (c) 2007-2011, The Tor Project, Inc.) and adapted it slightly
for libevent.