[distcc] Is the client/server connection persistent with distcc?

Kevin distcc at gnosys.biz
Wed Aug 25 16:02:32 GMT 2004


Hi All-

Not sure if this was received by the list.  Can anyone answer this
question?  If not, should I write the author?

On Fri, 2004-08-20 at 22:11, Kevin wrote:
> Hi All-
> 
> I operate a fast, dual-CPU server at work that I'd like to make a
> volunteer for some of my other machines at home, but at home I'm behind
> a NAT firewall that blocks all incoming connections (by design).
> 
> Thinking that the distcc protocol is client-server in nature with the
> volunteer being the server and receiving connections at port 3632
> (presumably not initiating any) from the client originating at some
> random high-numbered port (where the build job originates), I was
> thinking that this should work if I want to farm compile jobs initiated
> at home out to the big server at work.  The client at home behind the
> NAT firewall initiates the connection outbound through the home firewall
> to the distcc port on the server (with firewalling at the server at work
> configured to allow the connection from the NAT address).  If the
> connection between the client and the server is persistent throughout
> the time that the server/volunteer is compiling the job that's been
> given to it by the client, then this scheme should work, right?  I mean,
> I do the same thing with ssh connecting to sshd all the time through
> this NAT firewall.
> 
> Anyway, it's not working for me whereas it is working between machines
> that are all behind the NAT firewall.  Is my thinking wrong here?  Is
> anyone else doing something like this?
> 
> I read the distcc faq and whitepaper and searched the archives for NAT
> and googled around but didn't see anything to help with this.
> 
> Is my understanding (gained from the whitepaper) correct in thinking
> that the machine where the make job is initiated is the client and the
> client preprocesses the .c file, initiates the connection to the
> volunteer/server, says, "hey, compile this file for me", keeps the
> connection open while the volunteer does the compile job, and then using
> the same connection, the server says, "hey, here's the object file"
> after which the client tears down the connection.  Is that correct?  Is
> so, shouldn't this scheme work?
> 
> Any thoughts most welcome.
> 
> -Kevin





More information about the distcc mailing list