Can't open display with PuTTY and xinit 1.3.4-1

Jon TURNEY jon.turney@dronecode.org.uk
Tue Feb 24 21:00:00 GMT 2015


On 24/02/2015 16:55, Fj wrote:
> On 2015-01-05 05:31, Laurens Blankers wrote:
>> When using PuTTY with X11 forwarding enabled X clients are no longer
> able to connect to the X server running locally. When reverting back to
> 1.3.2-1 the problem goes away.
>
>> This may be related to the -nolisten tcp which is now the default[1]. If
> this is indeed the case it would be create of adding the '-listen' flag
> to startxwin could be added to the FAQ. Or another, more secure,
> solution would also be appreciated.
>
> Hi, I updated Cygwin today and hit the same problem, except even after
> I added "-listen tcp" xterm (and gvim) still refused to work
> complaining about "No protocol specified" (before was: "Can't open
> display").

The "No protocol specified" message is a bit obtuse.

It comes back from the server when an attempt is made to open a 
connection, and really means something like "Authorization required, but 
no authorization protocol specified" - the server was started with an 
authorization file using the -auth option, but the client didn't offer 
any authorization data.

> Putty logs say "Opening X11 forward connection succeeded" (before
> "-listen tcp" it was: "Forwarded X11 connection terminated due to
> local error"), which seems to indicate that the problem is with the X
> server (and the way xterm/gvim communicate with it).

I'm afraid it seems '-listen tcp' is not enough for PuTTY to 
successfully connect.

If the server was started with -auth (which startxwin does since 
xinit-1.3.4-1), then PuTTY will need authorization data to successfully 
connect.

Whilst you can do this by setting the "X authority file for local 
display" in PuTTY's configuration to the Windows path equivalent to 
~/.serverauth.NNNN, this isn't much of a solution as this filename 
changes everytime the server is started.

Perhaps xinit needs an option to avoid using -auth? One can demonstrate 
that works by starting the server directly, e.g. using 'XWin 
-multiwindow -listen tcp' rather than 'startxwin'.

Definitely some sort of change is needed to make this work better.

> Ssh-ing to the server from Cygwin terminal works and I can even launch
> gvim from the Putty's tty by specifying the same DISPLAY the Cygwin
> connection provides.
>
> After reverting to some early 2014 version of xinit and xorg (thank
> god for Cygwin Time Machine) everything resumed working properly.
>
> (on a side note, I tried to figure out what are the possible "-listen"
> options by looking at the xserver code, there are three, "tcp",
> "unix", "local". What does "local" mean, couldn't it be loopback
> adapter? Where is "_XSERVTransNoListen" function implemented?)

I think "local" is an alias for "unix", which uses a UNIX domain socket 
(as emulated by cygwin)

_XSERVTransNoListen is implemented (via some macros) in libXtrans.

-- 
Jon TURNEY
Volunteer Cygwin/X X Server maintainer

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://x.cygwin.com/docs/
FAQ:                   http://x.cygwin.com/docs/faq/



More information about the Cygwin-xfree mailing list