In a message dated 01-03-31 09:14:12 EST, Graham writes...

> Hi all,
>  
>  I have pretty much finished Keepalive support for mod_proxy v2.0. A
>  change needs to be made to the conn_rec structure to allow the keepalive
>  to store connections across requests.
>  
>  The patch to httpd-2.0 is attached.
>  
>  I will start committing the mod-proxy patch once this patch is sorted
>  out.
>  
>  Regards,
>  Graham
>  -- 
>  -----------------------------------------
>  [EMAIL PROTECTED]     "There's a moon
>                   over Bourbon Street
>                       tonight..."
>  --------------------
>  diff -u3 -r --exclude=CVS ../../pristine/httpd-2.0/include/httpd.h 
httpd-2.0/
> include/httpd.h
>  --- ../../pristine/httpd-2.0/include/httpd.h Mon Mar 26 00:08:43 2001
>  +++ httpd-2.0/include/httpd.h    Thu Mar 29 15:29:20 2001
>  @@ -884,6 +884,10 @@
>       /** The length of the current request body
>        *  @defvar long remain */
>       long remain;
>  +
>  +    /** Connection to a downstream server/proxy */
>  +    conn_rec *proxy;
>  +
>   };
>   
>   /* Per-vhost config... */

It's hard to say whether this should be committed or not without
seeing how it is used. Is this like 'prev' or 'next' request rec in a
request rec?... or is it just used to 'copy' values back into the real
req->conn_rec once a handler kicks in on a keepalive?

In other words... are you now referencing connection related items
inside a mod_proxy keep-alive like this...

req->conn_rec->proxy
Instead of just this?...
req->conn_rec

Or are you doing this once a handler kicks in and 'restoring'
the original conn_rec or something?...

memcpy( req->conn_rec, req->conn_rec->proxy, sizeof( struct conn-rec ) );

Is it a 'chain' for each and every keepalive so that by the time you
reach the 7th keep alive you are referencing conn_rec values like
this?...

req->conn_rec->proxy->proxy->proxy->proxy->proxy->proxy->some_value

I am not really sure why you need to 'store connections across requests'?
If it's really doing 'Keep-Alive' then what is changing?
bytes_sent and per-request stuff needs to get 'reset' across keep-alives
but the basic connection stuff needs to stay the same, anyway, in
the original conn_rec or it's not really 'keeping alive', yes?

My concern would really be this...

If mod_proxy is not updating req->conn_rec->proxy with connection
related info then what happens to other modules in the chain that
still expect critical things to be updated in the original req->conn_rec
itself? Is req->conn_rec->proxy just a 'read only' placeholder?

Yours...
Kevin Kiley




Reply via email to