Opened 12 years ago

Last modified 12 years ago

#201 closed defect

Incorrect check for started X server — at Initial Version

Reported by: Alexey Loginov Owned by: Antoine Martin
Priority: major Milestone:
Component: Client Keywords:
Cc:

Description

In trying to get a WinSwitch/xpra server on Ubuntu to work with a WinSwitch/xpra client on OSX, I had to fight with xmodmap a bit (need to use Alt for Eclipse, emacs, etc.). I found the check for running X server not to be quite right. The following diff is for an older version of winswitch/client/client_base.py (I can't use the latest due to https://xpra.org/trac/ticket/92), so the lines aren't current but their content hasn't changed.

The first change fixes the search of lines for "org.x.startx". In the old form, line.find returns -1 for any line without a match, triggering on the very first line ("PID Status Label"). Python documentation states a preference for "substring in string", when the position of substring in string is not needed. If you want to insist on "org.x.startx" at the very end of the line, the test could be: if line.endswith("org.x.startx"):

The second change corrects the check for a process that's running now ("0" in parts[1] appears to indicate that the process has terminated and returned 0). Checking that parts[0] is NOT "-" is a valid check for a running process, as well. The man pages are a bit vague.

The changes below work on my MacBookPros at home and at work with 10.5 and 10.6:

432c432
<                                       if line.find("org.x.startx$"):
---
>                                       if "org.x.startx" in line:
436c436
<                                                       started = parts[1]=="0"
---
>                                                       started = parts[1]=="-"

I hope this helps.
-Alexey

Change History (0)

Note: See TracTickets for help on using tickets.