On Wed, 5 Feb 2003, Jeremy Rumpf wrote: > > > Hmmm... what does Sendmail do? It's got lots of children, but still > > manages to refuse connections when it gets busy (RefuseLA)... I kinda > > like that behavior. I definitely like it better than keeping more and > > more sockets open. > > > > -- > > Stephen L. Ulmer [EMAIL PROTECTED] > > Senior Systems Programmer http://www.ulmer.org/ > > Northeast Regional Data Center VOX: (352) 392-2061 > > University of Florida FAX: (352) 392-9440 > > It may not prefork it's processes. The master process could accept the > connection, fork, closes the socket (the child is now servicing it), and go > back into a listen state. Therefore the master process can choose to reject > connections without any coordination from the children. Children then have a > service life of one connection and that's it. > > They could also use a technique where a master process can pass file (socket) > descriptors down to a child via a unix domain socket using sendmsg() or > recvmsg(). In this case the master accepts the connection, passes the > descriptor to a child via sendmsg(), closes the socket (the child should now > be servicing it), and goes back to listening. >
This is not very portable. ;( > Either way, in the above, the master process is the only process that actually > accepts the connections. > > I'm not sure how sendmail actually does it though, the above is purely > speculation... > > Jeremy > -- Igor