Re: helloworld module won't load

2009-03-31 Thread Sorin Manolache
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

2009-03-31 Thread Jorge Schrauwen
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

2009-03-31 Thread Bertrand Mansion
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

2009-03-31 Thread Plüm, Rüdiger, VF-Group
 

 -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

2009-03-31 Thread Mladen Turk

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

2009-03-31 Thread Nick Kew


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

2009-03-31 Thread Kevac Marko
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

2009-03-31 Thread Eric Covener
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

2009-03-31 Thread Plüm, Rüdiger, VF-Group
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

2009-03-31 Thread Nick Gearls
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

2009-03-31 Thread Akins, Brian

 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

2009-03-31 Thread Bertrand Mansion


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

2009-03-31 Thread David Martínez Albiter
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

2009-03-31 Thread Edward Z. Yang

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

2009-03-31 Thread Eric Covener
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

2009-03-31 Thread Akins, Brian
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

2009-03-31 Thread Torsten Foertsch
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

2009-03-31 Thread Lars Eilebrecht
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

2009-03-31 Thread Henri Gomez
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

2009-03-31 Thread William A. Rowe, Jr.

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

2009-03-31 Thread Henri Gomez

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

2009-03-31 Thread Preethi Natarajan
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/ ?

2009-03-31 Thread William A. Rowe, Jr.

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

2009-03-31 Thread Paul Querna
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