D-BUS and Xforwarding.

On Sun, Aug 06, 2006 at 04:20:58PM -0400, Havoc Pennington wrote:
> Shaun McCance wrote:
> > One really good reason I can think of is that
> > D-Bus can't yet handle remote X applications.
> > It would kind of suck for those not to be able
> > to interact with the session manager.
> > 
> It should be able to handle them fine. The default configuration doesn't 
> listen on tcp but you just add a line like:
> <listen>tcp:host=whatever,port=whatever</listen>
> and then it should work fine, at least I think it should. Though I don't 
> know if anyone has tested it lately.
> Also ssh doesn't know how to forward DBUS_SESSION_BUS_ADDRESS, so you 
> have to do it manually the way you had to do it manually for DISPLAY 
> back in the day.

I think we're going onto another topic here, but one that really
needs to be addressed.

X forwarding is incredibly useful and a lot of people are using it.
While D-BUS at the moment will work for the LTSP and straight
Xterminal case, it doesn't currently handle the so called 'fat
client' case, where my local workstation does most of my day to day
desktop needs, and I can log into a remote server to run my CPU
intensive/pain in the neck to license application (I don't feel this
is an edge case we shouldn't design for).

The increased use of D-BUS for IPC of things that are tied into the
X session (screensaver inhibiting, power management control, program status
[mathusalem], &c.) means we need a way to extend the bus across the
network. Ideally, we should be able to do this securely, and without
having to change too much stuff.

I have pondered the idea of a Dbus-over-X bridge. That is, when
attempting to connect to the session bus, it detects that DISPLAY
implies you're on a remote machine, and then uses X11 to communicate
with the same machine that is running your X server via a bus proxy
back to the session daemon.

This seems a bit crack, but has the advantage of being secure,
relatively easy to implement (I think), requiring no additional
authentication mechanisms and working as expected in the case of
multiple users from multiple machines having multiple connections to
the remote machine all using the same username (this happens!).

As with X11, the value of DISPLAY becomes the key to make it work.

Unfortunately, as it stands, this is going to break some important
cases, the Xterminal case, where DISPLAY is scully:0, but _all_
processes are running on the remote machine, won't be able to find a
bus daemon, but I'm sure this can be addressed.


Davyd Madeley

08B0 341A 0B9B 08BB 2118  C060 2EDD BB4F 5191 6CDA

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]