From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Neil Roberts Newsgroups: gmane.emacs.devel Subject: Port of Emacs client / server programs to Windows NT Date: Sat, 28 Oct 2006 10:06:05 +0100 Message-ID: <20061028090605.GA16477@janet> NNTP-Posting-Host: main.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1162026743 20223 80.91.229.2 (28 Oct 2006 09:12:23 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Sat, 28 Oct 2006 09:12:23 +0000 (UTC) Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Sat Oct 28 11:12:22 2006 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by ciao.gmane.org with esmtp (Exim 4.43) id 1GdkEl-0004rp-5I for ged-emacs-devel@m.gmane.org; Sat, 28 Oct 2006 11:12:19 +0200 Original-Received: from localhost ([127.0.0.1] helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1GdkEj-0005gn-7P for ged-emacs-devel@m.gmane.org; Sat, 28 Oct 2006 05:12:17 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Gdk8r-00047g-Dm for emacs-devel@gnu.org; Sat, 28 Oct 2006 05:06:13 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Gdk8o-00046h-JS for emacs-devel@gnu.org; Sat, 28 Oct 2006 05:06:12 -0400 Original-Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Gdk8n-00046V-HF for emacs-devel@gnu.org; Sat, 28 Oct 2006 05:06:09 -0400 Original-Received: from [82.153.254.71] (helo=mra03.ch.as12513.net) by monty-python.gnu.org with esmtp (Exim 4.52) id 1Gdk8l-0008Qz-EE for emacs-devel@gnu.org; Sat, 28 Oct 2006 05:06:08 -0400 Original-Received: from localhost (localhost [127.0.0.1]) by mra03.ch.as12513.net (Postfix) with ESMTP id D9DDED464B for ; Sat, 28 Oct 2006 10:06:05 +0100 (BST) Original-Received: from mra03.ch.as12513.net ([127.0.0.1]) by localhost (mra03.ch.as12513.net [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 17824-01-23 for ; Sat, 28 Oct 2006 10:06:05 +0100 (BST) Original-Received: from localhost (unknown [82.153.170.229]) by mra03.ch.as12513.net (Postfix) with ESMTP id 2A99CD4602 for ; Sat, 28 Oct 2006 10:06:05 +0100 (BST) Original-To: emacs-devel@gnu.org Content-Disposition: inline User-Agent: Mutt/1.5.11 X-Virus-Scanned: by Eclipse VIRUSshield at eclipse.net.uk 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:61270 Archived-At: Hi, I've made a native port of the emacsclient and emacsserver programs for Windows that uses named pipes instead of sockets. The programs are drop-in replacements and should work if you just copy the exe files into the bin/ folder of an Emacs 21 install. The advantages of using named pipes instead of TCP are: - The SID of the current user forms part of the name of the pipe so if you use your Windows in a multi-user environment then running multiple instances of the server won't collide with each other. The client will always connect to the server that was started by the same user. - The access control list is set for the pipe so that only the current user can connect to it. Thus there is no security risk that another user will mess with your Emacs session, or even worse a remote user. There doesn't need to be any complicated authentication mechanisms because the authentication built in to Windows is used. - It won't pop up a warning whining that the emacsserver is opening a port on systems that are running the Windows firewall. - It doesn't require Winsock. - It is much more like the original Unix implementation of the server. Unfortunatly when I started writing it, I didn't realise that the latest CVS no longer runs emacsserver as a separate process so it won't work after Emacs 22 is released. Would it be worth making the code in server.el resort back to running a separate process if the :local sockets are not supported? Or maybe Emacs could be made to use named pipes instead of sockets if a :local socket is created on Windows as they seem to be the Windows equivalent of Unix domain sockets? If anyone is interested, the programs can be downloaded from here: http://www.busydoingnothing.co.uk/weserver-0.1.zip - Neil