]> granicus.if.org Git - libevent/log
libevent
13 years agoFix AIX build issue with TAILQ_FOREACH definition
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.

13 years agoDon't install event_rpcgen.py when --disable-libevent-install is used
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

13 years agoMerge branch '20_kqueue_badf' into patches-2.0
Nick Mathewson [Thu, 16 Jun 2011 17:19:43 +0000 (13:19 -0400)]
Merge branch '20_kqueue_badf' into patches-2.0

13 years agoDon't break when building tests from git without python installed
Nick Mathewson [Tue, 14 Jun 2011 18:37:49 +0000 (14:37 -0400)]
Don't break when building tests from git without python installed

13 years agoSimplify windows commandname logic in tinytest
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.

13 years agoFix tinytest invocation from windows shell
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.

13 years agoCheck if the `evhttp_new_object' function in `http.c' returns NULL.
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.

13 years agoReport kqueue ebadf, epipe, and eperm as EV_READ events
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.

13 years agoReplace an assertion for event_base_free(NULL) with a check-and-warn
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

13 years agoAdd some missing checks for mm_calloc failures
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

13 years agoFix incorrect results from evbuffer_search_eol(EOL_LF)
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.

13 years agoBump version to 2.0.12-stable-dev
Nick Mathewson [Sun, 5 Jun 2011 01:36:34 +0000 (21:36 -0400)]
Bump version to 2.0.12-stable-dev

13 years agoMerge branch 'patches-2.0' of ssh://levent.git.sourceforge.net/gitroot/levent/libeven...
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

13 years agotweak date on changelog
Nick Mathewson [Sun, 5 Jun 2011 01:11:09 +0000 (21:11 -0400)]
tweak date on changelog

13 years agoMerge branch 'patches-2.0' of ssh://levent.git.sourceforge.net/gitroot/levent/libeven...
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

13 years agoChangelog and new credits for 2.0.12-stable release-2.0.12-stable
Nick Mathewson [Fri, 3 Jun 2011 21:08:30 +0000 (17:08 -0400)]
Changelog and new credits for 2.0.12-stable

13 years agoBump version to 2.0.12-stable. Not release just yet
Nick Mathewson [Fri, 3 Jun 2011 21:08:14 +0000 (17:08 -0400)]
Bump version to 2.0.12-stable.  Not release just yet

13 years agoFix regress_ssl.c build on openbsd
Nick Mathewson [Fri, 3 Jun 2011 21:06:17 +0000 (17:06 -0400)]
Fix regress_ssl.c build on openbsd

13 years agoAvoid a segfault when all methods are disabled or broken
Nick Mathewson [Wed, 1 Jun 2011 21:27:28 +0000 (17:27 -0400)]
Avoid a segfault when all methods are disabled or broken

13 years agocygwin: make it possible to build DLLs
Nick Mathewson [Wed, 1 Jun 2011 17:48:02 +0000 (13:48 -0400)]
cygwin: make it possible to build DLLs

Patch from Brian Koehmstedt

13 years agoMerge branch '20_select_nfds' into patches-2.0
Nick Mathewson [Mon, 30 May 2011 16:06:36 +0000 (12:06 -0400)]
Merge branch '20_select_nfds' into patches-2.0

13 years agoFix a fencepost bug in the select backend
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.

13 years agoMake the new http_connect_fail_test use a multicast addr, not broadcast
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.

13 years agoInitializeCriticalSectionAndSpinCount requires _WIN32_WINNT >= 0x0403.
Peter Rosin [Thu, 26 May 2011 08:10:57 +0000 (10:10 +0200)]
InitializeCriticalSectionAndSpinCount requires _WIN32_WINNT >= 0x0403.

13 years agoFix a couple of signed/unsigned warnings in http.c
Nick Mathewson [Fri, 27 May 2011 19:08:25 +0000 (15:08 -0400)]
Fix a couple of signed/unsigned warnings in http.c

13 years agoDisable main/many_events_slow_add with evport backend
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.

13 years agoFix compilation.
Nick Mathewson [Thu, 26 May 2011 21:43:17 +0000 (17:43 -0400)]
Fix compilation.

13 years agoMerge branch 'intcmp_overflow_fixes' into patches-2.0
Nick Mathewson [Thu, 26 May 2011 21:34:15 +0000 (17:34 -0400)]
Merge branch 'intcmp_overflow_fixes' into patches-2.0

13 years agoupdated EV_S(s)IZE definitions
Mark Ellzey [Wed, 25 May 2011 22:52:07 +0000 (18:52 -0400)]
updated EV_S(s)IZE definitions

13 years agoAdded overflow checks in evhttp_read_body and evhttp_get_body
Mark Ellzey [Wed, 25 May 2011 18:31:09 +0000 (14:31 -0400)]
Added overflow checks in evhttp_read_body and evhttp_get_body

13 years agoAdded several checks for under/overflow conditions in evhttp_handle_chunked_read
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

13 years agoAlways use evutil_snprintf, even if OS provides it
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.

13 years agoUse evutil_gettimeofday instead of relying on the system gettimeofday.
Peter Rosin [Wed, 25 May 2011 13:11:01 +0000 (15:11 +0200)]
Use evutil_gettimeofday instead of relying on the system gettimeofday.

13 years agoFix winsock2.h #include issues with MSVC
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)

13 years agoMake sure TINYTEST_LOCAL is defined when building tinytest.c
Peter Rosin [Wed, 25 May 2011 22:03:38 +0000 (00:03 +0200)]
Make sure TINYTEST_LOCAL is defined when building tinytest.c

13 years agounistd.h and sys/time.h might not exist.
Peter Rosin [Wed, 25 May 2011 08:58:48 +0000 (10:58 +0200)]
unistd.h and sys/time.h might not exist.

13 years agoMSVC does not provide S_ISDIR, so provide it manually.
Peter Rosin [Wed, 25 May 2011 08:57:16 +0000 (10:57 +0200)]
MSVC does not provide S_ISDIR, so provide it manually.

13 years agoBring in the compile script from automake, if needed.
Peter Rosin [Wed, 25 May 2011 08:56:32 +0000 (10:56 +0200)]
Bring in the compile script from automake, if needed.

13 years agoMake the tests build when OpenSSL is not available.
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.

13 years agoLink with -lshell32 and -ladvapi32 on Win32.
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.

13 years agoFix new warnings from GCC 4.6
Nick Mathewson [Wed, 25 May 2011 20:51:25 +0000 (16:51 -0400)]
Fix new warnings from GCC 4.6

13 years agoPrevent size_t overflow in evhttp_htmlescape.
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'.

13 years agoFix a bug that prevented us from configuring IPv6 nameservers.
Nick Mathewson [Mon, 23 May 2011 21:45:14 +0000 (17:45 -0400)]
Fix a bug that prevented us from configuring IPv6 nameservers.

13 years agoTest case for 0848814ac49616
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."

13 years agoFix failing assertion introducd in commit 0d6622e
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).

13 years agoFix compilation with GCC 2, which had no __builtin_expect
Dave Hart [Fri, 20 May 2011 18:18:08 +0000 (14:18 -0400)]
Fix compilation with GCC 2, which had no __builtin_expect

13 years agoFix a compile warning with zlib 1.2.4 and 1.2.5
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.

13 years agoCorrectly detect openssl on windows
Sebastian Hahn [Thu, 5 May 2011 14:27:55 +0000 (16:27 +0200)]
Correctly detect openssl on windows

13 years agoMove the win32 detection in configure.in
Sebastian Hahn [Thu, 5 May 2011 13:51:11 +0000 (15:51 +0200)]
Move the win32 detection in configure.in

13 years agoUse OPENSSL_LIBS in Makefile.am
Sebastian Hahn [Thu, 5 May 2011 13:49:38 +0000 (15:49 +0200)]
Use OPENSSL_LIBS in Makefile.am

13 years agoLibtool brings in the dependencies of libevent_openssl.la automatically
Peter Rosin [Wed, 4 May 2011 14:37:58 +0000 (16:37 +0200)]
Libtool brings in the dependencies of libevent_openssl.la automatically

13 years agolibssl depends on libcrypto, not the other way around.
Peter Rosin [Wed, 4 May 2011 14:34:28 +0000 (16:34 +0200)]
libssl depends on libcrypto, not the other way around.

13 years agoOops; that new unit test breaks for epoll. Fix it.
Nick Mathewson [Tue, 3 May 2011 18:22:48 +0000 (14:22 -0400)]
Oops; that new unit test breaks for epoll.  Fix it.

13 years agoFix a warn-and-fail bug in kqueue by providing kevent() room to report errors
Nick Mathewson [Tue, 3 May 2011 17:54:57 +0000 (13:54 -0400)]
Fix a warn-and-fail bug in kqueue by providing kevent() room to report errors

Apparently, kevent fails gracefully if there is not enough space in its
output events array to report every _event_... but it just dies and returns
-1 if there is not enough space to report every _error_.

There are a couple of possible fixes here.  One would to handle -1
returns from kevent better by re-growing the array and retrying... but
that seems a little error prone.  Instead, I'm just going to say that
the events array must be large enough to handle all the errors.

This patch also adds a unit test designed to make sure that our
many-events-out code works even if not all the events are added at
once.

13 years agoAdd missing words to EVLOOP_NONBLOCK documentation
Nick Mathewson [Tue, 3 May 2011 03:22:09 +0000 (23:22 -0400)]
Add missing words to EVLOOP_NONBLOCK documentation

13 years agoBump version to 2.0.11-stable-dev
Nick Mathewson [Thu, 28 Apr 2011 01:28:11 +0000 (21:28 -0400)]
Bump version to 2.0.11-stable-dev

13 years agoIncrement version number to 2.0.11-stable release-2.0.11-stable
Nick Mathewson [Thu, 28 Apr 2011 00:25:57 +0000 (20:25 -0400)]
Increment version number to 2.0.11-stable

13 years agoAdd more people to the acknowledgments
Nick Mathewson [Thu, 28 Apr 2011 00:15:20 +0000 (20:15 -0400)]
Add more people to the acknowledgments

13 years agoChangelog for 2.0.11-stable
Nick Mathewson [Thu, 28 Apr 2011 00:03:46 +0000 (20:03 -0400)]
Changelog for 2.0.11-stable

13 years agoFix clang warning when resetting connection
Nick Mathewson [Wed, 27 Apr 2011 03:42:01 +0000 (23:42 -0400)]
Fix clang warning when resetting connection

This was a regression on 2.0.10-stable: clang was warning about
values that were unused (because event_debug wasn't using them unless
USE_DEBUG was defined).  Found by Sebastian Hahn.

13 years agoUse AM_CONDITIONAL, not AC_SUBST, to tell automake to build regress
Nick Mathewson [Sat, 23 Apr 2011 06:35:17 +0000 (02:35 -0400)]
Use AM_CONDITIONAL, not AC_SUBST, to tell automake to build regress

For some reason, this makes mingw much happier about building
regress.exe by default.  No, I'm afraid I don't know why.

13 years agoFix msvc build: it needed to know about _EVENT_HAVE_STRUCT_SOCKADDR_STORAGE
Nick Mathewson [Sat, 23 Apr 2011 06:31:04 +0000 (02:31 -0400)]
Fix msvc build: it needed to know about _EVENT_HAVE_STRUCT_SOCKADDR_STORAGE

13 years agoTry to fix up CHECK_REGRESS hack to not break on win32
Nick Mathewson [Sat, 23 Apr 2011 05:48:11 +0000 (01:48 -0400)]
Try to fix up CHECK_REGRESS hack to not break on win32

13 years agoAdd missing header for regress_http compilation on win32
Nick Mathewson [Sat, 23 Apr 2011 05:47:43 +0000 (01:47 -0400)]
Add missing header for regress_http compilation on win32

13 years agoMerge branch '20_iocp_conn_sockopt' into patches-2.0
Nick Mathewson [Sat, 23 Apr 2011 05:47:11 +0000 (01:47 -0400)]
Merge branch '20_iocp_conn_sockopt' into patches-2.0

13 years agocall setsockopt correctly on connecting() IOCP-bufferevents so shutdown() will work
Nick Mathewson [Fri, 22 Apr 2011 14:54:02 +0000 (10:54 -0400)]
call setsockopt correctly on connecting() IOCP-bufferevents so shutdown() will work

13 years agoZero a struct sockaddr_in before using it
Sebastian Hahn [Sat, 23 Apr 2011 00:22:08 +0000 (02:22 +0200)]
Zero a struct sockaddr_in before using it

Found by Dave Heart

13 years agoRemote some dead code from dns-example.c
Sebastian Hahn [Sat, 23 Apr 2011 00:20:59 +0000 (02:20 +0200)]
Remote some dead code from dns-example.c

Found by Dave Heart

13 years agoCheck return value of evbuffer_add_cb in tests
Sebastian Hahn [Mon, 11 Apr 2011 16:26:48 +0000 (18:26 +0200)]
Check return value of evbuffer_add_cb in tests

Caught by clang's static analyzer

13 years agoBe nice and "handle" error return values in sample code
Sebastian Hahn [Mon, 11 Apr 2011 16:03:02 +0000 (18:03 +0200)]
Be nice and "handle" error return values in sample code

Caught by clang's static analyzer

13 years agoRefactor test_getaddrinfo_async_cancel_stress()
Sebastian Hahn [Mon, 11 Apr 2011 15:48:23 +0000 (17:48 +0200)]
Refactor test_getaddrinfo_async_cancel_stress()

Turns out it didn't need an event base set up.

Spotted by clang's static anaylzer

13 years agoadd some (void) casts for unused variables
Sebastian Hahn [Mon, 11 Apr 2011 15:40:14 +0000 (17:40 +0200)]
add some (void) casts for unused variables

All these places already have an XXX marker, so we know we need to fix
them later. Let's not clutter the static analysis results with them.

13 years agoActually send NULL request in http_bad_request_test
Sebastian Hahn [Mon, 11 Apr 2011 15:32:03 +0000 (17:32 +0200)]
Actually send NULL request in http_bad_request_test

Issue caught by clang's static analyzer

13 years agoAdd a forgotten return value check in the unit tests
Sebastian Hahn [Mon, 11 Apr 2011 15:23:08 +0000 (17:23 +0200)]
Add a forgotten return value check in the unit tests

Spotted by clang's static analyzer

13 years agoAdd an assert to appease clang's static analyzer
Sebastian Hahn [Sun, 10 Apr 2011 12:03:39 +0000 (14:03 +0200)]
Add an assert to appease clang's static analyzer

It got confused because in EVLOCK_ASSERT_LOCKED(lock) there is an if
(lock) check.

13 years agoFix possible NULL-deref in evdns_cancel_request
Sebastian Hahn [Mon, 14 Mar 2011 03:24:33 +0000 (04:24 +0100)]
Fix possible NULL-deref in evdns_cancel_request

The clang static analyzer complained that base might be dereferenced
without being set, but this patch should fix another dereference issue.

13 years agoAdd a forgotten NULL check to evhttp_parse_headers
Sebastian Hahn [Mon, 14 Mar 2011 03:13:55 +0000 (04:13 +0100)]
Add a forgotten NULL check to evhttp_parse_headers

Issue detected by the clang static analyzer

13 years agoFix compilation under LLVM/clang with --enable-gcc-warnings
Sebastian Hahn [Sun, 10 Apr 2011 15:23:11 +0000 (17:23 +0200)]
Fix compilation under LLVM/clang with --enable-gcc-warnings

When compiling using clang (2.9 or lower) do not enable
-Wnormalized=id or -Woverride-init when --enable-gcc-warnings
or --enable-gcc-warnings-advisory is set as these options
are unsupported.

This commit is based on a patch for Tor
(git commit 56bdc844ba68ac0911efc7ad3398f1eafeaaac76 by Steven
Murdoch), Copyright (c) 2007-2011, The Tor Project, Inc.

13 years agoFix a memory leak on win32 socket->event map.
Nick Mathewson [Thu, 21 Apr 2011 21:33:13 +0000 (17:33 -0400)]
Fix a memory leak on win32 socket->event map.

This would lose some memory every time an event_base was freed on win32.

Found by Dimitre Piskyulev.

13 years agoHandle calloc failure in evdns. (Found by Dave Hart)
Nick Mathewson [Thu, 21 Apr 2011 21:11:41 +0000 (17:11 -0400)]
Handle calloc failure in evdns. (Found by Dave Hart)

13 years agoMerge branch '20_evdns_circular_list_patch' into patches-2.0
Nick Mathewson [Thu, 21 Apr 2011 17:30:22 +0000 (13:30 -0400)]
Merge branch '20_evdns_circular_list_patch' into patches-2.0

13 years agoFix a crash bug in evdns server circular list code
Nick Mathewson [Wed, 20 Apr 2011 17:27:31 +0000 (13:27 -0400)]
Fix a crash bug in evdns server circular list code

Really, this should use a circleq.  That's a change for 2.1, though.

13 years agoFix a couple of memory leaks in samples/http-server.c. Found by Dave Hart.
Nick Mathewson [Thu, 14 Apr 2011 18:15:13 +0000 (14:15 -0400)]
Fix a couple of memory leaks in samples/http-server.c. Found by Dave Hart.

13 years agoAvoid a free(NULL) if out-of-memory in evdns_getaddrinfo. Found by Dave Hart
Nick Mathewson [Wed, 13 Apr 2011 15:20:30 +0000 (11:20 -0400)]
Avoid a free(NULL) if out-of-memory in evdns_getaddrinfo. Found by Dave Hart

13 years agoFix the check for multicast or broadcast addresses in evutil_check_interfaces
Nick Mathewson [Tue, 5 Apr 2011 21:21:12 +0000 (17:21 -0400)]
Fix the check for multicast or broadcast addresses in evutil_check_interfaces

First of all, it is totally okay to have an address end with .255,
depending on what your netmask is, so we shouldn't reject a local
address if it ends with .255.

Second, our check for ending with .255 was broken.  So was our check
for class-d addresses.

Found by Dave Hart.

13 years agoMerge branch '20_socktype_protocol_nomem' into patches-2.0
Nick Mathewson [Tue, 5 Apr 2011 21:17:51 +0000 (17:17 -0400)]
Merge branch '20_socktype_protocol_nomem' into patches-2.0

13 years agoCheck for allocation failures in apply_socktype_protocol_hack
Nick Mathewson [Tue, 5 Apr 2011 20:32:39 +0000 (16:32 -0400)]
Check for allocation failures in apply_socktype_protocol_hack

13 years agoFix the case when failed evhttp_make_request() leaved request in the queue.
Tomash Brechko [Thu, 31 Mar 2011 15:11:10 +0000 (19:11 +0400)]
Fix the case when failed evhttp_make_request() leaved request in the queue.

13 years agoFix subtle recursion in evhttp_connection_cb_cleanup().
Tomash Brechko [Thu, 24 Mar 2011 12:52:34 +0000 (15:52 +0300)]
Fix subtle recursion in evhttp_connection_cb_cleanup().

13 years agoReset outgoing connection when read data in idle state.
Tomash Brechko [Wed, 23 Mar 2011 09:05:33 +0000 (12:05 +0300)]
Reset outgoing connection when read data in idle state.

Imagine server side is buggy and miscalculates Content-Length: in the
reply.  Data arriving in idle state shouldn't make us crash, instead we
can just reset the connection.

13 years agoAdd comment to configure.in to explain gc-sections test logic
Nick Mathewson [Wed, 23 Mar 2011 20:32:42 +0000 (16:32 -0400)]
Add comment to configure.in to explain gc-sections test logic

(Basically, we need access to conftest.err for the test to work properly.)

13 years agoFix for --gc-sections on NetBSD
Dave Hart [Wed, 23 Mar 2011 20:22:57 +0000 (16:22 -0400)]
Fix for --gc-sections on NetBSD

This patch fixes http://bugs.ntp.org/1844, works around
http://gnats.netbsd.org/cgi-bin/query-pr-single.pl?number=40401, by
improving the test for support of --gc-sections to run a program which
reads a file using stdio built with --gc-sections, instead of simply
link the binary.  This catches the buggy linker as the garbage
collection removes a tag NetBSD uses to distinguish its own elf
binaries from Linux ones, causing it to treat conftest as a Linux
binary and run it with the wrong syscall table.

13 years agoFix make distcheck & installation of libevent 1 headers
Dave Hart [Wed, 23 Mar 2011 20:22:24 +0000 (16:22 -0400)]
Fix make distcheck & installation of libevent 1 headers

libevent/Makefile.am corrects a typo (thanks to Harlan for spotting it
once we realized make distcheck was broken when building the libevent
tearoff).  The result was the include/ev*.h were not distributed nor
installed whether or not --disable-libevent-install was used.  This
was introduced with the final round (3/3) of
--disable-libevent-install patch from me.

13 years agoFix incorrect assertions and possible use-after-free in evrpc_free()
Christophe Fillot [Sat, 12 Mar 2011 17:08:19 +0000 (12:08 -0500)]
Fix incorrect assertions and possible use-after-free in evrpc_free()

Original description:

  The following patch fixes incorrect assertions in evrpc_free():
  evrpc_unregister_rpc() and evrpc_remove_hook() return 0 for success.

  Also, in evrpc_unregister_rpc(), it is better to free RPC structure
  at the end: evrpc_free() uses rpc->uri as "name" parameter when
  calling evrpc_unregister_rpc(), then rpc->uri is freed, but we have
  "registered_uri = evrpc_construct_uri(name)". So at this time "name"
  is invalid.

13 years agoDisable lazy gettimeofday/clock_gettime comparison for now
Nick Mathewson [Tue, 8 Mar 2011 03:59:19 +0000 (22:59 -0500)]
Disable lazy gettimeofday/clock_gettime comparison for now

13 years agoMerge branch '20_timescale' into patches-2.0
Nick Mathewson [Tue, 8 Mar 2011 03:45:10 +0000 (22:45 -0500)]
Merge branch '20_timescale' into patches-2.0

13 years agoFollowup for Tomash Brechko's http patch
Nick Mathewson [Tue, 8 Mar 2011 02:55:47 +0000 (21:55 -0500)]
Followup for Tomash Brechko's http patch

This patch makes bufferevent_disable_hard() non-public, and
adds a comment about what it's for and why it's used.

13 years agoWorkaround libevent bug
Tomash Brechko [Thu, 24 Feb 2011 09:30:40 +0000 (12:30 +0300)]
Workaround libevent bug
https://sourceforge.net/tracker/index.php?func=detail&aid=3078187&group_id=50884&atid=461324

The problem is that bufferevent_disable() doesn't disable EV_WRITE
when 'connecting' flag is set.  However from evhttp_connection_reset()
we want to disable EV_WRITE for sure (we are closing the socket next).
So we add bufferevent_disable_hard(), which acts like
bufferevent_disable(), but resets 'connecting' flag before the call to
the actual handler.

TODO: bufferevent_disable_hard() shouldn't be public, remove it from
event2/bufferevent.h.

13 years agoHave event_base_gettimeofday_cached() always return wall-clock time
Nick Mathewson [Thu, 3 Mar 2011 20:34:22 +0000 (15:34 -0500)]
Have event_base_gettimeofday_cached() always return wall-clock time

Based on code by Dave Hart

13 years agoMake --no-libevent-install apply to event1 headers too
Dave Hart [Thu, 3 Mar 2011 17:57:17 +0000 (12:57 -0500)]
Make --no-libevent-install apply to event1 headers too