Log

Author Commit Date CI Message
Nick Mathewson 23085c92 2009-04-10T15:01:31 Add a linked-pair abstraction to bufferevents. The new bufferevent_pair abstraction works like a set of buferevent_sockets connected by a socketpair, except that it doesn't require a socketpair, and therefore doesn't need to get the kernel involved. It's also a good way to make sure that deferred callbacks work. It's a good use case for deferred callbacks: before I implemented them, the recursive relationship between the evbuffer callback and the read callback would make the unit tests overflow the stack. svn:r1152
Nick Mathewson 81616620 2009-04-10T14:58:15 A couple of tweaks for deferred callbacks. svn:r1151
Nick Mathewson 4868f4d2 2009-04-10T14:22:33 Initial support for a lightweight 'deferred callbacks'. A 'deferred callback' is just a function that we've queued in the event base. This ability is needed for some mt stuff, and for complex callback chains. For internal use only. svn:r1150
Nick Mathewson e3d82497 2009-04-10T14:21:53 Don't allow internal events to starve lower-priority events. This is exceptionally important with multithreaded stuff, where we use an event to notify the base that other events have been made active. If the activated events have a prioirty number greater than that of the notification event, it will starve them, and that's no good. svn:r1149
Niels Provos ce146eb1 2009-04-10T05:43:45 Fix parsing of queries where the encoded queries contained \r, \n or + svn:r1148
Niels Provos 6dece3e9 2009-04-10T05:22:15 revert last commit; git user error svn:r1147
Niels Provos f43f1d14 2009-04-10T05:18:18 initial version of query decoding patch svn:r1146
Nick Mathewson f98385a4 2009-04-08T16:57:38 add a missing "static" to timeout_process. svn:r1145
Nick Mathewson 72b6ffe8 2009-04-08T03:05:42 Prevent unsupported modifications to bufferevent_sock buffers. In particular, we don't allow adding any data to end front of inbuf (we do that when we read), or removing it from the front of outbuf (we drain data only when we write). svn:r1144
Nick Mathewson 747331d1 2009-04-08T03:04:39 Add freeze support to evbuffers. From the documentation: Prevent calls that modify an evbuffer from succeeding. A buffer may frozen at the front, at the back, or at both the front and the back. If the front of a buffer is frozen, operations that drain data from the front of the buffer, or that prepend data to the buffer, will fail until it is unfrozen. If the back a buffer is frozen, operations that append data from the buffer will fail until it is unfrozen. We'll use this to ensure correctness on an evbuffer when we're waiting for an overlapped IO call to finish. svn:r1143
Nick Mathewson d9086fc0 2009-04-08T03:03:59 Add a new facility to "pin" the memory in an evbuffer chain. For overlapped IO (and possibly other stuff) we need to be able to label an evbuffer_chain as "pinned", meaning that every byte in it must remain at the same address as it is now until it unpinned. This differs from being "immutable": it is okay to add data to the end of a pinned chain, so long as existing data is not moved. svn:r1142
Nick Mathewson 68d0139f 2009-04-07T04:49:25 Refactor the zlib and pthreads tests to appear in the regular tinytest tree structure. svn:r1141
Nick Mathewson 684c022a 2009-04-06T20:38:42 Avoid a double event_del() in evdns.c. The bug could occur when a nameserver was marked as up, but then an outstanding probe sent to the nameserver failed. Now, evdns_up() cancels any outstanding probe. svn:r1140
Nick Mathewson d2e9caa6 2009-04-06T20:38:19 Fix evdns_cancel to alert callback and free associated RAM. Also, we add a test to make sure evdns_cancel is working properly. svn:r1139
Nick Mathewson 0f3c0983 2009-04-05T17:50:18 Fix a double-delete on the request timeout event. Port from Tor. svn:r1138
Nick Mathewson 28255a26 2009-04-05T04:26:46 Finally, get unit tests to pass with threading turned off again. svn:r1137
Nick Mathewson 6a18f4b0 2009-04-05T04:15:01 Munge the read_suspended flag before re-enabling reads on the underlying bufferevent. This makes it so the enabled thing has some idea whether reads are supposed to be suspended or not. svn:r1136
Nick Mathewson 661b5eea 2009-04-05T04:10:05 Actually, move EVUTIL_NIL_STMT to util-internal.h svn:r1135
Nick Mathewson 60e0d59b 2009-04-05T02:44:17 Add locking to evbuffers. svn:r1134
Nick Mathewson d13b59ce 2009-04-05T02:44:04 Fix build with thread support disabled, and make no-op macros a little more no-oppy. svn:r1133
Nick Mathewson 70ee390f 2009-04-05T02:43:55 Add some more utility macros to evthread-internal.h svn:r1132
Nick Mathewson f1b1bad4 2009-04-03T14:27:03 Make the new evbuffer callbacks use a new struct-based interface. The old interface would fail pretty hard when we had to batch up multiple adds and drains in a single call. svn:r1131
Nick Mathewson f90500a5 2009-04-03T01:21:36 Add a new improved search function. The old evbuffer_find didn't allow iterative searching, and forced us to repack the buffer completely every time we searched in it. The new evbuffer_search addresses both of these. As a side-effect, the evbuffer_find implementation is now a little more efficient. svn:r1130
Nick Mathewson 0afb1f7f 2009-04-01T16:08:34 Glibc mkstemp requires exactly 6 Xs. svn:r1129
Niels Provos 994e8578 2009-03-30T17:36:22 correct evbuffer_drain documentation from John Khvatov svn:r1127
Niels Provos 23655dfb 2009-03-12T17:43:43 include Doxyfile in tar ball; from Jeff Garzik svn:r1125
Nick Mathewson 73094d59 2009-02-13T13:43:35 Make tmpfile code compile without warnings svn:r1123
Niels Provos 79b7799b 2009-02-13T01:42:59 a simple test for evbuffer_add_file svn:r1122
Nick Mathewson ec35eb55 2009-02-12T22:19:54 Make threading functions global, like the mm_ functions. Use the libevent_pthread.la library in regress_pthread. svn:r1121
Nick Mathewson d0a9c90e 2009-02-11T17:29:17 Fix some of the crazier indentation and tabbing choices in evdns.c svn:r1120
Nick Mathewson 77c80b8d 2009-02-11T17:24:11 New bind-to option to allow DNS clients to bind to arbitrary ports for their outgoing addresses. svn:r1119
Nick Mathewson acaf65c3 2009-02-11T17:23:32 Make evutil_parse_sockaddr_port give a useful socket-length output. svn:r1118
Nick Mathewson f2a24d6e 2009-02-11T17:22:40 Better comments for some confusing-to-me code. svn:r1117
Nick Mathewson c6f4dc98 2009-02-11T17:21:48 Port some evdns changes over from Tor. svn:r1116
Nick Mathewson ac36f404 2009-02-11T05:17:27 oops; coding too quickly on nil-filter patch. Caught by niels. svn:r1115
Nick Mathewson cd731b77 2009-02-10T21:40:12 Do not use ctypes functions in cases when we need the "net" locale. This patch adds a new set of EVUTIL_IS* functions to replace use of the ctypes is* functions in all cases where we care about characters' interpretations in net ascii rather than in the locale. For example, when we're working with DNS hostnames, we don't want to do the 0x20 hack on non-ascii characters, even if the host thinks they should be isalpha. svn:r1114
Nick Mathewson 1ed27048 2009-02-10T21:39:56 Stop rolling our own offsetof twice. svn:r1113
Nick Mathewson f04b90e5 2009-02-10T19:43:19 Make a couple of newer evdns functions more bulletproof. svn:r1112
Nick Mathewson da49d6a3 2009-02-10T19:43:11 Stop using platform inet_aton/inet_addr; they can behave strangely on certain misformed addresses. svn:r1111
Nick Mathewson 01456265 2009-02-10T19:39:22 Explode less badly in the case where we're told to prepend/append/remove a buffer to itself. Note some API/implementation deficiencies. svn:r1110
Nick Mathewson 20f809ce 2009-02-10T19:39:12 Make default (nil) filter use evbuffer_remove_buffer to respect the high-water mark of the target buffer. svn:r1109
Nick Mathewson e7fd1034 2009-02-10T19:39:03 Test some formerly untested prepend cases of evbuffer. Now evbuffer coverage is over 80 percent. svn:r1108
Nick Mathewson 9e3e7b36 2009-02-10T19:38:54 More unit tests for evbuffer_add_reference to make sure that certain interleaved data patterns work; that free invokes callback; that callbacks are not invoked too early or later; etc. svn:r1107
Nick Mathewson 98b7046b 2009-02-10T19:38:43 A few more comments on evbuffer-internal structures. svn:r1106
Nick Mathewson edfdb698 2009-02-10T19:38:34 Add an assertion to evbuffer_chain_align so we can't reuse it in the future. svn:r1105
Nick Mathewson 71604d85 2009-02-10T19:38:25 Remove some needless includes svn:r1104
Nick Mathewson deb2a121 2009-02-10T19:38:14 use new evutil_make_listen_socket_reuseable() in http.c svn:r1103
Nick Mathewson c7b2f8fd 2009-02-10T19:38:05 New function to abstract SO_REUSEADDR. svn:r1102
Nick Mathewson f9e4e0f9 2009-02-03T18:28:53 Move bufferevent tests to regress_bufferevent.c file. svn:r1101
Nick Mathewson cc049bfc 2009-02-03T05:22:57 Enable (and debug) WSARecv for evbuffer iovec-like reads. The two things we were missing: the flags parameter is not optional, and an error can actually indicate a close. svn:r1100
Nick Mathewson ea11f819 2009-02-02T22:17:32 Compile http_connection_retry_test, but mark it skipped on win32. svn:r1099
Nick Mathewson 722885fb 2009-02-02T21:59:53 Some mingws have AF_UNIX, which may have prevented our socketpair from working at all on them. Fix that. svn:r1098
Nick Mathewson 3502a472 2009-02-02T21:24:04 convert new bufferevent_*.c files to event-config.h only. svn:r1097
Nick Mathewson 4d92e426 2009-02-02T19:22:27 forward-port: Make evdns_resolve_reverse args const. svn:r1096
Nick Mathewson ea4b8724 2009-02-02T19:22:13 checkpoint work on big bufferevent refactoring svn:r1095
Nick Mathewson e84c7656 2009-02-01T05:26:47 Allocate callback entries with contents 0d out. svn:r1093
Nick Mathewson 2e3f0f68 2009-02-01T02:20:16 Enable the edge-triggered test again svn:r1092
Nick Mathewson 8d3a10f8 2009-02-01T01:43:58 Support temporarily suspending an evbuffer callback. This is different from disabling the callback, since we want to process changes, but not just yet. svn:r1091
Nick Mathewson e3e11531 2009-02-01T01:07:42 Unit tests for evbuffer callback manipulation svn:r1090
Nick Mathewson 2e50658d 2009-02-01T01:07:33 Fix a typo in buffer.h svn:r1089
Nick Mathewson ca37fef9 2009-02-01T01:07:22 Change evbuffer callbacks to use tinytest natively and never assert. svn:r1088
Nick Mathewson a30c9eb1 2009-02-01T01:07:12 Move evbuffer tests into their own file. svn:r1087
Nick Mathewson ff7a5e12 2009-01-31T19:32:20 slightly more coverage for evutil. svn:r1086
Nick Mathewson 12e8db5b 2009-01-31T18:36:47 Convert evtag test. svn:r1085
Nick Mathewson 5831d11a 2009-01-31T18:36:37 Move rpc_test to regress_rpc. svn:r1084
Nick Mathewson fa6ae169 2009-01-31T18:36:24 Convert RPC suite. There are still some places it can exit(1), but those always run forked, so no big deal. svn:r1083
Nick Mathewson d9628ef4 2009-01-31T18:36:08 Add missing initializers svn:r1082
Nick Mathewson eac75f91 2009-01-31T07:32:14 Port DNS tests. svn:r1081
Nick Mathewson e6ba208b 2009-01-31T07:32:00 Tinytest update: mostly just to allow test skipping. svn:r1080
Nick Mathewson 52eb4951 2009-01-31T07:31:47 Build with the -fno-strict-aliasing flag on GCC. You do not want to know about the 2 hours I just spent tracking down an evdns bug that only affected me on some platforms to the way we were using sockaddr* and sockaddr_in*. Suffice it to say that I do not think this is the only C99-aliasing-dubiousness in our code, nor that I am smart enough to keep my code correct with the GCC's strict aliasing optimizations in place. svn:r1079
Nick Mathewson 2546ea66 2009-01-31T05:45:26 Do not attempt to pass a va_args to regular snprintf. Hilarity will ensue. Fortunately, 1.4 does not have this bug. svn:r1078
Nick Mathewson 4ec690d3 2009-01-31T05:45:16 Rename a couple of http tests so they all end with _test. This lets us simplify the naming. svn:r1077
Nick Mathewson 153093ec 2009-01-30T17:44:13 Port the HTTP unit tests. Most are still legacy (since they use test_ok so much), but at least they no longer exit(1) on failure svn:r1076
Nick Mathewson 241690b2 2009-01-30T17:43:59 Move util tests to regress_util.c svn:r1075
Nick Mathewson 4e9470b4 2009-01-30T17:43:48 Convert test_evutil_strtoll to new framework. svn:r1074
Nick Mathewson a8203b34 2009-01-29T23:19:57 Refactor unit tests using my spiffy new "tinytest" framework. The big win here is that we can get process-level isolation. This has been tested to work okay on at least Linux and Win32. Only the tests in regress.c have been converted wrapped in the new wrapper functions; the others are still on the old system. svn:r1073
Nick Mathewson 39c8dbe0 2009-01-29T20:07:59 Make ht-internal.h get distributed. svn:r1072
Nick Mathewson cc7a53c1 2009-01-29T18:15:36 fix signed/unsigned warning in unit tests. can we just use "char*" on all new APIs? this void/unsigned char*/char* business is awful. svn:r1071
Nick Mathewson 7dd362b1 2009-01-29T15:09:24 Have util-internal.h define socklen_t if we need it, and include it appropriately. This fixes win32 compilation. svn:r1070
Niels Provos a0cae310 2009-01-29T03:22:47 make it so that evbuffer_add_file where we read the complete contents of the file can fail without side effects svn:r1069
Niels Provos 66b2a7ff 2009-01-29T03:20:40 test evbuffer_add_reference svn:r1068
Nick Mathewson f13bede7 2009-01-28T20:31:19 Fix an unlikely degenerate case of evutil_vsnprintf svn:r1067
Nick Mathewson e3e696c8 2009-01-28T20:24:12 Use size_t for name length in DNS requests. Not that it matters much. svn:r1066
Nick Mathewson b85b710c 2009-01-27T22:34:36 Update copyright statements to reflect the facts that: a) this is 2009 b) niels and nick have been comaintainers for a while c) saying "all rights reserved" when you then go on to explicitly disclaim some rights is sheer cargo-cultism. svn:r1065
Nick Mathewson 8889a770 2009-01-27T22:30:46 Replace all use of config.h with event-config.h. svn:r1064
Nick Mathewson 9993137c 2009-01-27T21:10:31 Remove all trailing whitespace in all the source files. svn:r1063
Niels Provos 30653899 2009-01-27T16:35:28 make it so that test_persistent_timeout can call loopexit only once; reported by Alexander Drozdov svn:r1062
Niels Provos 1c927b7d 2009-01-27T16:29:48 fix memory leak whens etting up priorities; reported by Alexander Drozdov svn:r1061
Nick Mathewson 88f2b7a0 2009-01-27T13:37:09 Fix some warnings on linux gcc with --enable-gcc-warnings svn:r1060
Niels Provos 1757cf71 2009-01-27T06:21:12 use %zu for off_t svn:r1059
Niels Provos 8b5bd774 2009-01-27T06:18:45 make it compile on linux svn:r1058
Niels Provos fdf69493 2009-01-27T06:05:38 sendfile/mmap and memory reference implementation for evbuffers svn:r1057
Niels Provos b93e5054 2009-01-27T05:33:39 second argument to evbuffer_pullup should be ssize_t svn:r1056
Nick Mathewson 4f02a963 2009-01-26T18:04:18 More docs and example code in whatsnew svn:r1055
Nick Mathewson c0712b16 2009-01-26T17:29:45 Initial documentation for evdns server functions. Also deprecate the one that didn't take an event_base. svn:r1054
Nick Mathewson 2b1d535e 2009-01-26T17:29:27 Accept evutil_socket_t for evdns_server_ports. svn:r1053
Nick Mathewson bdbd5e0e 2009-01-26T17:09:37 For every deprecated function, explain why it is deprecated and what you should call instead. svn:r1052
Nick Mathewson 52a75f18 2009-01-26T17:09:22 Documentation (or more accurate documentation) for a few more functions. svn:r1051
Nick Mathewson dddd58ba 2009-01-26T17:09:09 Reformat util.h slightly so that it looks ok with 8-char tabs. svn:r1050
Niels Provos 0e779906 2009-01-26T06:13:24 fix memleak in evmap_signal_clear; from Alexander Drozdov svn:r1049