[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
8.1 Woes: X-Server; CDROM net access from 3600s.
Date: Fri, 07 Jun 91 07:22:34 EDT
From: rjb1@gte.com
Second: probably a simple question, as we've never used the Symbolics
X Server before. Got it installed on a MacIvory, namespace entries
with X-WINDOW-SYSTEM TCP X-WINDOW-SYSTEM for both the MacIvory and
some YoonixBox, which is on the same "Secure Subnet" of the Site.
Select-<Square>. Start Server. Now, on the other machine:
YoonixBox% xterm -display 132.197.8.217:0.0
Xlib: connection to "132.197.8.217:0.0" refused by server
Xlib: Client is not authorized to connect to server.
Error: Can't Open display
This one I did try to debug a bit. Managed to trace-break some
X-Server connection routine on the Symbolics side, and it is getting
called at an appropriate time, so the connection request is getting
over the net, but the Symbolics is denying the connection. (Nasty
stuff, though, this X Server code; even the debugger seems to have
problems with this sorta transliterated C.)
I suspect that I'm just missing something here that authorizes
clients. Some old X hand (with better documentation?) might know the
answer. (I tried logging out of the Symbolics, which used to help
with starting Symbolics CLX clients, but doesn't appear relevant here.)
In Genera 8.0, the X server used the Secure Subnet mechanism. The 8.1
version makes use of the specific host list manipulated by the Unix
"xhost" command. Unfortunately, it defaults to authorizing only the
local host, and there's no nice Genera interface to updating the host
list!
I think the following should work. It's a CLX equivalent to the xhost
command (it currently only operates on the local host, but it could
easily be extended to take a server name). I'm not actually running 8.1
here, so I can't test it. It assumes you have CLX loaded.
(defun allow-x-client (hostname &key (address-family :internet))
(let ((display nil)
(aborting t))
(unwind-protect
(progn
(setq display (xlib:open-display net:*local-host*))
(xlib:add-access-host display hostname address-family)
(setq aborting nil))
(when display (xlib:close-display display :abort aborting)))))
Actually, for just controlling the local host, the following may be even
better:
(cp:define-command (com-enable-x-client-host
:command-table "User"
:provide-output-destination-keyword nil)
((host 'net:host))
(setf (gethash host (x-server-lisp::x-server-authorized-hosts
x-server-lisp::*x-server-data*))
t))
(cp:install-command 'x-server-lisp::x-server-program 'com-enable-x-client-host "Enable Client Host")
(cp:define-command (com-disable-x-client-host
:command-table "User"
:provide-output-destination-keyword nil)
((hostname 'net:host))
(remhash host (x-server-lisp::x-server-authorized-hosts
x-server-lisp::*x-server-data*)))
(cp:install-command 'x-server-lisp::x-server-program 'com-disable-x-client-host "Disable Client Host")
You could add them to the menu if you want.
Another interesting possibility that I've seen mentioned on the net
would be for the authorization code to pop up a query for the user.
This should be trivial to add to the Genera version (this part of the
server is all in Lisp). Meta-dot
X-SERVER-LISP::X-SERVER-CLIENT-AUTHORIZED and play around with it.
barmar