Re: helloworld module won't load
On Tue, Mar 31, 2009 at 07:44, Richard Langly richard.ringo.lan...@gmail.com wrote: I'm running gentoo and trying to see my helloworld module which I got from the apache modules book. So I try to hit http://10.0.2.20/helloworld, but nothing happens exept that I get a 'file does not exist' in the apache errors.log. When I run apache2 -M, I don't see my module listed anywhere's. My module compiled and installed fine in /usr/lib64/apache2/modules when I did a 'apxs -cia mod_helloworld.c' Here's the file located in /etc/apache2/modules.d/ --- LoadModule helloworld_module modules/mod_helloworld.so Location /helloworld SetHandler helloworld /Location --- I've also tried many other combinations of -D HELLO to the APACHE_OPTS line in /etc/conf.d/apache2 (just like the other gentoo module *.conf files, and restarted the server, but nothing has worked. I've done everything the book said, and all seems fine, except I see nowhere's that my module has loaded. I have no experience on how apache is configured on gentoo, but here is what you could try: Check that the conf files under /etc/apache2/modules.d/ are loaded into the server. Are there other files in that directory? If yes, are the modules they refer to loaded? If there are files, but the corresponding modules are not loaded, write something like Include /etc/apache2/modules.d/* in the main apache config file. If there are other files and the modules are loaded, just your module is not, then there's a problem with your LoadModule configuration directive. Paths like modules/mod_helloworld.so (that is without a forward slash at the beginning) are relative to the ServerRoot. Check the ServerRoot directive in your apache main conf file. Check how the other modules specified their paths. In order to avoid any ambiguity, put the absolute path, i.e. something like /usr/lib/apache2/modules/mod_helloworld.so (a path that starts with a forward slash). On debian apache's main conf file (the file from which all the other are included) is /etc/apache2/apache2.conf. I don't know which is the main conf file on gentoo. It should be either /etc/apache2/apache2.conf or /etc/apache2/httpd.conf but it depends on how the apache compilation was configured. Hope this helps, S -- A: Because it reverses the logical flow of conversation. Q: Why is top-posting frowned upon? A: Top-posting. Q: What is the most annoying thing in e-mail?
Re: what is in modules vs what is in the core
Maybe a more layered approach would be something to consider for 3.0? Seems to me that the layers and groups of modules keeps expanding and expanding. 2.0 - 2.2 had the whole auth move over so maybe it's time to rethink the current module system for 3.0? ~Jorge On Tue, Mar 31, 2009 at 4:25 AM, M. Brian Akins br...@akins.org wrote: On Mar 30, 2009, at 7:37 PM, Paul Querna wrote: mod_watchdog is the latest offender in a series of modules that expose additional functions to the API. (mod_proxy and mod_cache do too!) What happened to all functions that are not inside server/* must be either dynamic optional functions or hooks? Some modules (mostly 3rd party??) allow it either way - optional function or just linkage. I'm personally a fan of hooks and providers. (With providers, I usually just do the lookup once in, say, post-config, and cache the results in the subscribing module - this saves some hash lookups on potentially every single request.) As I hack on some lua stuff, it's useful to have the symbols for functions. That may just be because I'm lazy, because I could do optional function lookups in library opens, I suppose. OT, but I like my Lua glue in a lua module and just use require 'apache2.memcache' (or whatever) to do the linking. This works really well with per thread lua states that are all loaded at startup... (hint, hint) --Brian
Re: what is in modules vs what is in the core
On Tue, Mar 31, 2009 at 4:25 AM, M. Brian Akins br...@akins.org wrote: As I hack on some lua stuff, it's useful to have the symbols for functions. That may just be because I'm lazy, because I could do optional function lookups in library opens, I suppose. OT, but I like my Lua glue in a lua module and just use require 'apache2.memcache' (or whatever) to do the linking. This works really well with per thread lua states that are all loaded at startup... (hint, hint) OT, but will you contribute that to mod_lua ? :) -- Bertrand Mansion Mamasam
Re: what is in modules vs what is in the core
-Ursprüngliche Nachricht- Von: Paul Querna Gesendet: Dienstag, 31. März 2009 01:37 An: dev@httpd.apache.org Betreff: what is in modules vs what is in the core mod_watchdog is the latest offender in a series of modules that expose additional functions to the API. (mod_proxy and mod_cache do too!) Which functions do you have in mind regarding mod_proxy / mod_cache? What happened to all functions that are not inside server/* must be either dynamic optional functions or hooks? I wasn't aware of this rule but it make much sense to me. Doesn't anyone remember the load order pain of apache 1.3? Are we just getting lazy, or does it not matter to anyone now days? I guess we are just getting lazy here and must pay more attention to these points. Regards Rüdiger
Re: what is in modules vs what is in the core
Paul Querna wrote: mod_watchdog is the latest offender in a series of modules that expose additional functions to the API. (mod_proxy and mod_cache do too!) So, you came back from different direction, cool :) If you really like to put the watchdog functionality inside the mpm (and IMO that's all this about, sorry if I got the wrong impression) then the mpm api needs to get extended and implemented by *all* mpm's. Are we just getting lazy, or does it not matter to anyone now days? IIRC you wish to use the watchdog directly from simple mpm, redesign the watchdog api so that it can be used from simple mpm at the first place, and leave to the others to cope with the rest. I would personally love to see the watchdog (actually generic event ap_listener) functionality in the mpm's core, and my first thing on the todo list is to extend the mpm with child singleton hook. Just like we have child_init we would have child_singleton_init hook but run only for a single child, and run again once for the next one when the previous dies. That way we would get rid of all the singleton and startup mutex hacks, to obtain something that is inherently known by the mpm. However this needs to be implemented inside each and every mpm if we wish to have any sort of the api. Other solutions would be to simply move the mod_watchdog to server/watchdog.c or that we all just use the simple mpm :) Regards -- ^(TM)
Re: svn commit: r760167 - in /httpd/httpd/trunk: CHANGES server/util_script.c
On 30 Mar 2009, at 23:48, Roy T. Fielding wrote: -1 (veto) Reverted. Filling obscure areas of the server with stupid hacks that modify the request structure because of something the content generator *might* do is harmful to overall stability. Up to a point, Lord Copper. There are a lot of little hacks in the request_rec to which your point could reasonably apply. Perhaps this one would look better if the field were called no_body rather than header_only. Given that startingpoint, which is better/worse: - tag a small fix onto a hack that serves the same purpose? - introduce a whole new fix that serves the same purpose? 204 and 304 are already handled elsewhere (or, if not, they should be handled elsewhere). That's precisely what PR 40953 is about. -- Nick Kew
Re: [PATCH] mod_dbd with more than one pool
Nick, any news? On Fri, Mar 13, 2009 at 3:54 PM, Nick Kew n...@webthing.com wrote: Thanks. I'll test-drive today. -- Marko Kevac
Re: Substitute bug
On Tue, Mar 31, 2009 at 7:59 AM, Nick Gearls nickgea...@gmail.com wrote: In a page containing only abcdef (inside the body), and the following directives, Substitute s~(abc.*)$~$1~q Substitute s~def~XXX~ the second directive should be ignored, because of the q flag on the first one. The result should be abcdef. However, the result is abcXXX. Did I miss something ? I believe that's only a factor when the 2nd pattern spans a boundary of original text + previous substitution, not when the 2nd pattern is contained wholly in the substitution. THe doc for the inverse/default, flatten, is a little more on target. -- Eric Covener cove...@gmail.com
Re: Substitute bug
Hi Nick, the q does not guarantee that the second one is ignored. It only can happen that it is ignored. So if you have two Substitute lines use the q flag to ensure that it is not ignored. Regards Rüdiger -Ursprüngliche Nachricht- Von: Nick Gearls [mailto:nickgea...@gmail.com] Gesendet: Dienstag, 31. März 2009 14:00 An: Development Apache Betreff: Substitute bug In a page containing only abcdef (inside the body), and the following directives, Substitute s~(abc.*)$~$1~q Substitute s~def~XXX~ the second directive should be ignored, because of the q flag on the first one. The result should be abcdef. However, the result is abcXXX. Did I miss something ? PS: I applied Rüdiger Plüm's patch: Index: modules/filters/mod_substitute.c === --- modules/filters/mod_substitute.c(revision 753197) +++ modules/filters/mod_substitute.c(working copy) @@ -199,7 +199,6 @@ tmp_b = apr_bucket_transient_create(s1, strlen(s1), f-r-connection-bucket_alloc); APR_BUCKET_INSERT_BEFORE(b, tmp_b); -tmp_b = APR_BUCKET_NEXT(b); apr_bucket_delete(b); b = tmp_b; } @@ -249,7 +248,6 @@ tmp_b = apr_bucket_transient_create(s1, strlen(s1), f-r-connection-bucket_alloc); APR_BUCKET_INSERT_BEFORE(b, tmp_b); -tmp_b = APR_BUCKET_NEXT(b); apr_bucket_delete(b); b = tmp_b; } Regards, Nick
Substitute bug
In a page containing only abcdef (inside the body), and the following directives, Substitute s~(abc.*)$~$1~q Substitute s~def~XXX~ the second directive should be ignored, because of the q flag on the first one. The result should be abcdef. However, the result is abcXXX. Did I miss something ? PS: I applied Rüdiger Plüm's patch: Index: modules/filters/mod_substitute.c === --- modules/filters/mod_substitute.c(revision 753197) +++ modules/filters/mod_substitute.c(working copy) @@ -199,7 +199,6 @@ tmp_b = apr_bucket_transient_create(s1, strlen(s1), f-r-connection-bucket_alloc); APR_BUCKET_INSERT_BEFORE(b, tmp_b); -tmp_b = APR_BUCKET_NEXT(b); apr_bucket_delete(b); b = tmp_b; } @@ -249,7 +248,6 @@ tmp_b = apr_bucket_transient_create(s1, strlen(s1), f-r-connection-bucket_alloc); APR_BUCKET_INSERT_BEFORE(b, tmp_b); -tmp_b = APR_BUCKET_NEXT(b); apr_bucket_delete(b); b = tmp_b; } Regards, Nick
Lua and memcache was Re: what is in modules vs what is in the core
OT, but will you contribute that to mod_lua ? :) Based on mod_memcache and mod_wombat . For demonstration only as this uses our hacked version, but you get the idea how simple this was. Build it in lua dir like /usr/lib/lua/5.1/apach2/memcache.so -- Brian Akins Chief Operations Engineer Turner Digital Media Technologies #include mod_memcache.h #include mod_lua_request.h typedef struct { apr_memcache_t *memcache; request_rec *request; } lua_memcache_t; static lua_memcache_t *check_memcache(lua_State * L, int index) { lua_memcache_t *lm; luaL_checkudata(L, index, Apache2.Memcache); lm = (lua_memcache_t *) lua_unboxpointer(L, index); return lm; } static int get_client(lua_State * L) { lua_memcache_t *lm; apr_memcache_t *m; request_rec *r = lr_check_request_rec(L, 1); m = ap_memcache_client(r-server); lm = apr_pcalloc(r-pool, sizeof(lua_memcache_t)); lm-memcache = m; lm-request = r; lua_boxpointer(L, lm); luaL_getmetatable(L, Apache2.Memcache); lua_setmetatable(L, -2); return 1; } /*these are fairly repetitive. can we combine this and not be slow?*/ /*only returns data for now and assumes it's a string*/ static int get_value(lua_State * L) { lua_memcache_t *lm = check_memcache(L, 1); apr_memcache_t *m = lm-memcache; request_rec *r = lm-request; const char *key = luaL_checkstring(L, 2); char *data = NULL; apr_size_t len; apr_status_t rv; apr_uint16_t flags; rv = apr_memcache_getp(m, r-pool, key, data, len, flags); if(APR_SUCCESS != rv || NULL == data) { lua_pushnil(L); } else { lua_pushstring(L, data); } return 1; } /*only returns data for now and assumes it's a string*/ static int set_value(lua_State * L) { lua_memcache_t *lm = check_memcache(L, 1); apr_memcache_t *m = lm-memcache; request_rec *r = lm-request; const char *key = luaL_checkstring(L, 2); char *data = (char *)luaL_checkstring(L, 3); apr_uint32_t timeout = luaL_checkint(L, 4); apr_size_t len; apr_status_t rv; apr_uint16_t flags = 0; /*do we have to make a copy??*/ data = apr_pstrdup(r-pool, data); len = strlen(data); rv = apr_memcache_set(m, key, data, len, timeout, flags); /*how to handle errors?*/ return 0; } static int incr_value(lua_State * L) { lua_memcache_t *lm = check_memcache(L, 1); apr_memcache_t *m = lm-memcache; request_rec *r = lm-request; const char *key = luaL_checkstring(L, 2); int n = 1; int nv = 0; int top = lua_gettop(L); apr_status_t rv; /*default to one, but if user gives another argument, use it*/ if(top 2) { n = luaL_checknumber(L, 3); } rv = apr_memcache_incr(m, key, n, nv); /*XXX: need to deal with errors. what if rv != APR_SUCCESS*/ lua_pushnumber(L, nv); return 1; } static int decr_value(lua_State * L) { lua_memcache_t *lm = check_memcache(L, 1); apr_memcache_t *m = lm-memcache; request_rec *r = lm-request; const char *key = luaL_checkstring(L, 2); int n = 1; int nv = 0; int top = lua_gettop(L); apr_status_t rv; /*default to one, but if user gives another argument, use it*/ if(top 2) { n = luaL_checknumber(L, 3); } rv = apr_memcache_decr(m, key, n, nv); /*XXX: need to deal with errors. what if rv != APR_SUCCESS*/ lua_pushnumber(L, nv); return 1; } static const struct luaL_Reg memcache_funcs[] = { {client, get_client}, {NULL, NULL} }; static const struct luaL_Reg memcache_methods[] = { {get, get_value}, {set, set_value}, {incr, incr_value}, {decr, decr_value}, {NULL, NULL} }; int luaopen_apache2_memcache(lua_State * L) { luaL_newmetatable(L, Apache2.Memcache); lua_pushvalue(L, -1); lua_setfield(L, -2, __index); luaL_register(L, NULL, memcache_methods); luaL_register(L, memcache, memcache_funcs); return 1; }
Re: Lua and memcache was Re: what is in modules vs what is in the core
Le 31 mars 09 à 15:52, Akins, Brian a écrit : OT, but will you contribute that to mod_lua ? :) Based on mod_memcache and mod_wombat . For demonstration only as this uses our hacked version, but you get the idea how simple this was. Build it in lua dir like /usr/lib/lua/5.1/apach2/memcache.so Thank you :) That's probably the way support for apr_(date, file, dbd ...) will be added to mod_lua. Reading the comments in your code, it seems that mod_lua could benefit from a better error reporting ? -- Bertrand Mansion Mamasam Tel : +33 1 48 89 88 26 http://www.mamasam.com
RE: what is in modules vs what is in the core
prueba -Original Message- From: Graham Leggett [mailto:minf...@sharp.fm] Sent: Lunes, 30 de Marzo de 2009 08:03 p.m. To: dev@httpd.apache.org Subject: Re: what is in modules vs what is in the core Paul Querna wrote: mod_watchdog is the latest offender in a series of modules that expose additional functions to the API. (mod_proxy and mod_cache do too!) What happened to all functions that are not inside server/* must be either dynamic optional functions or hooks? Doesn't anyone remember the load order pain of apache 1.3? Are we just getting lazy, or does it not matter to anyone now days? Or perhaps it's just a bug? Regards, Graham --
Re: svn commit: r760167 - in /httpd/httpd/trunk: CHANGES server/util_script.c
On Mon, 30 Mar 2009, Roy T. Fielding wrote: Filling obscure areas of the server with stupid hacks that modify the request structure because of something the content generator *might* do is harmful to overall stability. A common error in content generators is to have gzip compression enabled globally, and forget to turn it off for empty content responses (resulting in some spurious gzip garbage being passed off). 204 and 304 are already handled elsewhere (or, if not, they should be handled elsewhere). I did a quick grep through Apache's source code (for both the status code and the #define constant), and the only relevant code I could find was related to determining keep alive. Where would you recommend putting the patch? Cheers, Edward
ThreadStackSize quirk on Linux
I'm finding that when I try to reduce the stack size with ThreadStackSize on recent linux systems, where ulimit -s is NOT unlimited (but very large, 10240K) , ThreadStackSize fails to have any effect (via pmap / ps -eFw). When ulimit -s is unlimited, and the default is very large, ThreadStackSize works. Has this always been the case? If so, I'd like to document for Linux that you're best off heading straight to ulimit / limits.conf. (I looked at RHEL4 and RHEL5 with recent maintenance) -- Eric Covener cove...@gmail.com
Re: Lua and memcache was Re: what is in modules vs what is in the core
On 3/31/09 10:18 AM, Bertrand Mansion bmans...@mamasam.net wrote: Reading the comments in your code, it seems that mod_lua could benefit from a better error reporting ? Perhaps. Or I just needed to actually add error checking Right now I rely on the lua side to sanity check stuff. -- Brian Akins Chief Operations Engineer Turner Digital Media Technologies
2.2.11 mod_include
Hi, my apache 2.2.11 does not pass the current httpd test framework: t/modules/include.t (Wstat: 0 Tests: 88 Failed: 1) Failed test: 67 t/modules/info.t (Wstat: 0 Tests: 1 Failed: 1) Failed test: 1 t/modules/rewrite.t (Wstat: 0 Tests: 29 Failed: 1) Failed test: 24 At least for the first failure I have found a reason. The test file that should be parsed by the includes filter looks: !--#config timefmt=%Y -- xx!--#echo var=DATE_LOCAL --xx But in the output DATE_LOCAL is printed as Tuesday, 31-Mar-2009 17:09:45 CEST. The problem is the INCLUDES filter is inserted twice, once by mod_mime for the .shtml extension: #0 ap_add_output_filter (name=0xb747b8 includes, ctx=0x0, r=0xb76548, c=0xb646a8) at util_filter.c:422 #1 0x7fdbfb36cf11 in find_ct (r=0xb76548) at mod_mime.c:876 #2 0x00436ce3 in ap_run_type_checker (r=0xb76548) at request.c:75 and a second time by mod_include in #0 ap_add_output_filter (name=0x7fdbfe836b85 INCLUDES, ctx=0x0, r=0xb76548, c=0xb646a8) at util_filter.c:422 #1 0x7fdbfe8322da in include_fixup (r=0xb76548) at mod_include.c:3738 #2 0x00436c1a in ap_run_fixups (r=0xb76548) at request.c:73 Thus the first filter in the chain handles the timefmt correctly and sets DATE_LOCAL in r-subprocess_env. But the 2nd filter overwrites this value in add_include_vars() called here: static apr_status_t includes_filter(ap_filter_t *f, apr_bucket_brigade *b) { ... if ((parent = ap_get_module_config(r-request_config, include_module))) { /* Kludge --- for nested includes, we want to keep the subprocess * environment of the base document (for compatibility); that means * torquing our own last_modified date as well so that the * LAST_MODIFIED variable gets reset to the proper value if the * nested document resets !--#config timefmt --. */ r-subprocess_env = r-main-subprocess_env; apr_pool_join(r-main-pool, r-pool); r-finfo.mtime = r-main-finfo.mtime; } else { /* we're not a nested include, so we create an initial * environment */ ap_add_common_vars(r); ap_add_cgi_vars(r); add_include_vars(r, conf-default_time_fmt); -- here } ... Is this a known bug? Torsten -- Need professional mod_perl support? Just hire me: torsten.foert...@gmx.net
Re: 2.2.11 mod_include
Torsten Foertsch wrote: [mod_include DATE_LOCAL bug] Is this a known bug? It's probably this one: https://issues.apache.org/bugzilla/show_bug.cgi?id=39369 ciao... -- Lars Eilebrecht l...@eilebrecht.net
Apache 2.2, mod_ssl and Named Virtual Host
Hi to all, Did you know if it's possible to use Named Virtual Host with SSL (mod_ssl) ? I got various replies : This article (in French), say it's possible (may be using a self signed certificate which is evil). http://www.hsc.fr/ressources/breves/ssl_virtualhosts.html.fr But for example Thawte document say it's not possible. If you have secure virtual hosts, each will need its own IP, as SSL does not support Name-based virtual hosts. SSL cannot be configured on Name Based VirtualHosts unless these VirtualHosts use different SSL ports. I could only use one IP/Port on the machine and use it to serve about 25 Named Virtual Host ;'( It seems mod_gnutls could do the job, but if possible I'd like to stay with mod_ssl. Advices/experiences more than welcome. Thanks again.
Re: Apache 2.2, mod_ssl and Named Virtual Host
Henri Gomez wrote: Did you know if it's possible to use Named Virtual Host with SSL (mod_ssl) ? Yes, of course, usually ill advised. Explaining that combination is usually much harder than simply stating no, it's not supported. Advices/experiences more than welcome. Beyond SNI (Server Name Identification extension) and the connection upgrade facility, there are options of wildcard certificates, or for those just 'testing', using the 'wrong' certificate. Some additional notes at; http://wiki.cacert.org/wiki/VhostTaskForce
Re: Apache 2.2, mod_ssl and Named Virtual Host
Thanks. Good to know it should works from experts ;) I hope thawte could provide us such wildcards certs or required pki stuff. Many thanks again ;) Le 31 mars 09 à 22:00, William A. Rowe, Jr. wr...@rowe-clan.net a écrit : Henri Gomez wrote: Did you know if it's possible to use Named Virtual Host with SSL (mod_ssl) ? Yes, of course, usually ill advised. Explaining that combination is usually much harder than simply stating no, it's not supported. Advices/experiences more than welcome. Beyond SNI (Server Name Identification extension) and the connection upgrade facility, there are options of wildcard certificates, or for those just 'testing', using the 'wrong' certificate. Some additional notes at; http://wiki.cacert.org/wiki/VhostTaskForce
HTTP over SCTP
Hello folks, We are trying to adapt HTTP to work over SCTP streams (http://tools.ietf.org/html/draft-natarajan-http-over-sctp-01). Since this proposal was received warmly at the httpbis WG, we are contemplating on a more formal specification of HTTP over SCTP. The current HTTP over SCTP design exploits SCTP streams to avoid head-of-line blocking. SCTP also offers other services unavailable in TCP such as unordered delivery, partially reliable transmission, message based transfer, multihoming support, more secure connection establishment with a cookie mechanism and so on. We plan on adapting our design proposal to leverage some/all of these SCTP services in the future. We implemented HTTP over SCTP streams in Apache and Firefox. Experiments show significant improvements to end user performance in networks with high latency and/or lossy paths. (I can point you to relevant material if you are interested in knowing more.) We are interested in submitting our code changes to APR and httpd. We'd very much appreciate guidance from httpd and APR developers on our mods and the submission process. Thanks! Preethi
Adopting mod_remoteip to modules/metadata/ ?
I have essentially finished mod_remoteip at this point and am looking to find out the interest level of adopting this as a core module into trunk (modules/metadata/ appears to be the most appropriate target)? mod_remoteip can deal with 2 situations effortlessly, one is the absolute initialization of an X-IP style header by the load balancer, where the load balancer is ignored as the remote host. The second is using X-Forwarded-For headers to process the client of the recognized proxies as the actual remote host. Currently there is no way to use two different headers, although that might change in the future if there was sufficient interest. See http://svn.apache.org/repos/asf/httpd/sandbox/mod_remoteip/README which needs to be translated into documentation, and of course the source; http://svn.apache.org/repos/asf/httpd/sandbox/mod_remoteip/mod_remoteip.c If I get enough +1's this week I'll move the module and whip up some docs, but in the meantime, here's the experimental config I was working with; RemoteIpHeader X-IP RemoteIpProxiesHeader X-Via-IP RemoteIPTrustedProxy 192.168.0. localhost/8 RemoteIPInternalProxy 192.168.1 RemoteIPInternalProxyList conf/internal.lst RemoteIPTrustedProxyList conf/trusted-xff.lst Header echo X-Via-IP Header echo X-IP (the trusted-xff.lst is from the wikimedia XFF project).
Re: HTTP over SCTP
On Wed, Apr 1, 2009 at 1:34 AM, Preethi Natarajan preethi@gmail.com wrote: Hello folks, We are trying to adapt HTTP to work over SCTP streams (http://tools.ietf.org/html/draft-natarajan-http-over-sctp-01). Since this proposal was received warmly at the httpbis WG, we are contemplating on a more formal specification of HTTP over SCTP. The current HTTP over SCTP design exploits SCTP streams to avoid head-of-line blocking. SCTP also offers other services unavailable in TCP such as unordered delivery, partially reliable transmission, message based transfer, multihoming support, more secure connection establishment with a cookie mechanism and so on. We plan on adapting our design proposal to leverage some/all of these SCTP services in the future. We implemented HTTP over SCTP streams in Apache and Firefox. Experiments show significant improvements to end user performance in networks with high latency and/or lossy paths. (I can point you to relevant material if you are interested in knowing more.) We are interested in submitting our code changes to APR and httpd. We'd very much appreciate guidance from httpd and APR developers on our mods and the submission process. Please post the patches, preferablly against trunk: http://httpd.apache.org/dev/patches.html Once we see the patches we will be in a much better position to give feedback, Thanks, Paul