I finally had time to review this patch, and I have some comments.
> Log:
> This patch restores most of Ryan's patch (11/12/2001) to remove the
> client_socket from the conn_rec. Diffs from Ryan's patch include:
>
> - rename the create_connection hook to install_transport_filters
> - move the point of invocation of the hook till after the call to
> after ap_update_vhost_given_ip to enable the hook to use vhost
> config info in its decision making.
>
<snipped for brevity>
> -AP_CORE_DECLARE(void) ap_process_connection(conn_rec *c)
> +AP_CORE_DECLARE(void) ap_process_connection(conn_rec *c,
apr_socket_t *csd)
I was very careful to keep the csd a void * instead of an apr_socket_t
*, because you have no way of knowing that the module that did the
accept will be giving us a socket, or at least not an apr_socket_t.
Right now, Aaron and I are hacking Apache to allow it to accept
connections over a Unix Domain Socket. This patch will break that
abstraction completely.
> {
> ap_update_vhost_given_ip(c);
>
> + ap_run_install_transport_filters(c, csd);
> +
> ap_run_pre_connection(c);
Why did we create a new hook to put here? This is the last place a new
hook is needed, in five lines of code in this function, we call three
hooks. Why not just add an argument to the pre_connection hook that
gives people access to the socket?
Unless there are any complaints, I'll be making both of those changes
today or tomorrow.
Ryan