From 1e2d880d6d66401b13898af128a2d0d9faf37155 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Fri, 19 May 2006 13:20:52 -0400 Subject: [PATCH] More informative error if avahi isn't around. --- sugar/p2p/presence.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/sugar/p2p/presence.py b/sugar/p2p/presence.py index 4c5c086f..d0f6000e 100644 --- a/sugar/p2p/presence.py +++ b/sugar/p2p/presence.py @@ -60,7 +60,14 @@ class PresenceDiscovery(object): # print "Browsing domain '%s' on %i.%i ..." % (domain, interface, protocol) - b = dbus.Interface(self.bus.get_object(avahi.DBUS_NAME, self.server.ServiceTypeBrowserNew(interface, protocol, domain, dbus.UInt32(0))), avahi.DBUS_INTERFACE_SERVICE_TYPE_BROWSER) + try: + b = dbus.Interface(self.bus.get_object(avahi.DBUS_NAME, self.server.ServiceTypeBrowserNew(interface, protocol, domain, dbus.UInt32(0))), avahi.DBUS_INTERFACE_SERVICE_TYPE_BROWSER) + except dbus.DBusException, exc: + str_exc = str(exc) + if str_exc.find("The name org.freedesktop.Avahi was not provided by any .service files") >= 0: + raise Exception("Avahi does not appear to be running. '%s'" % str_exc) + else: + raise exc b.connect_to_signal('ItemNew', self.new_service_type) self._service_type_browsers[(interface, protocol, domain)] = b