3322 Commits

Author SHA1 Message Date
Nick Mathewson
43ffcf6977 Split epoll lookup table into a separate header file
It accounted for more than half the length of epoll.c, and it's
machine-generated, so we might as well keep it separate.
2014-01-21 16:15:21 -05:00
Nick Mathewson
53d279389a Expand EV_CLOSED documentation a bit 2014-01-21 15:44:05 -05:00
Nick Mathewson
5c142a7ee9 Merge remote-tracking branch 'origin/pr/98' 2014-01-21 14:53:47 -05:00
Nick Mathewson
d03b5bf0bc Disclaimerize cmake a little in the README 2014-01-21 14:29:00 -05:00
Nick Mathewson
4cb44fdf56 Merge remote-tracking branch 'joakimsoderberg/new_cmake'
Conflicts:
	sample/https-client.c
2014-01-21 14:26:01 -05:00
Joakim Söderberg
ae1bd829d5 Fix broken autotools build.
The move of the static *config.h files to a sub directory for WIN32 broke the autotools build. Use the proper subpath for that as well...
2014-01-21 19:19:30 +01:00
Nick Mathewson
c2076824a3 Fix a c90 warning 2014-01-21 12:21:37 -05:00
Joakim Söderberg
8b40a5b08f Check if we're on OSX before disabling deprecation in le-proxy 2014-01-21 11:35:21 +01:00
Joakim Söderberg
4e1439588f Change all uses of WIN32 to _WIN32 2014-01-21 11:30:27 +01:00
Joakim Söderberg
20244671cd Fix include bug.
On systems where a previous version of Libevent is installed we don't want the system version of the headers to be included before the ones in the build tree. This happened on my OSX system where I had an ancient version of Libevent installed. It would then load the incorrect event-config.h and fail because the system introspection macros weren't set properly.
2014-01-21 11:19:02 +01:00
Diego Giagio
b1b69ac7c1 Implemented EV_CLOSED event for epoll backend (EPOLLRDHUP).
- Added new EV_CLOSED event - detects premature connection close
  by clients without the necessity of reading all the pending
  data. Does not depend on EV_READ and/or EV_WRITE.

- Added new EV_FEATURE_EARLY_CLOSED feature for epoll.
  Must be supported for listening to EV_CLOSED event.

- Added new regression test: test-closed.c

- All regression tests passed (test/regress and test/test.sh)

- strace output of test-closed using EV_CLOSED:
    socketpair(PF_LOCAL, SOCK_STREAM, 0, [6, 7]) = 0
    sendto(6, "test string\0", 12, 0, NULL, 0) = 12
    shutdown(6, SHUT_WR)                    = 0
    epoll_ctl(3, EPOLL_CTL_ADD, 7, {EPOLLRDHUP, {u32=7, u64=7}}) = 0
    epoll_wait(3, {{EPOLLRDHUP, {u32=7, u64=7}}}, 32, 3000) = 1
    epoll_ctl(3, EPOLL_CTL_MOD, 7, {EPOLLRDHUP, {u32=7, u64=7}}) = 0
    fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 4), ...})
    mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYM...
    write(1, "closed_cb: detected connection close "..., 45) = 45
2014-01-17 23:20:42 -02:00
Joakim Soderberg
8697b99cd4 Forgotten headers for old nmake project compatability. 2014-01-14 18:45:11 +01:00
JoakimSoderberg
8d4cb35dda Clean up the README some. 2014-01-14 18:41:58 +01:00
Joakim Soderberg
604b8cc4d1 Update README with CMake build instructions. 2014-01-14 18:25:07 +01:00
Joakim Soderberg
d2bc39afd0 Rename README to README.md and use markdown to format. 2014-01-14 18:24:43 +01:00
Joakim Soderberg
24d646666b Fix so that old nmake project still builds. 2014-01-14 17:53:47 +01:00
Joakim Soderberg
fd42e70d18 Set USE_DEBUG=1 on EVENT__ENABLE_VERBOSE_DEBUG 2014-01-14 17:37:58 +01:00
Joakim Soderberg
49ab363271 Some work on making it possible to simply do add_subdirectory() on the project. 2014-01-14 13:01:31 +00:00
Joakim Soderberg
4b754df949 Fix typo 2014-01-10 17:58:42 +01:00
Joakim Soderberg
f3446ed5fb Add CMake config and install targets.
Make it easier for other projects to do find_package by creating config
files both in the build and install tree.
2014-01-09 13:45:52 +01:00
Nick Mathewson
d240328d60 Fix even more coverity warnings. 2014-01-08 13:02:37 -05:00
Nick Mathewson
860767e841 Fix a couple of compilation warnings in regress_http.c 2014-01-08 12:46:09 -05:00
Nick Mathewson
991b362001 Remove spurious checks in evrpc.c error cases (coverity)
Coverity hates the case where you have a redundant NULL check after
using something.
2014-01-08 12:04:06 -05:00
Nick Mathewson
544cf8888a Whoops; fix compilation in bench.c 2014-01-08 11:58:50 -05:00
Nick Mathewson
ff7f739685 Fix coverity warnings in benchmark tools.
Again, not harmful, but best to stay warning-free.
2014-01-08 11:54:56 -05:00
Nick Mathewson
867f401f9b Fix a pile of coverity warnings in the unit tests
Most of these problems can only trigger when the tests fail, but it's
good hygiene to keep the code warning-free in any case.
2014-01-08 11:51:22 -05:00
Nick Mathewson
8d15f57f61 Merge remote-tracking branch 'asweeny86/on-complete-cb' 2014-01-07 16:59:26 -05:00
Andrew Sweeney
b85f398704 Update unit test to make sure that the callback happens after the output data is written 2014-01-06 21:19:15 -05:00
Andrew Sweeney
da86dda951 evhttp_request_set_on_complete_cb to be more specific about what the function actually does and usage 2014-01-06 20:36:31 -05:00
Nick Mathewson
f9e091bf4e Merge remote-tracking branch 'asweeny86/event-count-max' 2014-01-06 12:11:30 -05:00
Andrew Sweeney
b083ca0551 Provide on request complete callback facility
This patch provides the ability to receive a callback on the completion of a
request.  The callback takes place immediately before the request's resources
are released.
2014-01-05 20:35:46 -05:00
Andrew Sweeney
26230a2d21 Added unit test for max event counts 2014-01-05 16:30:35 -05:00
Andrew Sweeney
efbd3dcf28 Fixed bug using wrong variable in max event compare 2014-01-05 16:29:52 -05:00
Andrew Sweeney
5173bef50f Add access to max event count stats
This commit provides an interface for accessing and resetting the maximum
number of events in a given period.  This information provides better insight
into event queue pressure.
2013-12-30 14:06:20 -05:00
Nick Mathewson
4c8ebcd359 Remove unneeded declaration in bufferevent-internal.h 2013-12-24 15:02:02 -05:00
Nick Mathewson
254c04ec4b Fix needless bufferevent includes in evdns.c 2013-12-24 15:01:34 -05:00
Nick Mathewson
88ecda3bbb Fix a couple of "#ifdef WIN32" instances 2013-12-24 14:37:30 -05:00
Nick Mathewson
d1976f8ec4 Sample HTTPS Client: Set hostname for SNI extension (by f69m)
Patch from f69m on SourceForge
2013-12-24 14:05:44 -05:00
Antony Antony
62f596b7f4 fix for ServFail from RIPE Atlas release 2013-12-24 14:03:46 -05:00
Nick Mathewson
90786eb073 Small tweaks to https-client.c 2013-12-24 12:59:36 -05:00
Nick Mathewson
2fbc3b148b Merge remote-tracking branch 'resetius/https' 2013-12-24 12:45:22 -05:00
Nick Mathewson
471fbe3baf Merge remote-tracking branch 'rbalint/from-forked-daapd' 2013-12-24 12:27:24 -05:00
Nick Mathewson
a3172a415b Minor optimizations on bufferevent_trigger options
By making BEV_TRIG_DEFER_CALLBACKS equal to BEV_OPT_DEFER_CALLBACKS,
and BEV_TRIG_IGNORE_WATERMARKS disjoint from BEV_OPT_*, we can save a
few operations in bufferevent_run_*, which is critical-path.
2013-12-24 11:30:06 -05:00
Nick Mathewson
4dd3abd41f Make bufferevent_trigger_nolock_() inline
Since most of its callers are using constant EV_READ or EV_WRITE, and
using constant 0 as its argument, this should eliminate most of the
overhead for this function in the fast case.
2013-12-24 11:20:52 -05:00
Nick Mathewson
b4ef3def6f Merge remote-tracking branch 'mistotebe/bufferevent_trigger' 2013-12-24 10:33:58 -05:00
Nick Mathewson
87fa2b004a Unit tests for active_by_fd; unsupport active_by_fd(TIMEOUT)
[It turns out that event_base_active_by_fd(TIMEOUT) didn't actually
work right. Feel free to add it back in as a patch.]
2013-12-23 20:46:38 -05:00
Nick Mathewson
486594337a Add event_base_active_by_signal by analogy 2013-12-21 23:32:10 -05:00
Nick Mathewson
5c9da9a8a8 Sanity-check arguments to event_base_active_by_fd() 2013-12-21 23:21:33 -05:00
Nick Mathewson
93369ff4e9 Merge remote-tracking branch 'ghazel/event_base_active_by_fd' 2013-12-21 23:15:41 -05:00
Nick Mathewson
974c60e14a Refactor evmap_{io,signal}_active_() to tolerate bad inputs 2013-12-21 23:15:28 -05:00