> > What you are suggesting will not work at all. There are apr_socket(and > > related) calls in places other than the core_*_filters. And it is not safe > > to make these calls (which will call BSD socket network io system calls) > > using descriptors from a different network interface. > > Then I would consider the filtering logic broken. If you can't replace the > underlying network types, then we need to move all of the network calls in > the core into new hooks, that can be bypassed if a different network mechanism > is required.
Not really. It just means that the network options being set on the sockets directly today should instead be set (in an abstract sense) on the top of the filter chain, which would propagate them down to the filter that is IO-specific. In reality, there are only a couple types of filters that would ever have a legitimate reason to set socket options, and they are very close to the IO-specific filter in the chain. ....Roy
