--------------------- PatchSet 5205 Date: 2007/08/09 05:40:25 Author: amosjeffries Branch: docs Tag: (none) Log: Migrate 04_ExternalPrograms.dox to final naming type. Members: doc/Programming-Guide/04_ExternalPrograms.dox:1.1.2.4->1.1.2.5(DEAD) doc/Programming-Guide/ExternalPrograms.dox:1.1->1.1.2.1 --- squid3/doc/Programming-Guide/04_ExternalPrograms.dox Fri Aug 10 00:19:02 2007 +++ /dev/null Fri Aug 10 00:19:02 2007 @@ -1,42 +0,0 @@ -/** -\defgroup ExternalPrograms External Programs - -\section dnsserver dnsserver -\par - Because the standard getaddrinfo() and getnameinfo() library calls - block, Squid must use external processes to actually make - these calls. Typically there will be ten dnsserver - processes spawned from Squid. Communication occurs via - TCP sockets bound to the loopback interface. The functions - in dns.cc are primarily concerned with starting and - stopping the dnsservers. Reading and writing to and from - the dnsservers occurs in the \link IPCache IP\endlink and - \link FQDNCache FQDN\endlink cache modules. - -\section pinger pinger -\par - Although it would be possible for Squid to send and receive - ICMP messages directly, we use an external process for - two important reasons: - \li Because squid handles many filedescriptors simultaneously, - we get much more accurate RTT measurements when ICMP is - handled by a separate process. - \li Superuser privileges are required to send and receive - ICMP. Rather than require Squid to be started as root, - we prefer to have the smaller and simpler pinger - program installed with setuid permissions. - -\section redirector redirector -\par - A redirector process reads URLs on stdin and writes (possibly - changed) URLs on stdout. It is implemented as an external - process to maximize flexibility. - -\section unlinkd unlinkd -\par - The unlink(2) system call can cause a process to block - for a significant amount of time. Therefore we do not want - to make unlink() calls from Squid. Instead we pass them - to this external process. - - */ --- /dev/null Fri Aug 10 00:19:02 2007 +++ squid3/doc/Programming-Guide/ExternalPrograms.dox Fri Aug 10 00:19:02 2007 @@ -0,0 +1,42 @@ +/** +\defgroup ExternalPrograms External Programs + +\section dnsserver dnsserver +\par + Because the standard getaddrinfo() and getnameinfo() library calls + block, Squid must use external processes to actually make + these calls. Typically there will be ten dnsserver + processes spawned from Squid. Communication occurs via + TCP sockets bound to the loopback interface. The functions + in dns.cc are primarily concerned with starting and + stopping the dnsservers. Reading and writing to and from + the dnsservers occurs in the \link IPCache IP\endlink and + \link FQDNCache FQDN\endlink cache modules. + +\section pinger pinger +\par + Although it would be possible for Squid to send and receive + ICMP messages directly, we use an external process for + two important reasons: + \li Because squid handles many filedescriptors simultaneously, + we get much more accurate RTT measurements when ICMP is + handled by a separate process. + \li Superuser privileges are required to send and receive + ICMP. Rather than require Squid to be started as root, + we prefer to have the smaller and simpler pinger + program installed with setuid permissions. + +\section redirector redirector +\par + A redirector process reads URLs on stdin and writes (possibly + changed) URLs on stdout. It is implemented as an external + process to maximize flexibility. + +\section unlinkd unlinkd +\par + The unlink(2) system call can cause a process to block + for a significant amount of time. Therefore we do not want + to make unlink() calls from Squid. Instead we pass them + to this external process. + + */