Well. This our Keep-Alive patch for now.
Needs testing and suggestions, but it works for now.
Problem with testing keepalive is that then requests come in from
browsers (firefox, ie6 ) then every child serves correct vhost.
Keepalive is set to on, server-status also reports keepalive
connections. Everything is nice even without keepalive patch. This is
probably because browsers don't do keepalive connections between
different vhosts anyway.
Then by making a custom socket application we made 2 requests in one
connection and yes one child wants to serve other vhost also. So this
patch fixes it.
We are returning 408 HTTP_REQUEST_TIMEOUT if anybody tries such a
request. Don't know if it's right thing to do?
Or we could also just close the connection. I don't know how browsers
react, since haven't found any "smart" ones.
give us your opinions.
Janno
--- httpd-2.2.3-clean/server/mpm/experimental/peruser/peruser.c 2007-08-30
12:39:40.000000000 +0300
+++ httpd-2.2.3/server/mpm/experimental/peruser/peruser.c 2007-08-30
14:18:08.670725143 +0300
@@ -2741,6 +2741,11 @@
case CHILD_TYPE_PROCESSOR:
case CHILD_TYPE_WORKER:
{
+ if (sconf->senv != CHILD_INFO_TABLE[my_child_num].senv) {
+ _DBG("request for %s is not for us", r->hostname);
+ return HTTP_REQUEST_TIME_OUT;
+ }
+
_DBG("%s %d",
child_type_string(CHILD_INFO_TABLE[my_child_num].type), my_child_num);
_DBG("request for %s / (server %s) seems to be for us",
r->hostname, r->server->server_hostname);
_______________________________________________
Peruser mailing list
[email protected]
http://www.telana.com/mailman/listinfo/peruser