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

Reply via email to