kc3-lang/libevent/http-internal.h

Branch :


Log

Author Commit Date CI Message
4feedef9 2010-11-29 07:18:32 Add a few more comments.
aab8c38b 2010-11-05 11:17:07 Add evhttp server alias interface, correct flagging of proxy requests. evhttp needs to be mindful of all hostnames and addresses that clients use to contact the main server and vhosts to know the difference between proxy requests and non-proxy requests.
536311a4 2010-11-04 12:39:41 evhttp: Return 501 when we get an unrecognized method, not 400.
f5b391e2 2010-11-04 11:53:34 Tweak interface for allowed methods
75a73414 2010-11-04 11:25:35 Define enumerators for all HTTP methods, including PATCH from RFC5789 This patch defines enumerators for all HTTP methods that exist (including PATCH introduced in RFC 5789). It also makes them bit-masky (that's not a word, is it?), breaking binary- but not source-code compatibility. evhttp now stores a bitmask specifying for which methods requests to dispatch and which ones to reject with "405 Method Not Allowed". By default that's the ones we currently have (GET, POST, HEAD, PUT, DELETE), thereby keeping functional compatibility (besides the minor change that one of the other methods will now cause 405 instead of 400. But I believe that could even be considered a bug-fix). evhttp is extended by evhttp_set_allowed_methods() with which the user can change that bitmask. no regressions here and my test-app still works. Haven't yet actually tested any of the new methods. What's obviously missing here is the special logic for the methods: OPTIONS: We should be fine here - I believe our current dispatch logic should work fine. Some convenience functions would be fine though. TRACE: I'm pretty certain we should never dispatch this to the callbacks and simply implement the necessary functionality built-in. CONNECT: Pretty straight-forward to implement (and considering the framework in which we implement it very efficient too). Should probably go built-in. PATCH: Except for checking the RFC against our pre-dispatch logic (there just might be some "MUST not have Some-Header" lurking somewhere) there is nothing to be done here, this is completely up to the user. Nothing to do.
74c0e862 2010-10-25 21:53:15 Avoid missed-request bug when entire http request arrives before data is flushed The trigger for starting to read the first line of a request used to be, "When data has arrived and we're looking for the first line." But that's not good enough: if the entire next request gets read into our bufev->inbuf while we're still processing the current request, we'll never see any more data arrive, and so will never process it. So the fix is to make sure that whenever we hit evhttp_send_done, we call evhttp_read_cb. We can't call it directly, though, since evhttp_send_done is reachable from the user API, and evhttp_read_cb can invoke user functions, and we don't want to force everyone to have reentrant callbacks. So, we use a deferred_cb. Found by Ivan Andropov. This is bug 3008344.
2a3b5872 2010-10-21 12:23:10 Merge branch 'http_small_tweaks' Conflicts: http-internal.h
60433a0a 2010-08-13 17:08:59 Clean up syntax on TAILQ_ENTRY() usage Though the C standards allow it, it's apparently possible to get MSVC upset by saying "struct { int field; } (declarator);" instead of "struct {int field; } declarator;", so let's just not do that. Bugfix for 3044492 (commit msg by nickm)
90b3ed5b 2010-08-09 13:25:50 Add some comments to http.c and make a few functions static.
17efc1cd 2010-03-04 01:25:51 Update all our copyright notices to say "2010"
e5bbd40a 2010-02-18 17:41:15 Clean up formatting: use tabs, not 8-spaces, to indent.
8f654678 2010-02-03 16:25:34 Merge remote branch 'github/http_listener' Conflicts: http.c
ec34533a 2009-12-30 00:41:03 Make http use evconnlistener. Now that we have a generic listen-on-a-socket mechanism, there's no longer any reason to have a separate listen-on-a-socket implementation in http.c. This also lets us use IOCP and AcceptEx() when they're enabled. Possibly, we should have a new mechanism to add a socket given only a listener.
c698b77d 2009-12-30 00:11:27 Allow http connections to use evdns for hostname looksups. This was as simple as using bufferevent_connect_hostname instead of calling connect() ourself, which already knows how to use an evdns_base if it gets one. Untangling the bind code might be a little trickier.
34f28e08 2009-11-05 15:57:22 Fix a few types to use compatible versions svn:r1501
47bad8ab 2009-11-04 20:17:32 Implement size limits on HTTP header length and body length. Patch from Constantine Verutin, simplified a little. svn:r1500
50825466 2009-10-21 02:14:16 Fix windows compilation warnings. svn:r1449
5d71b25b 2009-07-17 18:38:38 Remove all trailing whitespace from end-of-line. svn:r1350
9516df0e 2009-04-23 05:40:06 Fix c89 bugs reported by Cory Stup. Others may remain. I wasn't able to get gcc --std=c89 to build libevent at all, so I don't know what compiler the original reporter is using here. Note that this change requires us to disable the part of our rpc code that uses variadic macros when using a non-gcc compiler. This is a problem if we want our rpc api to be portable. svn:r1231
4e8cdc6f 2009-04-13 18:23:02 Fix two windows compilation bugs. svn:r1171
b85b710c 2009-01-27 22: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
f700566c 2008-12-19 21:31:43 Make the http connection close detection work properly with bufferevents and fix a potential memory leak associated with it svn:r963
5792d42f 2008-11-16 23:22:14 Allow setting of local port for evhttp connections to support millions of connections from a single system; from Richard Jones svn:r948
9998c0cb 2008-06-26 00:40:57 correct handling of trailing headers in chunked replies; from Scott Lamb. svn:r887
1080852e 2008-05-12 03:12:09 allow cancelation of user initiated http requests; this will allow cancelation of rpc requests eventually svn:r812
7defe4cb 2008-05-08 15:55:09 r15549@tombo: nickm | 2008-05-08 11:53:11 -0400 Make new http headers include minimal parts of event2/ tree; make old evhttp.h incldue event.h, since the old one did too. svn:r798
f2a81fbc 2008-05-05 07:17:05 add support for virtual http hosts; no tests yet svn:r771
f940eb4b 2008-05-04 22:21:29 fix a bug where it was not possible to bind multiple sockets to the same http server; test that binding multiple sockets works. svn:r769
4cff82bb 2008-04-29 18:11:10 r15339@tombo: nickm | 2008-04-29 14:03:48 -0400 Note that evhttp_hostportfile is not threadsafe, and so its usage will change. Mark its first argument const. Remove a now-redundant declaration for it in http-internal.h. svn:r743
e44ef375 2008-04-29 04:52:50 convert evhttp_connection to use bufferevents svn:r742
1120f04f 2007-11-25 21:53:06 r16731@catbus: nickm | 2007-11-25 16:52:53 -0500 Replace all fds on non-unix-specific APIs with evutil_socket_t, which is int on unix and intptr_t on win32. svn:r552
98f9616b 2007-09-07 02:49:46 support setting local address on an evhttp_connection svn:r416
67947ce3 2007-08-19 02:41:23 provide evhttp_new and evhttp_bind_socket instead of evhttp_start; using evhttp_new, it is possible to associate an event_base with the http server so that multi-threaded applications can have their own http server per thread; add appropriate testing. svn:r397
a91d2b2b 2006-12-12 03:51:30 do close-detection via a separate event svn:r301
de7db33a 2006-12-09 02:58:12 low-level interfaces for streaming; from dug song i applied some bug fixes and slight re-arranged the logic on when to call the close notification callback; i also don't like the streaming interface; i'd rather see it do the chunked response formatting explicitly. svn:r298
852d05a3 2006-12-09 01:41:57 support retrying for connections; from dug song small tweaks from me. svn:r297
942656bb 2006-11-23 06:32:20 persistent connections are somewhat complicated; detect on the client side if the server closes a persistent connection. previously, we would have failed the next request on that connection. provide test case. svn:r277
2d028ef6 2006-11-22 06:54:28 fix a bug where rpc would not be scheduled when they were queued; test for it. allow a configurable timeout for connections and RPCs. svn:r274
ce436242 2006-11-22 05:03:02 an attempt at differentiated error handling for timeouts and eof. really this needs to be propagated all the way to the callback. svn:r273
fda1216b 2006-11-20 03:32:53 generate client request code via macro; flesh out the pools a little bit. svn:r268
36212f9d 2006-11-18 03:05:26 make persistent connections work; needs more testing svn:r261
f554234f 2006-11-16 07:36:20 first stab at an rpc layer; this breaks the regression test. svn:r254
ba7262eb 2006-07-17 00:33:57 reorganization of the http functionality; we separate http handling into a connection object and a request object; also make it clear which buffers are used for input and output; unittests not complete yet. svn:r217
147b71e3 2006-06-10 22:28:21 rename http.h to http-internal.h - i wish there were decent refactoring tools for open source programmers. svn:r213