2230 Commits

Author SHA1 Message Date
Nick Mathewson
4687ce4f80 evport: use evmap_io to track fdinfo status. Should save time and RAM. 2011-05-27 15:10:43 -04:00
Nick Mathewson
356720a23b Merge remote-tracking branch 'origin/patches-2.0' 2011-05-27 15:09:54 -04:00
Nick Mathewson
203ba2742f Fix a couple of signed/unsigned warnings in http.c 2011-05-27 15:08:25 -04:00
Nick Mathewson
c11c6fcd82 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.
2011-05-27 14:58:21 -04:00
Nick Mathewson
29e5f7ea1b Merge remote-tracking branch 'origin/patches-2.0' 2011-05-26 17:45:54 -04:00
Nick Mathewson
dbb3c65288 Fix compilation. 2011-05-26 17:43:17 -04:00
Nick Mathewson
f0c9b51cc7 Merge branch 'intcmp_overflow_fixes' into patches-2.0 2011-05-26 17:34:15 -04:00
Mark Ellzey
1814ae9677 updated EV_S(s)IZE definitions 2011-05-26 17:33:18 -04:00
Mark Ellzey
84560fc4dc Added overflow checks in evhttp_read_body and evhttp_get_body 2011-05-26 17:33:18 -04:00
Mark Ellzey
a27927229f Added several checks for under/overflow conditions in evhttp_handle_chunked_read 2011-05-26 17:33:18 -04:00
Nick Mathewson
95f70166df Merge remote-tracking branch 'origin/patches-2.0' 2011-05-25 21:20:31 -04:00
Sebastian Hahn
d1b2d11bb5 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.
2011-05-26 02:05:54 +02:00
Peter Rosin
d41f3ea24e Do not define WIN32 in Makefile.nmake 2011-05-25 20:04:53 -04:00
Peter Rosin
85078b1faf In configure, test for _WIN32 not WIN32. 2011-05-25 20:04:45 -04:00
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