- Sep 20, 2008
-
-
Jim Jagielski authored
From Adam Woodworth <mirkperl gmail.com> git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@697362 13f79535-47bb-0310-9956-ffa450edef68
-
Paul Querna authored
Using this basic framework, you can return SUSPENDED from an HTTP Handler, and then register a callback that is invoked by the MPM at a later time. This initial version only supports _timers_ as callbacks, but in the future I would like to add things like wait for socket activity, on a socket specified by the handler. Once in a callback, It is then the responsibility of the callback fucntion to finish the HTTP Request handling, but this alows you to do cool things like a fully async proxy, COMET support, or even rate limiting. To prove I'm not insane, I've inlcuded an example module, mod_dialup. You can configure it like this: <Location "/docs"> ModemStandard "V.32" </Location> And for static files inside that path, you will be rate limited to V.32 speeds, aka 9.6 kilobits/second. Does anyone besides Rüdiger read commit emails :-) ? I know there are likely huge problems with this, but I would like to see how far we can push the Event MPM, figure out what to do better, if there is anything, and then really dive into the 3.0 development before ApacheCon. * server/mpm/experimental/event/fdqueue.h: (timer_event_t): New structure to hold timer events and callback functions. * server/mpm/experimental/event/fdqueue.c (ap_queue_empty): Modify to also look at Timer Ring. (ap_queue_init): Initialize Timer Ring. (ap_queue_push_timer): New function, pushes a timer event into the queue. (ap_queue_pop_something): Renamed function, returns a timer event or a socket/pool for a worker thread to run. * server/mpm/experimental/event/event.c (process_socket): If the connection is in SUSPENDED state, don't force it into linger mode yet, the callback will have to take care of that. (push_timer2worker): New shortcut function, pushes timer event into queue for a worker to run. (timer_free_ring): New global data structure to recycle memory used by timer events. (timer_ring): New global data structure to hold active timer events. (g_timer_ring_mtx): Thread mutex to protect timer event data structures. (ap_mpm_register_timed_callback): New Function, registers a callback to be invoked by the MPM at a later time. (listener_thread): Calculate our wakeup time based on the upcoming Event Queue, and after pollset_poll runs, push any Timers that have passed onto worker threads to run. (worker_thread): Call new queue pop method, and if the Timer Event is non-null, invoke the callback. Once the callback is done, push the structure onto the timer_free_ring, to be recycled. (child_main): Initialize new mutex and ring structures. * server/config.c (ap_invoke_handler): Allow SUSPENDED aa valid return code from handlers. * modules/http/http_core.c (ap_process_http_async_connection): Don't close the connection when in SUSPENDED state. * modules/http/http_request.c (ap_process_request_after_handler): New function, body pulled from the old, ap_process_async_request. Split to let handlers invoke this so they don't need to know all of the details of finishing a request. (ap_process_async_request): If the handler returns SUSPENDED, don't do anything but return. * include/ap_mmn.h: Bump MMN. * include/ap_mpm.h (ap_mpm_register_timed_callback): New function. * include/httpd.h: (SUSPENDED): New return code for handlers. (request_rec::invoke_mtx): New mutex to protect callback invokcations from being run before the original handler finishes running. (conn_state_e): Add a suspended state. * include/http_request.h (ap_process_request_after_handler): New function to make it easier for handlers to finish the HTTP Request. * modules/test/config.m4: Add mod_dialup to build. * modules/test/mod_dialup.c: New rate limiting module, requires the Event MPM to work. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@697357 13f79535-47bb-0310-9956-ffa450edef68
-
- Sep 19, 2008
-
-
Jim Jagielski authored
Cleanup the explanation. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@697129 13f79535-47bb-0310-9956-ffa450edef68
-
Jim Jagielski authored
are available to be dropped, should they be idle long enough. PR 43371 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@697093 13f79535-47bb-0310-9956-ffa450edef68
-
- Sep 18, 2008
-
-
Jim Jagielski authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@696761 13f79535-47bb-0310-9956-ffa450edef68
-
Mladen Turk authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@696614 13f79535-47bb-0310-9956-ffa450edef68
-
- Sep 17, 2008
-
-
Jim Jagielski authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@696417 13f79535-47bb-0310-9956-ffa450edef68
-
Eric Covener authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@696368 13f79535-47bb-0310-9956-ffa450edef68
-
Vincent Bray authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@696313 13f79535-47bb-0310-9956-ffa450edef68
-
- Sep 16, 2008
-
-
Justin Erenkrantz authored
Submitted by: Tim Bray Tweaked by: jerenkrantz git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@696006 13f79535-47bb-0310-9956-ffa450edef68
-
Tony Stevenson authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@695942 13f79535-47bb-0310-9956-ffa450edef68
-
Eric Covener authored
a little more complete/self-contained. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@695883 13f79535-47bb-0310-9956-ffa450edef68
-
Eric Covener authored
(and these are SDK/SSL examples, not mod_authnz_ldap examples) git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@695881 13f79535-47bb-0310-9956-ffa450edef68
-
- Sep 14, 2008
-
-
Eric Covener authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@695255 13f79535-47bb-0310-9956-ffa450edef68
-
- Sep 13, 2008
-
-
Nilgun Belma Buguner authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@694878 13f79535-47bb-0310-9956-ffa450edef68
-
- Sep 12, 2008
-
-
Nick Kew authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@694661 13f79535-47bb-0310-9956-ffa450edef68
-
Nilgun Belma Buguner authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@694618 13f79535-47bb-0310-9956-ffa450edef68
-
- Sep 11, 2008
-
-
Ruediger Pluem authored
Submitted by: Basant Kumar kukreja <Basant.Kukreja Sun.COM> git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@694431 13f79535-47bb-0310-9956-ffa450edef68
-
- Sep 10, 2008
-
-
Ruediger Pluem authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@693728 13f79535-47bb-0310-9956-ffa450edef68
-
Ruediger Pluem authored
disallow empty search patterns. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@693727 13f79535-47bb-0310-9956-ffa450edef68
-
- Sep 09, 2008
-
-
Ruediger Pluem authored
a brigade each time. PR: 45687 Submitted by: Dan Poirier <poirier pobox.com> Reviewed by: rpluem git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@693577 13f79535-47bb-0310-9956-ffa450edef68
-
Greg Ames authored
reuse. Submitted by: Dan Poirier <poirier pobox.com> git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@693564 13f79535-47bb-0310-9956-ffa450edef68
-
Ruediger Pluem authored
as well give up. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@693392 13f79535-47bb-0310-9956-ffa450edef68
-
Nick Kew authored
PR 39045 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@693328 13f79535-47bb-0310-9956-ffa450edef68
-
- Sep 08, 2008
-
-
Ruediger Pluem authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@693224 13f79535-47bb-0310-9956-ffa450edef68
-
Nick Kew authored
PR 43250, patch by Basant Kumar Kukreja git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@693141 13f79535-47bb-0310-9956-ffa450edef68
-
Jim Jagielski authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@693122 13f79535-47bb-0310-9956-ffa450edef68
-
Jim Jagielski authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@693121 13f79535-47bb-0310-9956-ffa450edef68
-
Jim Jagielski authored
value. PR: 45762 Dan Poirier <poirier@pobox.com> git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@693120 13f79535-47bb-0310-9956-ffa450edef68
-
Nick Kew authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@693113 13f79535-47bb-0310-9956-ffa450edef68
-
Nick Kew authored
PR#44995 - Rainer Jung git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@693108 13f79535-47bb-0310-9956-ffa450edef68
-
- Sep 06, 2008
-
-
William A. Rowe Jr authored
with stupid-assed clients which contravine their prime directives, such as content-type, or do not harm humans. Flaws such as utf-7 decoding ensure that even txt->html transforms are insufficient. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@692727 13f79535-47bb-0310-9956-ffa450edef68
-
- Sep 05, 2008
-
-
Greg Ames authored
Submitted by: Dan Poirier <poirier pobox.org> Reviewed by: trawick git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@692567 13f79535-47bb-0310-9956-ffa450edef68
-
Takashi Sato authored
Submitted by: kawai Reviewed by: takashi git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@692469 13f79535-47bb-0310-9956-ffa450edef68
-
Takashi Sato authored
(This is still inaccurate for trunk Event MPM.) Submitted by Dan Poirier <poirier pobox.com> PR: 45747 git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@692325 13f79535-47bb-0310-9956-ffa450edef68
-
- Sep 02, 2008
-
-
Nick Kew authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@691418 13f79535-47bb-0310-9956-ffa450edef68
-
- Aug 30, 2008
-
-
Graham Leggett authored
faked directly after login. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@690506 13f79535-47bb-0310-9956-ffa450edef68
-
Graham Leggett authored
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@690505 13f79535-47bb-0310-9956-ffa450edef68
-
Graham Leggett authored
within the output headers and error output headers, so that the session is maintained across redirects. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@690501 13f79535-47bb-0310-9956-ffa450edef68
-
Graham Leggett authored
after a form login. Fixes a missing REMOTE_USER variable directly following a login. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@690493 13f79535-47bb-0310-9956-ffa450edef68
-