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/

Reply via email to