2109 Commits

Author SHA1 Message Date
Nick Mathewson
9f560bfa11 Use "_WIN32", not WIN32: it's standard and we don't need to fake it
This patch was automatically generated with perl.

Based on a patch by Peter Rosin.
2011-05-25 20:03:15 -04:00
Nick Mathewson
0e95950e60 Merge remote-tracking branch 'origin/patches-2.0' 2011-05-25 19:46:14 -04:00
Peter Rosin
0de87fe69c Use evutil_gettimeofday instead of relying on the system gettimeofday. 2011-05-25 19:44:06 -04:00
Peter Rosin
3d768dc967 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)
2011-05-25 19:44:06 -04:00
Peter Rosin
8fa030c032 Make sure TINYTEST_LOCAL is defined when building tinytest.c 2011-05-25 19:44:06 -04:00
Peter Rosin
fe93022a66 unistd.h and sys/time.h might not exist. 2011-05-25 19:44:06 -04:00
Peter Rosin
70be7d17e4 MSVC does not provide S_ISDIR, so provide it manually. 2011-05-25 19:44:06 -04:00
Peter Rosin
f3c7a4c165 Bring in the compile script from automake, if needed. 2011-05-25 19:44:06 -04:00
Peter Rosin
07c41bead2 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.
2011-05-25 19:44:06 -04:00
Peter Rosin
86090ee198 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.
2011-05-25 19:44:06 -04:00
Nick Mathewson
9155b09534 Merge remote-tracking branch 'origin/patches-2.0' 2011-05-25 16:52:50 -04:00
Nick Mathewson
06a714ffe4 Fix new warnings from GCC 4.6 2011-05-25 16:52:03 -04:00
Nick Mathewson
173509d9b6 Merge remote-tracking branch 'origin/patches-2.0' 2011-05-23 18:25:05 -04:00
Mansour Moufid
06c51cdf93 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'.
2011-05-23 18:01:24 -04:00
Nick Mathewson
a9fe47f076 Merge remote-tracking branch 'origin/patches-2.0' 2011-05-23 17:50:45 -04:00
Nick Mathewson
74760f1864 Fix a bug that prevented us from configuring IPv6 nameservers. 2011-05-23 17:45:50 -04:00
Nick Mathewson
3ec46c0c34 Merge remote-tracking branch 'origin/patches-2.0' 2011-05-23 01:44:05 -04:00
Kevin Ko
57ddda7845 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."
2011-05-23 01:40:05 -04:00
Nick Mathewson
63d37bdd3e Merge remote-tracking branch 'origin/patches-2.0' 2011-05-20 23:24:43 -04:00
Kevin Ko
0848814ac4 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).
2011-05-20 23:23:44 -04:00
Nick Mathewson
af5f186038 Merge remote-tracking branch 'ellzey/feature/evhttp_parse_speedup' 2011-05-20 23:08:25 -04:00
Nick Mathewson
cbab7dad72 Merge remote-tracking branch 'origin/patches-2.0' 2011-05-20 14:21:55 -04:00
Dave Hart
09d39a120d Fix compilation with GCC 2, which had no __builtin_expect 2011-05-20 14:18:08 -04:00
Nick Mathewson
6b23518d85 Merge remote-tracking branch 'origin/patches-2.0' 2011-05-06 11:06:11 -04:00
Sebastian Hahn
5786b91e2e 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.
2011-05-06 10:58:06 -04:00
Sebastian Hahn
66193853fd Correctly detect openssl on windows 2011-05-06 10:58:06 -04:00
Mark Ellzey
aee1a97da4 Performance tweak to evhttp_parse_request_line.
Method parsing has been tweaked out to use a lookup table instead of multiple
branching. In our testing it has increased performance by a fair bit.
2011-05-06 08:48:54 -04:00
Sebastian Hahn
ceb03b90c4 Move the win32 detection in configure.in 2011-05-06 02:06:36 +02:00
Sebastian Hahn
292092eb29 Use OPENSSL_LIBS in Makefile.am 2011-05-06 02:06:32 +02:00
Nick Mathewson
7889c43ef8 Merge remote-tracking branch 'origin/patches-2.0' 2011-05-04 16:23:02 -04:00
Peter Rosin
7b819f2d97 Libtool brings in the dependencies of libevent_openssl.la automatically 2011-05-04 16:18:51 -04:00
Peter Rosin
274dd0369a libssl depends on libcrypto, not the other way around. 2011-05-04 16:18:46 -04:00
Nick Mathewson
9610797471 Merge remote-tracking branch 'origin/patches-2.0' 2011-05-03 14:29:44 -04:00
Nick Mathewson
d11e9e0f71 Oops; that new unit test breaks for epoll. Fix it. 2011-05-03 14:22:48 -04:00
Nick Mathewson
28317a087e 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.
2011-05-03 13:54:57 -04:00
Nick Mathewson
22d50db805 Merge remote-tracking branch 'origin/patches-2.0' 2011-05-02 23:22:34 -04:00
Nick Mathewson
9556a7d1f6 Add missing words to EVLOOP_NONBLOCK documentation 2011-05-02 23:22:09 -04:00
Nick Mathewson
1cae22605d Merge remote-tracking branch 'origin/patches-2.0' 2011-04-27 21:28:32 -04:00
Nick Mathewson
e7529fa45b Bump version to 2.0.11-stable-dev 2011-04-27 21:28:11 -04:00
Nick Mathewson
fc9bc65669 Merge remote-tracking branch 'origin/patches-2.0' 2011-04-27 20:26:38 -04:00
Nick Mathewson
d4d55196bd Increment version number to 2.0.11-stable release-2.0.11-stable 2011-04-27 20:25:57 -04:00
Nick Mathewson
aaa80ed491 Merge remote-tracking branch 'origin/patches-2.0' 2011-04-27 20:17:34 -04:00
Nick Mathewson
8255fda708 Add more people to the acknowledgments 2011-04-27 20:15:20 -04:00
Nick Mathewson
6c2ef970c3 Merge remote-tracking branch 'origin/patches-2.0' 2011-04-27 20:07:13 -04:00
Nick Mathewson
d30466fc26 Changelog for 2.0.11-stable 2011-04-27 20:03:46 -04:00
Nick Mathewson
614b9bd1f3 Merge remote-tracking branch 'origin/patches-2.0' 2011-04-26 23:48:31 -04:00
Nick Mathewson
e49e64e774 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.
2011-04-26 23:42:01 -04:00
Nick Mathewson
cea45590e2 Merge remote-tracking branch 'origin/patches-2.0' 2011-04-24 22:56:16 -04:00
Nick Mathewson
ea0d019b71 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.
2011-04-23 02:35:17 -04:00
Nick Mathewson
18f24ef4d5 Merge remote-tracking branch 'origin/patches-2.0' 2011-04-23 02:31:59 -04:00