After reading Greg's notes this morning, I re-visited by current design for the transport layer abstraction. Here is the new design that I am currently implementing.
Any module can add a record to the ap_listen_rec list, either during config parsing, or during the post_config stage. The ap_listen_rec structure will get a new field, the accept_function field. This field is a function pointer that accepts a connection. The function will take a void *, the socket from the ap_listen_rec structure, and a pool. The void * is a location for modules to return the accepted structure. The create_connection hook will be passed the void * from the previous function, and it will use the information in that structure to create the connection structure. This should be abstract enough to allow for what Bill needs, while still leaving the MPM in control of how the server passes sockets to worker threads. I'll have a patch in about an hour. BTW, this also has the advantage of allowing us to abstract out the accept logic in the Unix MPMs. I'm going to commit this when I am done, and people can comment and make changes. Once this is done, I am hoping to work on the perchild MPM and the proxy. Ryan ______________________________________________________________ Ryan Bloom [EMAIL PROTECTED] Covalent Technologies [EMAIL PROTECTED] --------------------------------------------------------------
