From toy.raymond at gmail.com Tue Nov 16 18:40:10 2010 From: toy.raymond at gmail.com (Raymond Toy) Date: Tue, 16 Nov 2010 13:40:10 -0500 Subject: [clx-devel] get-best-authorization and localhost/unix:0 Message-ID: <4CE2D00A.8010309@gmail.com> Ran into the following issue with the current clx (running on cmucl). On my linux system, the xauth file (created by the system, not me) has only one entry for localhost/unix:0. When I try to open-clx-display, it fails because get-best-authorization can't find the authorization data. The problem is that when the protocol is :local, get-best-auth looks up the hostname and sets host-address to that. The hostname isn't "localhost", so nothing matches. Here is a proposed patch. The patch works for me, but I'm not sure if it is the right thing to do. Basically, in addition to matching host-address to the xauth address, if the protocol is :local, allow a match with "localhost". Ray Index: display.lisp =================================================================== RCS file: /project/cmucl/cvsroot/src/clx/display.lisp,v retrieving revision 1.15 diff -u -r1.15 display.lisp --- display.lisp 13 Jul 2009 13:54:35 -0000 1.15 +++ display.lisp 16 Nov 2010 18:38:16 -0000 @@ -117,7 +117,9 @@ (read-xauth-entry stream) (unless family (return)) (when (and (eql family protocol) - (equal host-address address) + (or (equal host-address address) + (and (eql protocol :local) + (equal "localhost" address))) (= number display) (let ((pos1 (position name *known-authorizations* :test #'string=)))