Ticket #364 (closed defect: fixed)
Pulse clients hard to reconfigure for non-default server
| Reported by: | Diablo-D3 | Owned by: | lennart |
|---|---|---|---|
| Milestone: | 0.9.11 | Component: | clients |
| Keywords: | Cc: |
Description
According to the FAQ, Pulse clients check $DISPLAY before checking ~/.pulse/client.conf.
This is confusing and unwanted behavior. It should check $PULSE_SERVER ("temporarily manually set for this environment only"), ~/.pulse/client.conf ("permanently manually for this user only"), /etc/pulse/client.conf ("permanently manually for this computer only"), then $DISPLAY ("automatically set if no manual settings") and then the rest of the automatic options.
As such, two problems arise by checking $DISPLAY before client.conf, both involving forwarding X over SSH.
Problem one) Machines A and B. Machine A runs Daemon A, and Client A. Machine B runs Xserver B. User SSHs from Machine B to Machine A with X forwarding on. Client runs on Machine A, displays on Xserver B, but gets confused and cannot connect to the Pulse server as Xserver B's root window does not have Daemon A listed.
If User only sets client.conf, then Client A never reads it. If User sets environment variable set to {A}unix:/tmp/pulse-user/native (ie, ssh A -XC 'PULSE_SERVER="{A}unix:/tmp/pulse-user/native" ClientA' or using ~/.ssh/environment (on A) which requires enabling such in /etc/ssh/sshd_config using PermitUserEnvironment? yes), then Client A connects to Daemon A while displaying on Xserver B.
This is a very ugly solution.
Problem two) Again, Machine A and B. Machine A runs Client A. Machine B runs Daemon B, and Xserver B. User SSHs from Machine B to Machine A. Client A cannot connect to Daemon B because SSH does not port forward port 4713 automatically (ie, ssh -L 4713:MachineB:4713 MachineA ClientA; or use problem one's environment solution substituting tcp:MachineB:4713 as the server address). If the -L flag is supplied or the environment solution is used, Client A can connect to Daemon B while displaying on Xserver B.
This is a very ugly solution, again.
If client.conf was checked before $DISPLAY, all of this could be avoided by just setting default-server appropriately in client.conf.
