There are two ways to do it.

1)  Do exactly what I told you to do when I committed the patch
originally.  Let's take an example of SSL.  Your SSL vhost must know
which socket it is on, because it can't be on a plain HTTP socket.  So,
for that socket, you replace the accept_function, and that allows you to
use your own create_conn hook to create the connection and insert your
own filters for the bottom of the stack.  In fact, regardless of what
you are configuring, if you are creating a vhost that doesn't speak
plain HTTP, you must know which socket you are listening on, and you can
do exactly what you want.

2)  Ignore this patch, and do what you would do if it wasn't there,
which I presume is to add another filter above the CORE_IN and CORE
filters so that they are never called.  That will work just fine with
this patch in place.

Ryan

----------------------------------------------
Ryan Bloom                  [EMAIL PROTECTED]
645 Howard St.              [EMAIL PROTECTED]
San Francisco, CA 

> -----Original Message-----
> From: Bill Stoddard [mailto:[EMAIL PROTECTED]]
> Sent: Sunday, January 27, 2002 12:55 PM
> To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
> Subject: Re: cvs commit: httpd-2.0/server/mpm/worker worker.c
> 
> Ryan, you are vetoing my veto.  Consider this patch a veto of your
11/12
> patch. I am open
> to suggestions to determine a compromise.
> 
> I need to replace core_in and core_out based on configuration. How can
I
> do that with your
> patch in place?
> 
> Bill
> 
> 
> ----- Original Message -----
> From: "Ryan Bloom" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>; <[EMAIL PROTECTED]>
> Sent: Sunday, January 27, 2002 3:05 PM
> Subject: RE: cvs commit: httpd-2.0/server/mpm/worker worker.c
> 
> 
> > > stoddard    02/01/27 04:52:08
> > >
> > >   Modified:    .        CHANGES
> > >                include  http_connection.h httpd.h
> > >                modules/http http_core.c
> > >                modules/proxy proxy_ftp.c proxy_http.c
> > >                server   connection.c core.c
> > >                server/mpm/beos beos.c
> > >                server/mpm/mpmt_os2 mpmt_os2_child.c
> > >                server/mpm/netware mpm_netware.c
> > >                server/mpm/perchild perchild.c
> > >                server/mpm/prefork prefork.c
> > >                server/mpm/winnt mpm_winnt.c
> > >                server/mpm/worker worker.c
> > >   Log:
> > >   Remove the create_connection hook and put the client_socket back
> > into
> > > the
> > >   conn_rec. The create_connection_hook has a design flaw that
prevents
> > it
> > >   from making decisions based on vhost information.
> >
> > -1.  You can't back out a patch because it doesn't do something it
> > wasn't designed to do!  That hook was meant to allow different
filters
> > to be added based on the connection used, not based on the
> > configuration.  If you want to do something based on the
configuration,
> > you have to wait until the request has been read.  Removing the
socket
> > from the conn_rec has all sorts of advantages, not the least being
that
> > it keeps people from using the socket without going through filters.
> >
> > Ryan
> >
> >
> >


Reply via email to