This is the mail archive of the
cygwin-xfree
mailing list for the Cygwin XFree86 project.
Re: Can't open display with PuTTY and xinit 1.3.4-1
- From: Jon TURNEY <jon dot turney at dronecode dot org dot uk>
- To: cygwin-xfree at cygwin dot com
- Cc: fj dot mail at gmail dot com
- Date: Tue, 24 Feb 2015 19:32:20 +0000
- Subject: Re: Can't open display with PuTTY and xinit 1.3.4-1
- Authentication-results: sourceware.org; auth=none
- References: <CAC3+JRPtJ0Xaf8rHuF87AtZi1GNgQLgsyOw66fCnR1Njmq-2OQ at mail dot gmail dot com>
- Reply-to: cygwin-xfree at cygwin dot com
- Reply-to: cygwin-xfree at cygwin dot com
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/