Thanks for the information, Tristan.
I added the "-nolisten named" parm to my entry in inetd.conf for my
Solaris 8 (sparc) systems and now VNC works fine for my Solaris 8
machines.
This is the entry in my inetd.conf

"vnc5901 stream  tcp  nowait  root  /usr/sbin/tcpd /usr/local/bin/Xvnc
-inetd -query localhost -once securitytypes=none -nolisten named"

-----Original Message-----
From: Tristan Richardson [mailto:[EMAIL PROTECTED] 
Sent: Monday, June 27, 2005 11:58 AM
To: vnc-list@realvnc.com
Cc: Tom Schmidt; Baumann, Chuck; [EMAIL PROTECTED]
Subject: Re: Xvnc 4.X and inetd on Solaris

I've spent a considerable amount of time tracking down the 
incompatibilities between dtlogin on Sparc Solaris and Xvnc 4.x (dtlogin

is the CDE version of XDM which is used to provide the Solaris login 
screen when you use the -query option to Xvnc).

There are a number of issues, the most significant of which is that 
there is a bug in dtlogin on Solaris 7 (and probably 2.6 and 8).  It 
looks like it gets confused when it uses the "named" protocol for 
talking to the X server.  Xvnc 3.3.7 used an earlier version of the X 
server code that doesn't have support for this protocol which is why 
Xvnc 3.3.7 works fine with it.  Luckily there is a simple workaround for

Xvnc 4 servers which is to give the "-nolisten named" option to Xvnc.

Fonts are another issue which may cause problems but I haven't really 
got to the bottom of what is going on.  Using a font server seems to 
help in some situations.

There is also a bug in the current 4.1.6 Enterprise Edition to do with 
allocation of file descriptor numbers, for which there is a simple 
workaround - add "3>/dev/null" to the Xvnc command line.

An additional pain is the fact that Solaris's inetd only allows 5 
parameters to any spawned program.  This means a wrapper script is
needed.

So to summarise what seems to work for me on our Solaris 7 box:

1. Create a wrapper script called for example /usr/local/bin/Xvnc-inetd 
which simply execs Xvnc with the desired arguments:

#!/bin/sh
exec /usr/local/bin/Xvnc -inetd -securitytypes=none -depth 24 \
-nolisten named -query localhost -once 3>/dev/null

2. Add an entry in /etc/services for the desired port, e.g.:

vnc50   5950/tcp

3. Add an entry to /etc/inetd.conf, not forgetting to kill -HUP the 
inetd process:

vnc50 stream tcp nowait root /usr/local/bin/Xvnc-inetd Xvnc-inetd

4. Make sure /usr/dt/config/Xaccess etc allow XDMCP service from the 
local host.

5. Connect a viewer to <host>:50 and you should be away...

Cheers

Tristan


Tom Schmidt wrote:
> Chuck,
>     Your solution worked for me as well!  I replaced the Solaris 8 
> dtlogin binary with the Solaris 9 version and now Xvnc 4.X works via 
> inetd!  I agree that this is still not a solution to the root cause,
but 
> at least it is a workaround.  However I still support some Solaris 2.6

> machines and this solution will not work for them since the Solaris 9 
> dtlogin is not backward compatible with Solaris 2.6.
> 
>     So I do hope that the realvnc authors can fix this issue in their 
> Xvnc 4.X code since Xvnc 3.3.7 does not have this issue.  And the 
> workaround above only fixes Solaris 8, not Solaris 2.6.
> 
> Tom
> 
> "Baumann, Chuck" <[EMAIL PROTECTED]> wrote:
>  > Tom,
>  > I have both Solaris 8 (sparc) and Solaris 9 (sparc) setup with
inetd and
>  > the VNC connections work just fine on Solaris 9 but not on Solaris
8.
>  >
>  > After running both Solaris 8 and Solaris 9 dtlogin in debug mode
and
>  > comparing what worked (solaris 9) and what doesn't (solaris 8) I
was no
>  > closer to the answer.  This is a comparison of the sizes of the two
>  > modules:
>  > -r-xr-xr-x   1 root     bin       181532 Feb 17 07:45 dtlogin
(sol8)
>  > -r-xr-xr-x   1 root     bin       185396 Feb 17 13:36 dtlogin
(sol9)
>  >
>  > Notice that the dtlogin module from Solaris 9 media is about 4K
larger.
>  > I backed up the Solaris 8 version of dtlogin and then used the
dtlogin
>  > from Solaris 9 on my Solaris 8 system.
>  > Both versions of dtlogin had all outstanding patches applied.
>  >
>  > Now when connecting via VNC on Solaris 8, I could successfully
login to
>  > a CDE, OpenWindows or Failsafe Session. For some reason the extra
code
>  > in the Solaris 9 dtlogin module will handle whatever is occurring
and
>  > causing the Solaris 8 module to terminate.
>  > I realize that this is a workaround and not an answer.
>  > You may not have access to Solaris 9 or may not feel comfortable
>  > implementing a work-around such as this.
>  > I thought I would post my observations since they may help someone
else
>  > with finding out what the real problem is.
>  > Chuck
_______________________________________________
VNC-List mailing list
VNC-List@realvnc.com
To remove yourself from the list visit:
http://www.realvnc.com/mailman/listinfo/vnc-list

Reply via email to