From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Ulrich Mueller Newsgroups: gmane.emacs.devel Subject: Re: emacs client/server mode hardcodes /tmp path Date: Wed, 29 Oct 2008 08:51:57 +0100 Message-ID: <18696.5661.523071.167994@a1ihome1.kph.uni-mainz.de> References: <18695.5574.107271.711561@a1i15.kph.uni-mainz.de> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1225266744 13670 80.91.229.12 (29 Oct 2008 07:52:24 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Wed, 29 Oct 2008 07:52:24 +0000 (UTC) Cc: emacs@gentoo.org, Ulrich Mueller , Diego Petteno , emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Wed Oct 29 08:53:25 2008 connect(): Connection refused Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1Kv5rm-0004fO-2w for ged-emacs-devel@m.gmane.org; Wed, 29 Oct 2008 08:53:22 +0100 Original-Received: from localhost ([127.0.0.1]:37796 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Kv5qf-0005Uk-U7 for ged-emacs-devel@m.gmane.org; Wed, 29 Oct 2008 03:52:13 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Kv5qY-0005T9-SN for emacs-devel@gnu.org; Wed, 29 Oct 2008 03:52:06 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Kv5qW-0005Sf-RT for emacs-devel@gnu.org; Wed, 29 Oct 2008 03:52:06 -0400 Original-Received: from [199.232.76.173] (port=59329 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Kv5qW-0005Sa-Nt for emacs-devel@gnu.org; Wed, 29 Oct 2008 03:52:04 -0400 Original-Received: from a1iwww1.kph.uni-mainz.de ([134.93.134.1]:40325) by monty-python.gnu.org with esmtps (TLS-1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1Kv5qW-0001w6-5Q for emacs-devel@gnu.org; Wed, 29 Oct 2008 03:52:04 -0400 Original-Received: from a1ihome1.kph.uni-mainz.de (a1ihome1.kph.uni-mainz.de [134.93.134.75]) by a1iwww1.kph.uni-mainz.de (8.14.0/8.13.4) with ESMTP id m9T7pwxG009926; Wed, 29 Oct 2008 08:51:58 +0100 Original-Received: from a1ihome1.kph.uni-mainz.de (localhost [127.0.0.1]) by a1ihome1.kph.uni-mainz.de (8.14.0/8.14.1) with ESMTP id m9T7pwgj008059; Wed, 29 Oct 2008 08:51:58 +0100 Original-Received: (from ulm@localhost) by a1ihome1.kph.uni-mainz.de (8.14.0/8.14.0/Submit) id m9T7pvgT008054; Wed, 29 Oct 2008 08:51:57 +0100 In-Reply-To: X-Mailer: VM 8.0.2-487 under Emacs 22.2.1 (i686-pc-linux-gnu) X-detected-operating-system: by monty-python.gnu.org: GNU/Linux 2.6 (newer, 1) X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:105133 Archived-At: >>>>> On Tue, 28 Oct 2008, Stefan Monnier wrote: > Yes, I think we should obey TMPDIR (of course consistently between > emacsclient.c and server.el). A patch is included below. Ulrich 2008-10-29 Ulrich Mueller * emacsclient.c (set_local_socket): Use TMPDIR (default /tmp) instead of hardcoded /tmp. 2008-10-29 Ulrich Mueller * server.el (server-socket-dir): Use TMPDIR (default /tmp) instead of hardcoded /tmp. --- lib-src/emacsclient.c 13 Oct 2008 02:32:51 -0000 1.133 +++ lib-src/emacsclient.c 29 Oct 2008 07:42:54 -0000 @@ -1128,6 +1128,7 @@ int default_sock = !socket_name; int saved_errno = 0; char *server_name = "server"; + char *tmpdir; if (socket_name && !index (socket_name, '/') && !index (socket_name, '\\')) { /* socket_name is a file name component. */ @@ -1138,9 +1139,12 @@ if (default_sock) { - socket_name = alloca (100 + strlen (server_name)); - sprintf (socket_name, "/tmp/emacs%d/%s", - (int) geteuid (), server_name); + tmpdir = egetenv ("TMPDIR"); + if (!tmpdir) + tmpdir = "/tmp"; + socket_name = alloca (96 + strlen (tmpdir) + strlen (server_name)); + sprintf (socket_name, "%s/emacs%d/%s", + tmpdir, (int) geteuid (), server_name); } if (strlen (socket_name) < sizeof (server.sun_path)) @@ -1174,9 +1178,10 @@ if (pw && (pw->pw_uid != geteuid ())) { /* We're running under su, apparently. */ - socket_name = alloca (100 + strlen (server_name)); - sprintf (socket_name, "/tmp/emacs%d/%s", - (int) pw->pw_uid, server_name); + socket_name = alloca (96 + strlen (tmpdir) + + strlen (server_name)); + sprintf (socket_name, "%s/emacs%d/%s", + tmpdir, (int) pw->pw_uid, server_name); if (strlen (socket_name) < sizeof (server.sun_path)) strcpy (server.sun_path, socket_name); --- lisp/server.el 24 Oct 2008 09:39:32 -0000 1.169 +++ lisp/server.el 29 Oct 2008 07:42:56 -0000 @@ -202,7 +202,8 @@ (defvar server-name "server") -(defvar server-socket-dir (format "/tmp/emacs%d" (user-uid)) +(defvar server-socket-dir + (format "%s/emacs%d" (or (getenv "TMPDIR") "/tmp") (user-uid)) "The directory in which to place the server socket.") (defun server-clients-with (property value)