Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| 4b70286e | 2012-05-02 17:12:23 | Merge remote-tracking branch 'origin/patches-2.0' Conflicts: ChangeLog README evdns.c sample/dns-example.c | ||
| cecb111b | 2012-05-02 17:09:11 | Start changelog for 2.0.19-stable | ||
| 265e6779 | 2012-05-02 16:52:27 | Fix evdns build with threads disabled The last evdns change apparently broke it, by using a "base" variable that we were only declaring with threads turned on. | ||
| 3d9e52ac | 2012-05-01 19:52:55 | When retransmitting a timed-out DNS request, pick a fresh nameserver. Otherwise, requests initially sent to a failing nameserver would stay there indefinitely, even if other nameservers would work. Fix for sourceforge bug 3518439 | ||
| d873d678 | 2012-05-01 19:52:49 | Make some evdns.c debug logs more verbose | ||
| 6610fa5a | 2012-05-01 17:07:50 | dns-example.c can now take a resolv.conf file on the commandline | ||
| 9fbfe9b9 | 2012-05-01 13:03:33 | Correctly handle running on a system where accept4 doesn't work. Previously, we treated EINVAL as the only errno that indicated a broken accept4. But EINVAL only appears when one of the SOCK_* options isn't supported. If the accept4 syscall itself isn't there, we'll get an ENOSYS. Reported by Azat Khuzhin. | ||
| a1630260 | 2012-05-01 13:22:56 | Merge branch '21_robust_monotonic' | ||
| 2e882a07 | 2012-04-30 22:00:05 | Merge remote-tracking branch 'origin/patches-2.0' Conflicts: event.c | ||
| 30f06715 | 2012-04-30 21:45:43 | Merge remote-tracking branch 'github/20_active_prio_inv' into patches-2.0 | ||
| b98624ef | 2012-04-30 21:33:56 | Merge remote-tracking branch 'origin/patches-2.0' Conflicts: bufferevent_openssl.c | ||
| b3887cdf | 2012-04-11 21:33:27 | Work-around a stupid gcov-breaking bug in OSX 10.6 This only affects the unit tests. Fix found at http://rachelbythebay.com/w/2011/07/12/forkcrash/ (Backport from 2.1) | ||
| 4e62cd16 | 2012-03-30 15:08:40 | Fixed potential double-readcb execution with openssl bufferevents. the function do_read() will call SSL_read(), and if successful, will call _bufferevent_run_readcb() before returning to consider_reading(). consider_reading() will then check SSL_pending() to make sure all pending data has also been read. If it does not, do_read() is called again. The issue with this is the possibility that the function that is executed by _bufferevent_run_readcb() called bufferevent_disable(ssl_bev, EV_READ) before the second do_read(); In this case, the users read callback is executed a second time. This is potentially bad for applications that expect the bufferevent to stay disabled until further notice. (this is why running openssl bufferevents without DEFER_CALLBACKS has always been troublesome). | ||
| 2bfda401 | 2012-04-30 17:30:48 | If a higher-priority event becomes active, don't continue running events of the current priority. Bug found by Ralph Castain. | ||
| 5859c235 | 2012-04-27 09:32:51 | Generate event-config.h with a single sed script This approach should make the creation of the file more atomic, to fix a bug reported by Dinh. This patch has one change from Zack's original version: it avoids $<, since Dave Hart tells me he thinks that's not so portable. (commit message by nickm) | ||
| e0222274 | 2012-04-27 09:36:13 | Merge remote-tracking branch 'origin/patches-2.0' | ||
| 30b6f889 | 2012-04-27 09:32:51 | Generate event-config.h with a single sed script This approach should make the creation of the file more atomic, to fix a bug reported by Dinh. This patch has one change from Zack's original version: it avoids $<, since Dave Hart tells me he thinks that's not so portable. (commit message by nickm) | ||
| 26c75828 | 2012-04-26 16:22:03 | When PRECISE_TIMERS is set with epoll, use timerfd for microsecond precision The epoll interface ordinarily gives us one-millisecond precision, so on Linux it makes perfect sense to use the CLOCK_MONOTONIC_COARSE timer. But when the user has set the new PRECISE_TIMER flag for an event_base (either by the EVENT_BASE_FLAG_PRECISE_TIMER flag, or by the EVENT_PRECISE_TIMER environment variable), they presumably want finer granularity. On not-too-old Linuxes, we can achieve this using the Timerfd mechanism, which accepts nanosecond granularity and understands posix clocks. It's a little more expensive than just calling epoll_wait(), so we won't do it by default. | ||
| 7428c78a | 2012-04-26 14:35:18 | Improve the monotonic-time unit test: make it check the step size | ||
| 630f077c | 2012-04-26 11:56:59 | Simple unit tests for monotonic timers | ||
| 2c470452 | 2012-04-23 13:33:25 | Implement fast/precise monotonic clocks on Windows This uses code from libutp, which was released under the MIT license; see evutil_time.c and LICENSE changes. | ||
| a2598ec6 | 2012-04-23 13:56:00 | Add EVENT_PRECISE_TIMER environment var for selecting precise-but-slow timer | ||
| f5e4eb05 | 2012-04-20 13:14:10 | Refactor monotonic timer handling into a new type and set of functions; add a gettimeofday-based ratcheting implementation Now, event.c can always assume that we have a monotonic timer; this makes event.c easier to write. | ||
| 71bca50f | 2012-04-20 12:27:12 | Split out time-related prototypes into time-internal.h | ||
| c4194854 | 2012-04-20 12:19:03 | Split out time-related evutil functions into a new evutil_time.c | ||
| 2711cda3 | 2012-04-20 12:14:20 | Split long lists in Makefile.am into one-item-per-line | ||
| 21205b83 | 2012-04-20 11:53:32 | Shave 700 msec off the persistent_timeout_jump test | ||
| d992d911 | 2012-04-20 11:51:33 | Merge remote-tracking branch 'origin/patches-2.0' | ||
| 03614a16 | 2012-04-20 11:51:13 | Merge branch '20_periodic_event_overload_v2' into patches-2.0 | ||
| dfd808cb | 2012-04-19 00:25:12 | If time has jumped so we'd reschedule a periodic event in the past, schedule it for the future instead Fixes an issue reported on libevent-users in the thread "a dead looping bug when changing system time backward". Previously, if time jumped forward 1 hour[*] and we had a one-second periodic timer event, that event would get invoked 3600 times. That's almost certainly not what anybody wants. In a future version of Libevent, we should expose the amount of time that the callbac kwould have been invoked somehow. [*] Forward time jumps can happen with nonmonotonic clocks, or with clocks that jump on suspend/resume. It can also happen from Libevent's point of view if the user exits from event_base_loop() and doesn't call it again for a while. | ||
| bec22b41 | 2012-04-19 18:15:12 | Refactor event_persist_closure: raise and extract some common logic | ||
| 3f659e5a | 2012-04-19 11:14:58 | Merge remote-tracking branch 'origin/patches-2.0' | ||
| 37c4fc8d | 2012-04-19 08:11:05 | Merge pull request #52 from ghazel/20_evdns_probe cancel the probe request when the server is freed, and ignore cancelled probe callbacks | ||
| 46b80608 | 2012-04-18 21:41:48 | remove redundant DNS_ERR_CANCEL check, move comment | ||
| 94d23360 | 2012-04-18 21:29:21 | cancel the probe request when the server is freed, and ignore cancelled probe callbacks | ||
| 26ee5f90 | 2012-04-18 12:24:19 | Note that make_base_notifiable should not be necessary | ||
| 5595a79f | 2012-04-17 17:54:26 | Merge branch '21_choose_monotonic' | ||
| d5e1d5ad | 2012-04-17 15:16:08 | Implement a GetTickCount-based monotonic timer for Windows | ||
| 55780a70 | 2012-04-17 13:09:49 | On Linux, use CLOCK_MONOTONIC_COARSE by default You can make it use CLOCK_MONOTONIC again by setting the EVENT_BASE_FLAG_PRECISE_TIMER flag in the event_config. | ||
| ddd69d39 | 2012-04-17 13:04:02 | EVENT_BASE_FLAG_PRECISE_TIMER indicates we want fine timer precision There are a bunch of backends that can give us a reasonably good monotonic timer quickly, or a very precise monotonic timer less quickly. For example, Linux has CLOCK_MONOTONIC_COARSE (1msec precision), which is over twice as fast as CLOCK_MONOTONIC. Since epoll only lets you wait with 1msec precision, CLOCK_MONOTONIC_COARSE is a clear win. On Windows, you've got GetTickCount{,64}() which is fast, and QueryPerformanceCounter, which is precise but slow. Note that even in the cases where the underlying timer claims to have nanosecond resolution, we're still not exposing that via Libevent. Note also that "Precision" isn't the same as "Resolution" or "Accuracy". A timer's precision is the smallest change that the clock will register; a timer's resolution is the fineness of its underlying representation; a timer's accuracy is how much it drifts with respect to "Real Time", whatever that means. (Terms and definitions from PEP 418.) | ||
| 1fbef7d5 | 2012-04-17 12:44:39 | Move use_monotonic and friends into event_base The use_monotonic field used to be a static field set up at library setup. Unfortunately, this makes it hard to give the user a way to make speed/accuracy tradeoffs about time. Moving it into event_base should let the clock implementation become configurable. | ||
| b62b31f1 | 2012-04-11 21:33:27 | Work-around a stupid gcov-breaking bug in OSX 10.6 This only affects the unit tests. Fix found at http://rachelbythebay.com/w/2011/07/12/forkcrash/ | ||
| 53a07fe2 | 2010-09-17 00:34:13 | Replace pipe-based notification with EVFILT_USER where possible Sufficiently recent kqueue implementations have an EVFILT_USER filter that we can use to wake up an event base from another thread. When it's supported, we now use this mechanism rather than our old (pipe-based) mechanism. This should save some time and complications on newer OSX and freebsds. | ||
| 9bf866f5 | 2012-04-09 19:49:58 | Merge remote-tracking branch 'github/21_mach_time' | ||
| cb653a00 | 2012-04-09 13:41:45 | Do not track use_monotonic field when is no monotonic clock | ||
| b8fd6f91 | 2012-04-09 13:39:11 | Use mach_absolute_time() for monotonic clock support on OSX. | ||
| a969f7e7 | 2012-04-09 08:40:45 | Merge pull request #50 from rosslagerwall/simplify-test Simplify test.sh code significantly. | ||
| 0af23d59 | 2012-04-09 11:33:08 | Merge branch '21_weakrand' | ||
| 3aa44159 | 2012-04-09 11:30:46 | Tweak the new evutil_weakrand_() code Make its state actually get seeded. Document it more thoroughly. Turn its state into a structure. Fix a bug in evutil_weakrand_range_() where it could return the top of the range. Change its return type to ev_int32_t. Add a quick unit test to make sure that the value of evutil_weakrand_range_() is in range. | ||
| e86af4b7 | 2012-04-09 10:46:32 | Change evutil_weakrand_() to avoid platform random() This change allows us to avoid perturbing the platform's random(), and to avoid hitting locks on random() in the platform's libc. evutil_weakrand_() is, well, weak, so we choose here an algorithm that favors speed over a number of other possibly desirable properties. We're using a linear congruential generator, and taking our parameters from those shared by the OpenBSD random() implementation, and Glibc's fastest random() implementation. The low bits of a LCG of modulus 2^32 are (notoriously) less random than the higher bits. So to generate a random value in a range, using the % operator is no good; we ought to divide. We add an evutil_weakrand_range_() function to do that. This code also changes the interface of evutil_weakrand_() so that it now manipulates an explicit seed, rather than having the seed in a static variable. This change enables us to use existing locks to achieve thread-safety, rather than having to rely on an additional lock. (Patch by Nicholas Marriott; commit message by Nick Mathewson.) | ||
| 9b856fd5 | 2012-04-07 17:32:00 | Simplify test.sh code significantly. Also make it easier to add new tests/backends. | ||
| d9a55153 | 2012-04-03 20:30:54 | Increment the version to 2.1.1-alpha-dev | ||
| 6f2337dd | 2012-04-03 18:39:30 | Merge remote-tracking branch 'origin/patches-2.0' | ||
| d1a03b2f | 2012-04-03 18:31:08 | Backport: provide EVENT_LOG_* names, and deprecate _EVENT_LOG_* This is a partial backport of cb9da0bf and a backport of c9635349. Because C doesn't like us to declare identifiers starting with an underscore, Libevent 2.1 has renamed every such identifier. The only change that affects a public API is that the _EVENT_LOG_* macros have been renamed to start with EVENT_LOG instead. The old names are still present, but deprecated. I'm doing this backport because it represents the deprecation of a Libevent 2.0 interface, and folks should have the opportunity to write code that isn't deprecated and works with both 2.0 and 2.1. | ||
| 3ef4b353 | 2012-04-03 17:27:07 | Merge remote-tracking branch 'origin/patches-2.0' | ||
| 88b4f0bb | 2012-04-03 17:26:25 | fix some typos in the 2.1 changelog | ||
| 3faaad49 | 2012-04-03 17:26:12 | Bump the version to Libevent 2.1.1-alpha | ||
| f775521c | 2012-04-03 17:25:36 | Fix the website URL in the readme | ||
| 2dedff36 | 2012-04-03 16:50:54 | Try to finalize changelog situation for 2.1.1-alpha | ||
| ba696dce | 2012-04-03 16:35:36 | Merge remote-tracking branch 'vm/21_fix_nmake_build' | ||
| 2bb8f2dd | 2012-04-03 16:35:26 | Add pending names to the README; add more entries to the changelog | ||
| bcf52585 | 2012-04-03 16:24:18 | Include ws2tcpip.h from util.h to get EAI_* definitions. This is necessary on msvc, to get the EVUTIL_EAI_* values defined properly | ||
| 2449e0c5 | 2012-04-03 16:15:49 | Fix some compilation warnings with msvc | ||
| 07cb5704 | 2012-04-03 16:08:23 | Oops; fix a merge conflict that got committed into event2/event-config.h. Now msvc builds work again. | ||
| 6c95c6c8 | 2012-04-03 15:43:40 | Decrease MAX_REQUESTS in test-fdleak We've got to do this because doing otherwise seems to freak out windows XP. | ||
| 14eb28a3 | 2012-04-03 15:41:12 | Include util-internal.h earlier in test-dumpevents to fix solaris build See 95e2455cdbf840b for rationale. | ||
| e78baf4a | 2012-04-03 14:54:39 | Fix compilation with mm-replacement disabled. | ||
| 13dad99c | 2012-04-03 14:53:00 | make event_base_get_running_event build with threads disabled. | ||
| 55e8dc1b | 2012-04-03 14:51:51 | Make check-dumpevents work with out-of-tree builds | ||
| f7b8200c | 2012-04-03 12:36:51 | Make check-dumpevents.py actually get included in the tarballs | ||
| 93defa2f | 2012-04-03 09:52:40 | Merge remote-tracking branch 'origin/patches-2.0' | ||
| 4a6fd433 | 2012-04-03 05:31:20 | Configure with gcc older than 2.95 I don't know why people use such ancient gcc versions, but the fix seems straightforward enough to maybe just do it. | ||
| e780d4e1 | 2012-04-02 18:14:26 | Merge remote-tracking branch 'origin/patches-2.0' | ||
| 78d67b29 | 2012-04-02 18:13:53 | Missing ) in bufferevent_ratelim.c comment. Found by rransom | ||
| 4c7ee6b0 | 2012-04-02 18:12:44 | Add missing ) to changelog; spotted by rransom | ||
| 620f4a7c | 2012-04-02 17:31:31 | Add a missing name to the readme. | ||
| e08a88d7 | 2012-04-01 01:01:50 | Merge branch '21_http_test_timing' | ||
| fc23af45 | 2012-04-01 00:21:55 | Increase duration and tolerance on http/connection_retry test This takes its runtime back up a little again, but not so high as it was before. It appears to address the heisenbug issues of github nmathewson/libevent issue #49. So far. | ||
| dcab1347 | 2012-03-30 10:29:08 | Merge remote-tracking branch 'origin/patches-2.0' | ||
| 336dcaea | 2012-03-30 10:26:50 | Fix a compilation error with MSVC 2005 due to use of mode_t MSVC apparently doesn't have a mode_t defined, though mingw does. Found by Savg He. | ||
| 09cbc3dc | 2012-03-26 23:28:21 | Temporarily disable event_queue_reinsert_timeout Apparently, now that we have tests for it in main/common_timeout, we can now see that it sometimes breaks referential integrity somehow. Since I'd like to get 2.1.1-alpha out the door soon, I'm turning it off for now. | ||
| 55e991b2 | 2012-03-26 17:35:21 | Make libevent_global_shutdown() idempotent Two calls to libevent_global_shutdown on your exit path shouldn't result in a crash. | ||
| 43d5389c | 2012-03-26 14:23:01 | Updates for whatsnew-2.1.txt | ||
| 7f62f4ab | 2012-03-26 11:21:51 | Merge pull request #48 from rosslagerwall/py-version Require python version | ||
| 029a3db3 | 2012-03-26 20:12:45 | Require at least Python 2.4 for check-dumpevents.py. | ||
| d8a7853e | 2012-03-25 18:56:34 | Merge remote-tracking branch 'origin/patches-2.0' | ||
| 98e9119f | 2012-03-25 18:56:15 | Fix a typo in the bufferevent documentation | ||
| c24f91ad | 2012-03-25 18:55:31 | Test more bufferevent_ratelim features | ||
| c5732fdd | 2012-03-25 18:54:40 | Add event_base_get_running_event() to get the event* whose cb we are in | ||
| 5626092c | 2012-03-23 19:30:02 | More coverage on reinsert_timeout tests | ||
| 8d08ccee | 2012-03-23 19:29:45 | Make test-dumpevents build on Linux | ||
| 8c36acd0 | 2012-03-23 18:42:56 | Fix a nasty bug in event_queue_reinsert_timeout() What was I thinking? The old function could handle heap-to-heap transitions, and transitions within the same common timeout queue, but it completely failed to handle heap/queue transitions, or transitions between timeout queues. Now, alas, it's complicated. I should look hard at the assembly here to see if it's actually better than the alternatives. | ||
| 7afe48aa | 2012-03-23 17:56:23 | Add a unit test for event_base_dump_events() This function uses a C program to generate its output, and then uses a Python program to check it for correctness. On systems without Python, we just make sure that the C program doesn't crash. It's likely that we should be requiring some particular python version. This is an alpha, though: I'm sure somebody will tell us which. | ||
| 0343d8fe | 2012-03-23 17:53:08 | event_base_dump_events: Report active events tersely, and note internal events | ||
| 17289683 | 2012-03-23 17:27:18 | Fix compilation of evutil_rand on osx | ||
| 1d8240c0 | 2012-03-23 11:24:58 | Merge pull request #47 from rosslagerwall/patch-1 Fix typo in whatsnew-2.1.txt | ||
| 6aa48015 | 2012-03-23 12:35:33 | Fix typo in whatsnew-2.1.txt | ||
| 15296d06 | 2012-03-22 18:24:43 | Use libevent_global_shutdown() to clean up in unit tests. This bumps coverage up by a few lines. Every little bit helps. | ||
| 4fe81e23 | 2012-03-22 18:11:01 | Distribute whatsnew-2.1.txt. | ||
| f98c1588 | 2012-03-22 17:33:17 | Fix another bug from rebase of libevent_global_shutdown patch This one affected machines without a builtin arc4random |