diff lib-src/gnuserv.c @ 259:11cf20601dec r20-5b28

Import from CVS: tag r20-5b28
author cvs
date Mon, 13 Aug 2007 10:23:02 +0200
parents 41f2f0e326e9
children 972bbb6d6ca2
line wrap: on
line diff
--- a/lib-src/gnuserv.c	Mon Aug 13 10:22:10 2007 +0200
+++ b/lib-src/gnuserv.c	Mon Aug 13 10:23:02 2007 +0200
@@ -139,7 +139,7 @@
   key_t key;			/* messge key */
   char buf[GSERV_BUFSZ];	/* pathname for key */
 
-  sprintf (buf,"/tmp/gsrv%d",(int)geteuid ());
+  sprintf (buf,"%s/gsrv%d",tmpdir,(int)geteuid ());
   creat (buf,0600);
   key = ftok (buf,1);
 
@@ -743,7 +743,7 @@
 
   /* Set up address structure for the listen socket. */
 #ifdef HIDE_UNIX_SOCKET
-  sprintf(server.sun_path,"/tmp/gsrvdir%d",(int)geteuid());
+  sprintf(server.sun_path,"%s/gsrvdir%d",tmpdir,(int)geteuid());
   if (mkdir(server.sun_path, 0700) < 0)
     {
       /* assume it already exists, and try to set perms */
@@ -758,7 +758,7 @@
   strcat(server.sun_path,"/gsrv");
   unlink(server.sun_path);	/* remove old file if it exists */
 #else /* HIDE_UNIX_SOCKET */
-  sprintf(server.sun_path,"/tmp/gsrv%d",(int)geteuid());
+  sprintf(server.sun_path,"%s/gsrv%d",tmpdir,(int)geteuid());
   unlink(server.sun_path);	/* remove old file if it exists */
 #endif /* HIDE_UNIX_SOCKET */
 
@@ -849,6 +849,11 @@
   for(chan=3; chan < _NFILE; close(chan++)) /* close unwanted channels */
     ;
 
+#ifdef USE_TMPDIR
+  tmpdir = getenv("TMPDIR");
+#endif
+  if (!tmpdir)
+    tmpdir = "/tmp";
 #ifdef USE_LITOUT
   {
     /* this is to allow ^D to pass to emacs */