X11-Forwarding for Reliant UNIX (formerly SINIX)

Bladt Norbert Norbert.Bladt at adi.ch
Mon Jan 8 18:13:18 EST 2001


Hi !

To all: A Happy New Year !

During the last week I did some investigations why the X11 forwarding
on Reliant UNIX Versions 5.44 and 5.45 does not work out of the box
with OpenSSH-2.3.0p1.

The result fo my investigation is:

   1. The OpenSSH sshd opens a TCP/IP-port 6000 + display number
	and listens to it. This is fine and works with Solaris 7,
	DEC-OSF 4.0D, Linux and FreeBSD-4.2 but not with Reliant UNIX.

   2. The local communication for X under Reliant UNIX
	is done via the named pipe /tmp/.X11-unix/Xn
	where n is the display number.
	Every other OS I have worked on uses a socket
	for this.

   3. All standard X-applications try to determine whether
	they are running locally, i.e. if the DISPLAY on
	computer HOSTX is HOSTX:10.0 the X-applications detect
	that this is the local computer and try to open the
	named pipe mentioned above.
	If I change the DISPLAY to be "IP-Address-of-HOSTX":10.0
	than X-forwarding works fine !

   4. The main reason I want to use X11-Forwarding is a special
	application. For this, the work-around with the IP-Address
	does not work.
	Regardless whether I specify the hostname, its IP-address,
	the name "localhost" or the address 127.0.0.1 this application
	somehow detects that it is running locally and therefore the
	X11-forwarding does not work.

The real "fix" would be to open the named pipe for reading instead
of the TCP port, I guess.

I have found the location where the TCP port is opened for listening
and the location where the local UNIX domain socket is opened.
I think I can change these lines of code to open the named pipe
on Reliant UNIX, instead.

However, I don't know what the implications are if I do that, i.e.
are there other parts of the source that imply the use of a socket ?
For instance changing some socket options on a named-pipe will simply
return an error code I expect.

I would like to get some comments whether the "fix" mentioned above
is the right way of doing it and whether changing the code in channels.c
is sufficient to solve this problem.
Or is my configuration wrong, i.e. should the sshd open a local UNIX
domain socket instead of opening an IP-port ?
The source code is there to do it in case the DISPLAY variable is
containing the string "unix". I already have changed the code to
open the named pipe in that case, but this is obviously never done.

Somehow confused,

Norbert.

-- 
Norbert Bladt
ATAG debis Informatik, ISM-TZ1 / Z302
Industriestrasse 1, CH 3052-Zollikofen
E-Mail: norbert.bladt at adi.ch Tel.: +41 31 915 3964 Fax: +41 31 915 3640






More information about the openssh-unix-dev mailing list