Branch :
| Author | Commit | Date | CI | Message |
|---|---|---|---|---|
| ec347b92 | 2010-07-07 16:45:03 | Move event-config.h to include/event2 This change means that all required include files are in event2, and all files not in event2/* are optional. | ||
| 009f3005 | 2010-08-04 14:54:38 | Fix rate-limit calculation on openssl bufferevents. When you're doing rate limiting on an openssl connection, you nearly always want to limit the number of bytes sent and received over the wire, not the number of bytes read or written over the secure transport. | ||
| c9913174 | 2010-07-19 15:31:19 | Change bufferevent_openssl::do_write so it doesn't call SSL_write with a 0 length buffer I was running into a problem when using bufferevent_openssl with a very simple echo server. My server simply bufferevent_read_buffer 'd data into an evbuffer and then passed that evbuffer straight to bufferevent_write_buffer. The problem was every now and again the write would fail for no apparent reason. I tracked it down to SSL_write being called with the amount of data to send being 0. This patch alters do_write in bufferevent_openssl so that it skips io_vecs with 0 length. | ||
| 657d1b6d | 2010-03-13 01:06:57 | Set mem_offset for every bufferevent type | ||
| 75018951 | 2010-03-13 00:23:06 | Fix a possible double-free bug in SSL bufferevents with CLOSE_ON_FREE With CLOSE_ON_FREE set, we were telling the BIO to free the bufferevent when it was closed, and also freeing it ourselves. | ||
| f1bc125e | 2010-03-12 23:00:49 | Improve robustness for refcounting Document that we do intend to double-decref underlying bufferevents under some circumstances. Check to make sure that we don't decref past 0. | ||
| 17efc1cd | 2010-03-04 01:25:51 | Update all our copyright notices to say "2010" | ||
| d3288293 | 2010-02-20 18:44:35 | Provide consistent, tested semantics for bufferevent timeouts The different bufferevent implementations had different behavior for their timeouts. Some of them kept re-triggering the timeouts indefinitely; some disabled the event immediately the first time a timeout triggered. Some of them made the timeouts only count when the bufferevent was actively trying to read or write; some did not. The new behavior is modeled after old socket bufferevents, since they were here first and their behavior is relatively sane. Basically, each timeout disables the bufferevent's corresponding read or write operation when it fires. Timeouts are stopped whenever we suspend writing or reading, and reset whenever we unsuspend writing or reading. Calling bufferevent_enable resets a timeout, as does changing the timeout value. | ||
| e5bbd40a | 2010-02-18 17:41:15 | Clean up formatting: use tabs, not 8-spaces, to indent. | ||
| ff3f6cd4 | 2010-01-22 16:14:49 | Check more internal event_add() calls for failure Most of these should be unable to fail, since adding a timeout generally always works. Still, it's better not to try to be "too smart for our own good here." There are some remaining event_add() calls that I didn't add checks for; I've marked those with "XXXX" comments. | ||
| ba2945f9 | 2010-01-06 17:59:44 | Merge branch 'ratelimit' Conflicts: bufferevent_async.c | ||
| 2e8eeea3 | 2009-12-29 19:50:03 | Fix crash bugs when a bufferevent's eventcb is not set. In many places throughout the code, we called _bufferevent_run_eventcb without checking whether the eventcb was actually set. This would work fine when the bufferevent's callbacks were deferred, but otherwise the code would segfault. Strangely, we always remembered to check before calling the _bufferevent_run_{read,write}cb functions. To prevent similar errors in the future, all of _buferevent_run_{read,write,event}cb now check to make sure the callback is actually set before invoking or deferring the callback. This patch also removes the now-redundant checks for {read,write}cb. | ||
| 82743794 | 2009-12-24 17:47:14 | Do not make bufferevent_setfd implicitly disable EV_READ and EV_WRITE. This obviates the need for BEV_SUSPEND_CONNECTING, and good riddance. | ||
| 737c9cd8 | 2009-11-27 13:16:54 | Rate-limiting for bufferevents; group and individual limits are supported. The fairness algorithms are not the best, not every bufferevent type is supported, and some of the locking tricks here are simply absurd. Still, this code should be a good first step. | ||
| a773df54 | 2009-12-18 16:24:41 | Fix a segfault when freeing SSL bufferevents in an unusual order Have container bufferevents hold a reference to their underlying bufferevents. (Commit message and minor revisions by nickm.) | ||
| a6adeca7 | 2009-12-17 12:38:46 | Fix a segfault when writing a very fragmented evbuffer onto an SSL Fixes bug 2916328. | ||
| 26573d3d | 2009-11-09 19:37:15 | Change an err to a warn in bufferevent_openssl svn:r1523 | ||
| 784b8773 | 2009-11-06 21:46:57 | We do not work any more without an event-config.h; stop pretending that it is meaningful to check for HAVE_CONFIG_H svn:r1516 | ||
| 34f28e08 | 2009-11-05 15:57:22 | Fix a few types to use compatible versions svn:r1501 | ||
| 516452b7 | 2009-10-30 21:08:29 | Keep openssl errors associated with the right bufferevent object. OpenSSL has a per-thread error stack, and really doesn't like you leaving errors on the stack. Rather than discard the errors or force the user to handle them, this patch pulls them off the openssl stack and puts them on a stack associated with the bufferevent_openssl. If the user leaves them on the stack then, it won't affect any other connections. This bug was found by Roman Puls. Thanks! svn:r1481 | ||
| 2e36dbe1 | 2009-10-26 20:00:43 | Use EVUTIL_ASSERT() consistently instead of assert. svn:r1464 | ||
| b73ad7bc | 2009-10-21 18:48:22 | Treat the bitwise OR of two enum values as an int. This makes our interfaces usable from C++, which doesn't believe you can say "bufferevent_socket_nase(base, -1, BEV_OPT_CLOSE_ON_FREE|BEV_OPT_DEFER_CALLBACKS)" but which instead would demand "static_cast<bufferevent_options>(BEV_OPT_CLOSE_ON_FREE| BEV_OPT_DEFER_CALLBACKS))" for the last argument. Diagnosis and patch from Chris Davis. svn:r1456 | ||
| e3fd294a | 2009-10-16 13:19:57 | Spelling fixes in comments and strings. svn:r1445 | ||
| f2282398 | 2009-08-14 20:07:35 | New function to put an SSL bufferevent into a renegotiating state. svn:r1418 | ||
| 46a61869 | 2009-08-14 20:07:17 | Disable whichever struct event we don't want during ssl handshaking. svn:r1417 | ||
| 58b0708e | 2009-08-14 20:07:09 | Only send a connected event _after_ we've adjusted the SSL state. This is important if the callback adjusts it to something else. svn:r1416 | ||
| cf54d74a | 2009-07-30 20:41:41 | More unit tests for Openssl, including initializing with no socket. Up to 75% coverage. svn:r1399 | ||
| 7a2a51a3 | 2009-07-30 20:41:21 | Add unit tests for SSL session renegotiation. This tickles the write-blocked-on-read code, and in this case turned up a bug in it. svn:r1397 | ||
| 595f7e38 | 2009-07-30 20:41:12 | Always retry SSL_write() with the same number you told it last time. svn:r1396 | ||
| eecefc50 | 2009-07-30 20:41:00 | Add a function to extract the SSL object from a bufferevent_openssl. svn:r1395 | ||
| d5a3f1f1 | 2009-07-30 20:40:50 | Set the SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER flag, and explain why. svn:r1394 | ||
| 44715517 | 2009-07-30 20:40:40 | Use SSL_do_handshake in place of SSL_connect/SSL_accept svn:r1393 | ||
| 709c21c4 | 2009-07-28 04:03:57 | Bufferevent support for openssl. This code adds a new Bufferevent type that is only compiled when the openssl library is present. It supports using an SSL object and an event alert mechanism, which can either be an fd or an underlying bufferevent. There is still more work to do: the unit tests are incomplete, and we need to support flush and shutdown much better. Sometimes events are generated needlessly: this will hose performance. There's a new encrypting proxy in sample/le-proxy.c. This code has only been tested on OSX, and nowhere else. svn:r1382 |