kc3-lang/libevent

Branch :


Log

Author Commit Date CI Message
620ff243 2015-06-17 08:05:53 Update dns-example. There's somebody out there who is going to have a compiler from 1986 who will complain. Better to fix c99 now.
bde231d7 2015-06-17 08:00:19 Merge pull request #183 from azat/dns-example Some improvements for dns-example
109b03f4 2015-06-07 09:39:24 Merge pull request #254 from zeliard/master Fix bench_httpclient to support win32
cb969312 2015-06-07 15:51:15 Update bench_httpclient.c *fixed: socket_geterror instead of WSAGetLastError
57d059be 2015-06-06 02:39:29 Merge pull request #253 from ellzey/master Set correct socklen for PF_INET6 sockaddr len
4e9325e8 2015-06-05 16:39:26 *fix: bench_httpclient to support win32
3499ad97 2015-06-01 06:55:24 Set correct socklen for PF_INET6 sockaddr len Reported and patched by Pankaj Sharma
c6fffc75 2015-05-29 06:47:24 Merge pull request #251 from ellzey/21_err_on_thread_init_ordering Debug mode option to error on evthread init AFTER other event calls.
dcfb19a2 2015-05-15 02:58:14 Debug mode option to error on evthread init AFTER other event calls. - A handy event_enable_debug_mode() feature which will error and abort the application if any thread-aware libevent functions are called BEFORE the evthread API has been initialized (manually, or through evthread_use_windows_threads() / evthread_use_pthreads() - This is done by setting the global debug variable 'event_debug_created_threadable_ctx_' whenever the following functions are called: evthreadimpl_lock_alloc_() evthreadimpl_cond_alloc_() event_base_new_with_config() <- this checks to see if the thread callbacks are enabled first, so we have to manually set the variable. - Example: int main(int argc, char ** argv) { struct event_base * base; event_enable_debug_mode(); base = event_base_new(); evthread_use_pthreads(); return 0; } When executed, the program will throw an error and exit: [err] evthread initialization must be called BEFORE anything else!
6c8cb5ef 2015-05-13 01:11:08 Merge pull request #245 from ellzey/21_size_and_misc_fixes Fix garbage value in socketpair util function, stdint?
d76b2311 2015-05-13 01:10:42 Merge pull request #239 from ellzey/issue237 Call underlying bev ctrl SET_FD on filtered bufferevents
80faee9f 2015-05-13 00:52:40 Update README.md
ad4a897a 2015-05-13 00:51:07 Update README.md
a2b2e1e6 2015-05-13 00:49:08 Update README.md
37453aba 2015-05-12 15:43:03 Update travis config for status updates
0dfa5dc6 2015-05-12 15:33:26 Update README.md
1cc2e295 2015-05-12 00:27:01 Use autotools for appveyor until cmake is fixed.
e84e269b 2015-05-11 22:53:05 Commented out a WIN32 threading / timing test for now - seems as if windows has some time scale issues which I am looking into. For now I am commenting out the regression test until it is fixed.
c4d440bf 2015-05-11 22:18:54 Merge branch 'master' into 21_size_and_misc_fixes
37bb3f9f 2015-05-11 16:27:15 Merge pull request #241 from ellzey/21_fix_appveyor_ssl_link Fix download link for appveyor SSL
107d565d 2015-05-11 12:47:40 Fix the link for appveyor OpenSSL installer (WIN32) * change and move the openssl self installer off to a site we own - the old link was 404, probably due to being replaced with a newer non-vuln version. But since we are only using this installer to auto-build with on appveyor (not as a release), then having a file we don't change and own seems to be a better solution. * reduce verbosity
d9f6140b 2015-05-11 12:34:30 Merge branch 'master' into issue237
043ae748 2015-05-11 12:06:01 Fix garbage value in socketpair util function, stdint? * Fixed an issue with evutil_ersatz_socketpair_, listen_addr could all be compared against with agarbage values. So just memset it before using it anywhere. * Nick might punch me in the face, but if we have stdint.h; (as in EVENT__HAVE_STDINT_H is defined), might as well use those instead of the manual [U]INT[X}_MAX/MIN muck in there now.
f1b3a1e0 2015-05-09 02:44:13 Merge pull request #242 from ellzey/pullRequest118 expose bufferevent_incref/decref (with fewer modifications)
1ed6718d 2015-05-06 14:56:31 expose bufferevent_incref/decref (with fewer modifications)
c2aa7dcb 2015-05-05 10:37:00 Call underlying bev ctrl SET_FD on filtered bufferevents If a bufferevent_filter is set on an underlying bufferevent which has ctrl functions, bufferevent_filter needs to handle this. For now I have added just BEV_CTRL_SET_FD, since this is needed for bufferevent_sock to assign file descriptors to the proper bufferevent_read/write callbacks. A good example of the problem can be found in issue #237 https://github.com/libevent/libevent/issues/237
a695a720 2015-04-27 22:43:04 Fix potential fd leak in listener_read_cb() As pointed out by harlan_ in #libevent after running a coverity sweep. If the listener is free'd, 'new_fd' is never closed.
6e7a580c 2015-03-24 17:45:52 tab
38cef641 2015-03-24 17:29:40 fix the return value of event_deferred_cb_schedule_
31c6d45f 2015-02-17 12:37:30 Merge pull request #220 from miniupnp/fix_warnings Fix warnings
0c7f2178 2015-02-16 23:42:54 Fix mixed declarations and code (forbidden by ISO C90)
746d2c50 2015-02-16 23:41:53 Fix "function declaration isn’t a prototype" add "void" to argument list
d59113a4 2015-02-05 15:24:55 Merge pull request #214 from JoakimSoderberg/appveyor Forgot to install OpenSSL for appveyor
26164a56 2015-02-05 20:21:04 Forgot to install OpenSSL for appveyor
874ea871 2015-02-05 13:37:24 Merge pull request #117 from JoakimSoderberg/appveyor Add support for appveyor.com windows CI
5f89c37e 2015-02-05 19:24:19 Add support for appveyor.com windows CI This does the same thing as Travis-CI but for windows. @nmathewson Go to: https://ci.appveyor.com/login -> Login using Github Click **+New Project** -> Choose **Github** to the left -> Find **Libevent** in the list and click **Add**
deca354c 2015-02-05 12:14:16 Merge pull request #116 from JoakimSoderberg/fix_build_tree_cmake_config This fixes a bug introduced in 27bd9faf498b91923296cc91643e03ec4055c230
19ba4543 2015-02-05 00:56:58 This fixes a bug introduced in 27bd9faf498b91923296cc91643e03ec4055c230 CMake configuration files are intended to be used by other projects to find the library. Specifically the CMake find_package command can use it to find all files related to the project. The idea is to support 2 different CMake configuration files for Libevent. One if you simply build libevent that is generated for the build tree. And a second one that is generated for an install target that will be installed on the system and point to where on the system the lib files and such can be find. So for instance, in the build tree the config would set the cmake variable `LIBEVENT_INCLUDE_DIRS` to `/path/to/libevent/build/include`. And for the system config it would be set to `/usr/local/include` (or whatever target the user chose when running cmake). 27bd9faf498b91923296cc91643e03ec4055c230 changed this behavior so that both configs would point to the system wide path `/usr/local/include` This meant that projects just wanting to import directly for the build tree would fail.
a77a82a0 2015-02-04 08:37:32 Merge remote-tracking branch 'azat/be-pair-fix-freeing-shared-lock-v5'
51821e20 2015-02-04 08:33:42 Merge pull request #207 from azat/avoid-leaking-of-event_debug_map_HT_GROW Avoid leaking of event_debug_map_HT_GROW
4472ec68 2015-02-03 15:57:31 Merge pull request #212 from xbao/master changed strtotimeval signature to avoid conflict with Android NDK sys/time.h header (#211)
1cae3ae1 2015-02-02 13:57:50 Merge remote-tracking branch 'public/master'
537177d3 2015-02-02 13:57:22 New function to get address for nameserver.
bdbc823f 2015-01-28 17:17:02 changed strtotimeval signature as per #211
62eaa889 2015-01-27 10:07:22 Merge pull request #210 from mc-server/master Added cmake-generated files to ignore list.
6c12bfec 2015-01-27 15:30:52 Added cmake-generated files to ignore list. These are generated by cmake on Windows with MSVC.
a558fcdb 2015-01-26 00:31:23 be_pair/regress: cover use of shared lock (lock/unlock/free) For more info look at 92a359ee3adf4636db508e6c6d7179d4d59eaafc ("be_pair: release shared lock with the latest of bufferevent_pair")
e5c87d18 2015-01-26 00:29:15 event_free_debug_globals_locks(): disable lock debugging This will allow to use library event after event_free_debug_globals_locks()/libevent_global_shutdown() without invalid read/write's.
ccc55937 2015-01-26 00:28:46 evthread: evthreadimpl_disable_lock_debugging_() for libevent_global_shutdown()
c0b34f6f 2015-01-26 00:27:41 evthread: add evthread_get_{lock,condition}_callbacks() helpers
92a359ee 2015-01-03 19:37:15 be_pair: release shared lock with the latest of bufferevent_pair Then next code sample will use free'd lock: evthread_use_pthreads(); ... assert(!bufferevent_pair_new(base, BEV_OPT_THREADSAFE, pair)); ... bufferevent_free(pair[0]); # refcnt == 0 -> unlink bufferevent_free(pair[1]); # refcnt == 0 -> unlink ... event_base_free() -> finalizers -> EVTHREAD_FREE_LOCK(bev1->lock) -> BEV_LOCK(bev2->lock) <-- *already freed* While if you will reverse the order: bufferevent_free(pair[1]); # refcnt == 0 -> unlink bufferevent_free(pair[0]); # refcnt == 0 -> unlink ... event_base_free() -> finalizers -> BEV_LOCK(bev2->lock)/!own_lock/BEV_UNLOCK(bev2->lock) -> EVTHREAD_FREE_LOCK(bev1->lock) (own_lock) It is ok now, but I guess that it will be better to relax order of freeing pairs.
4d66552a 2015-01-22 12:15:01 Merge pull request #115 from jer-gentoo/master EVBUFFER_PTR_SET -> EVBUFFER_PTR_ADD
8674e4fb 2015-01-21 11:24:23 EVBUFFER_PTR_SET -> EVBUFFER_PTR_ADD Looks like EVBUFFER_PTR_ADD should have been used instead of EVBUFFER_PTR_SET.
3540a193 2015-01-08 04:45:49 regress_dns: drop hack for event_debug_map_HT_GROW in leak tests
941faaed 2015-01-08 04:45:27 event: call event_disable_debug_mode() in libevent_global_shutdown() This will avoid leaking of event_debug_map_HT_GROW I buildin it into libevent_glboal_shutdown() because event_disable_debug_mode() -> event_free_debug_globals() -> event_free_debug_globals_locks() will clean event_debug_map_lock_ that used in event_disable_debug_mode().
597c7b25 2015-01-08 04:43:37 ht-internal: don't reset hth_table_length explicitly in name_##HT_CLEAR name_##HT_CLEAR calls name_##HT_INIT that reset hth_table_length to 0.
0b49ae34 2015-01-05 09:33:48 Update changelog
2c827e76 2015-01-05 09:33:02 Merge branch '21_cve_2014_6272_v2'
841ecbd9 2015-01-05 09:32:53 Fix CVE-2014-6272 in Libevent 2.1 For this fix, we need to make sure that passing too-large inputs to the evbuffer functions can't make us do bad things with the heap. Also, lower the maximum chunk size to the lower of off_t, size_t maximum. This is necessary since otherwise we could get into an infinite loop if we make a chunk that 'misalign' cannot index into.
683f5568 2015-01-05 09:16:12 Increment version to 2.1.5-beta
0eb39194 2015-01-05 08:50:30 work on changelog for 2.1.5-alpah
8a29f3b3 2015-01-04 10:27:02 Merge pull request #201 from nsuke/cmake-shared-build Fix CMake shared library build
e69d9109 2015-01-03 02:22:31 Fix CMake shared library build This fixes following problems in shared library build: * visibility=hidden was not enabled for gcc because of incorrect variable name * test programs that need internal APIs caused link errors
f05a0d53 2014-12-23 09:35:40 Merge pull request #197 from JohnOhl/fix-clang-compile-warnings Fix warnings when compiling with clang 3.5
f5b47657 2014-12-22 00:46:56 Fix warnings when compiling with clang 3.5
cb737041 2014-12-15 12:50:11 Fix annoying heisenbug in test-time.c
37df827a 2014-12-08 10:26:01 Merge pull request #192 from miniupnp/master Fix mixed declarations and code (forbidden by ISO C90)
8afbdbc4 2014-12-08 10:21:00 Fix mixed declarations and code (forbidden by ISO C90)
f2645f80 2014-11-19 12:18:05 Implement new/free for struct evutil_monotonic_timer and export monotonic time functions
6ae44b5d 2014-12-01 08:32:23 Merge remote-tracking branch 'origin/patches-2.0'
fb7e76ae 2014-11-30 11:05:40 Fix evbuffer_peek() with len==-1 and start_at non-NULL.
37145c56 2014-11-30 21:07:55 Merge remote-tracking branch 'public/patches-2.0' Conflicts: ChangeLog event.c
1da2f42b 2014-11-30 21:02:25 Merge branch 'patches-2.0' of github.com:libevent/libevent into patches-2.0
d9469d39 2014-11-30 21:02:06 Start on 2.1.5-alpha/beta changelog
5ae52872 2014-11-30 19:38:23 Work on the changelog for 2.0.22
7fd49414 2014-11-30 19:26:20 Merge remote-tracking branch 'origin/pr/182'
23133cac 2014-11-30 19:25:21 Merge remote-tracking branch 'origin/pr/180'
3c7d6fca 2014-09-22 12:19:37 Fix race caused by event_active There is a race between manual event_active and natural event activation. If both happen at the same time on the same FD, they would both be protected by the same event base lock except for 1 LoC where the fields of struct event are read without any kind of lock. This commit does those reads into local variables inside the lock and then invokes the callback with those local arguments outside the lock. In 2.0-stable, none of this is inside the lock; in HEAD, only the callback is read inside the lock. This gets the callback and all 3 arguments inside the lock before calling it outside the lock.
c51c85d3 2014-11-30 11:11:33 Merge remote-tracking branch 'origin/pr/175'
a5d43cf4 2014-11-30 11:09:50 Merge branch 'evbufer_peek_fix_v3'
154006ad 2014-11-30 11:09:28 More evbuffer_peek() test cases
e2d139dd 2014-11-11 14:25:47 test/evbuffer_peek: add regress in case we have first buffer greater
ba59923a 2014-11-30 11:05:40 Fix evbuffer_peek() with len==-1 and start_at non-NULL.
4f360f89 2014-11-30 10:23:39 Merge remote-tracking branch 'origin/pr/186'
befbd130 2014-09-20 15:25:53 Fix cmake error when the Module path has more than one entry. CMAKE_MODULE_PATH is usually a list instead of single entry. Especially for projects contain sub cmake projects. My patch replace the CMAKE_MODULE_PATH with fixed path, to locate the `.in` file.
5ebad45e 2014-11-24 01:09:13 Merge pull request #189 from azat/be_async-avoid-doule-close be async: avoid double close()
f133b869 2014-11-21 09:00:12 be async: avoid double close() In case when between this two close (close(F), close(F)) some open() will be executed, than we will close newly opened fd. Reported-by: xujiezhige@163.com
10fe4ef3 2014-11-16 23:40:16 Prevent duplicate event_del on fd
61262a0f 2014-11-12 20:16:18 evdns: avoid read-after-free in evdns_request_timeout_callback() In evdns_request_timeout_callback() in case we a giving up, we call request_finished() which will free() req structure, however we ns from it to fail it, so save pointer to ns to call nameserver_failed() on them. Founded with valgrind: $ valgrind regress dns/retry ==10497== Memcheck, a memory error detector ==10497== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==10497== Using Valgrind-3.10.0 and LibVEX; rerun with -h for copyright info ==10497== Command: regress dns/retry ==10497== dns/retry: [forking] ==10498== Invalid read of size 8 ==10498== at 0x4C309D: evdns_request_timeout_callback (evdns.c:2179) ==10498== by 0x49EA95: event_process_active_single_queue (event.c:1576) ==10498== by 0x49EFDD: event_process_active (event.c:1668) ==10498== by 0x49F6DD: event_base_loop (event.c:1891) ==10498== by 0x49F063: event_base_dispatch (event.c:1702) ==10498== by 0x44C7F1: dns_retry_test_impl (regress_dns.c:724) ==10498== by 0x44CF60: dns_retry_test (regress_dns.c:749) ==10498== by 0x48A8A1: testcase_run_bare_ (tinytest.c:105) ==10498== by 0x48A94E: testcase_run_forked_ (tinytest.c:189) ==10498== by 0x48AB73: testcase_run_one (tinytest.c:247) ==10498== by 0x48B4C2: tinytest_main (tinytest.c:434) ==10498== by 0x477FC7: main (regress_main.c:459) ==10498== Address 0x6176ef8 is 40 bytes inside a block of size 342 free'd ==10498== at 0x4C29E90: free (vg_replace_malloc.c:473) ==10498== by 0x4A4411: event_mm_free_ (event.c:3443) ==10498== by 0x4BE8C5: request_finished (evdns.c:702) ==10498== by 0x4C3098: evdns_request_timeout_callback (evdns.c:2178) ==10498== by 0x49EA95: event_process_active_single_queue (event.c:1576) ==10498== by 0x49EFDD: event_process_active (event.c:1668) ==10498== by 0x49F6DD: event_base_loop (event.c:1891) ==10498== by 0x49F063: event_base_dispatch (event.c:1702) ==10498== by 0x44C7F1: dns_retry_test_impl (regress_dns.c:724) ==10498== by 0x44CF60: dns_retry_test (regress_dns.c:749) ==10498== by 0x48A8A1: testcase_run_bare_ (tinytest.c:105) ==10498== by 0x48A94E: testcase_run_forked_ (tinytest.c:189) ==10498== ==10498== ==10498== HEAP SUMMARY: ==10498== in use at exit: 0 bytes in 0 blocks ==10498== total heap usage: 83 allocs, 83 frees, 10,020 bytes allocated ==10498== ==10498== All heap blocks were freed -- no leaks are possible ==10498== ==10498== For counts of detected and suppressed errors, rerun with: -v ==10498== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0) OK 1 tests ok. (0 skipped) ==10497== ==10497== HEAP SUMMARY: ==10497== in use at exit: 0 bytes in 0 blocks ==10497== total heap usage: 3 allocs, 3 frees, 96 bytes allocated ==10497== ==10497== All heap blocks were freed -- no leaks are possible ==10497== ==10497== For counts of detected and suppressed errors, rerun with: -v ==10497== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) Bug was introduced in 97c750d6602517f22a1100f16592b421c38f2a45 ("evdns: fail ns after we are failing/retrasmitting request").
df19a970 2014-11-08 15:51:49 dns-example: allow to set ns from args We can't do this using resolv.conf: $ dns-example -v -c <(echo nameserver 127.0.0.1:10053) ya.ru Because of how evutil_read_file_() works (using fstat()) And actually glibc for example will not use port from nameserver line, and because of inet_aton() it will fail if nameserver will have arbitary port: (gdb) p inet_aton("127.0.0.1", malloc(10000)) $1 = 1 (gdb) p inet_aton("127.0.0.1:53", malloc(10000)) $2 = 0 From glibc/resolv/res_init.c: if (MATCH(buf, "nameserver") && nserv < MAXNS) { struct in_addr a; cp = buf + sizeof("nameserver") - 1; while (*cp == ' ' || *cp == '\t') cp++; if ((*cp != '\0') && (*cp != '\n') && __inet_aton(cp, &a)) { statp->nsaddr_list[nservall].sin_addr = a; statp->nsaddr_list[nservall].sin_family = AF_INET; statp->nsaddr_list[nservall].sin_port = htons(NAMESERVER_PORT);
32f8592c 2014-11-08 15:41:33 dns-example: convert to getopt()
b0e99244 2014-10-29 03:40:44 Add test for evhttp_connection_free_on_completion
2b9ec4c1 2014-10-26 01:18:10 Implement interface that provides the ability to have an outbound evhttp_connection free itself once all requests have completed
b361b8a6 2014-10-16 22:56:49 remove trailing comma from enum makes being included from something with -std=c89 happy
6dba1694 2014-10-13 17:59:32 Merge pull request #179 from pysiak/master Provide support for SO_REUSEPORT through LEV_OPT_REUSABLE_PORT
b625361a 2014-10-13 17:28:14 Provide support for SO_REUSEPORT through LEV_OPT_REUSABLE_PORT
c750c704 2014-10-09 11:48:38 Merge pull request #174 from azat/dns-fail-disable-when-inactive-fix-v3 Dns fail disable when inactive fix v3
e69f3908 2014-10-09 11:30:01 Merge pull request #171 from azat/bufferevent-openssl-fixes-v4 bufferevent_openssl: reset fd_is_set when setfd with -1 is called
2e2d18bc 2014-10-09 11:29:17 Merge pull request #170 from azat/https-client-retries https-client: add -retries argument, for connection retries
163df09b 2014-10-09 10:42:20 Merge pull request #108 from JoakimSoderberg/minor_issues Fix compilation for older OpenSSL versions.