Function getenv() does not work properly in certain areas of distcc's code

Tom Holly <[email protected]>
Newsgroups gmane.comp.compilers.distcc
Message-ID <[email protected]>
I am running distcc version 3.1 on a Sun, using all Suns as servers.
$TMPDIR: "/tmp/distcc"

I have noticed that the getenv() function for returning environmental values
is not entirely working in the distcc code.
When running from a remote machine, the getenv function fails to get the
variable's value.
For example, in tempfile.c, the $TMPDIR environmental variable is needed so
that distcc knows where to store temporary files.
If the value cannot be accessed, the default is "/tmp". I end up with a
bunch of temporary files in my $TMPDIR directory and some in /tmp.
Here's what ends up where:

/tmp/distcc:
distcc_ea1df635.stderr             distcc_server_stderr_842af640.txt
lint_61caf63d.txt
distcc_server_stderr_6248f63d.txt  distcc_server_stderr_d2c7f642.txt
lint_828af63e.txt

/tmp:
distcc-pump.Ocai9C/                distccd_GqairN/
sh148170                                tmpzSKv_T.include_server-14837-1/


I left a debug line in tempfile.c to show when $TMPDIR was used and when it
wasn't:
----------------------------------------------------------------------------------------
tempfile.c:
----------------------------------------------------------------------------------------
  d = getenv("TMPDIR");

    if (!d || d[0] == '\0') {
        *p_ret = "/tmp";
        rs_log_info("Setting temporary dir. to /tmp");
        return 0;
    } else {
        *p_ret = d;
        rs_log_info("Setting temporary dir. to TMPDIR: %s", d);
        return 0;
    }
----------------------------------------------------------------------------------------
cod is the client machine. apple, cud, kiwi, mango, and pear are all servers
listed in $DISTCC_POTENTIAL_HOSTS

distcc.log:distcc[14900] (dcc_get_tmp_top): Setting temporary dir. to
TMPDIR: /tmp/distcc
cod.log:distccd[14803] (dcc_get_tmp_top): Setting temporary dir. to TMPDIR:
/tmp/distcc
apple.log:distccd[11980] (dcc_get_tmp_top): Setting temporary dir. to /tmp
cud.log:distccd[20104] (dcc_get_tmp_top): Setting temporary dir. to /tmp
kiwi.log:distccd[12287] (dcc_get_tmp_top): Setting temporary dir. to /tmp
mango.log:distccd[20360] (dcc_get_tmp_top): Setting temporary dir. to /tmp
pear.log:distccd[26273] (dcc_get_tmp_top): Setting temporary dir. to /tmp

I want to be able to put ALL temporary files, from distcc and distccd, in
$TMPDIR. However this getenv() issue remains to be a problem.
Help is much appreciated. Thanks!

__ 
distcc mailing list            http://distcc.samba.org/
To unsubscribe or change options: 
https://lists.samba.org/mailman/listinfo/distcc
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.