From 7a2d95d435b9a4d9e4bc4c4a25b38f6b362967c7 Mon Sep 17 00:00:00 2001 From: Martin Vidner Date: Fri, 14 Nov 2008 11:01:53 +0100 Subject: [PATCH] Report the pid of the competing applet. --- cnetworkmanager | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/cnetworkmanager b/cnetworkmanager index 356f877..a12d658 100755 --- a/cnetworkmanager +++ b/cnetworkmanager @@ -1250,14 +1250,24 @@ if options.usrcon: nmo = bus.get_object(NMC, nmp) nmi = dbus.Interface(nmo, NMI) +def service_pid(name): + DBS = 'org.freedesktop.DBus' + DBI = DBS + dbo = bus.get_object(DBS, '/') + dbi = dbus.Interface(dbo, DBI) + owner = dbi.GetNameOwner(name) + pid = dbi.GetConnectionUnixProcessID(owner) + return pid + # TODO UserSettings_06 if options.connect != None: if nm.Api() == "06": - brn = bus.request_name(NMIC, _dbus_bindings.NAME_FLAG_DO_NOT_QUEUE) + name = NMIC else: - brn = bus.request_name(USC, _dbus_bindings.NAME_FLAG_DO_NOT_QUEUE) + name = USC + brn = bus.request_name(name, _dbus_bindings.NAME_FLAG_DO_NOT_QUEUE) if brn == _dbus_bindings.REQUEST_NAME_REPLY_EXISTS: - print "Could not provide settings service, another applet is running" + print "Could not provide settings service, another applet is running (pid %s)" % service_pid(name) sys.exit(1) cfg = ConfigParserKNM() if nm.Api() == "06": -- 2.11.4.GIT