[distcc] Problem with zeroconf daemonization

Benjamin R. Haskell distcc at benizi.com
Mon Jan 18 23:04:01 MST 2010

On Mon, 18 Jan 2010, Lennart Poettering wrote:

> On Mon, 18.01.10 10:19, Benjamin R. Haskell (distcc at benizi.com) wrote:
> > How universal is /proc/self/fd/?
> It's Linux-only.

Not said the link I sent later...  Should I use it on those others 
listed?  (Solaris, Cygwin, NetBSD)  or even switch to /proc/[pid]/fd/ 
(to catch all of the above plus AIX).

> > > Might be an idea to simply copy this function:
> > > 
> > > http://git.0pointer.de/?p=libdaemon.git;a=blob;f=libdaemon/dfork.c;h=70fce862894ba16d66127d10547799aaa045fad4;hb=refs/heads/master#l485
> > 
> > Sure, modulo portability of /proc/self/fd/.  Or is the Avahi stuff the 
> > limiting factor in portability anyway?  (no slight intended -- just 
> > curious -- it would surprise me if it were)
> Avahi works on the BSDs and Solaris too. It has even been ported to 
> MacOS.
> I wouldn't bother with the other systems. Linux is the only one that 
> matters. The code I linked above is fast on Linux but still works on 
> non-Linux. That should be good enough.

Ah, yes.  I glossed over the ifdef __linux__.  Works-better on linux and 
doesn't suffer on others does sound good-enough for now.

Will send a patch for review later (I think I still have commit access 
from the last zeroconf thing I fixed, but I forget whether distcc has a 
formal 'review' process?).

The function in libdaemon accepts a list of excluded fds.  AFAICT, in 
distcc, the daemon should keep:

1. daemon lock file
2. hosts file

But, I also see a pair of fds for a pipe, and two taken up for sockets.  
I'll take a closer look later, but are those referenced some place in 
the Avahi code that'd be accessible to distcc?

-- Ben

More information about the distcc mailing list