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