Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDan Williams <dcbw@localhost.localdomain>2006-09-27 20:47:23 (GMT)
committer Dan Williams <dcbw@localhost.localdomain>2006-09-27 20:47:23 (GMT)
commit22be6cb0dafe115683240e495f1b61bda0e00a9d (patch)
treeb7616acbe71ba7ee5f8aec18289753805d1cec27 /services
parent70cbd90c7a1fd32e9087df8b19f860e9aecc128e (diff)
Work around bug where Avahi passes back a blank service type; and don't traceback on invalid service types
Diffstat (limited to 'services')
-rw-r--r--services/presence/PresenceService.py22
1 files changed, 14 insertions, 8 deletions
diff --git a/services/presence/PresenceService.py b/services/presence/PresenceService.py
index 9898b2b..938e611 100644
--- a/services/presence/PresenceService.py
+++ b/services/presence/PresenceService.py
@@ -644,17 +644,23 @@ class PresenceService(object):
return
# Start browsing for all services of this type in this domain
- s_browser = self._mdns_service.ServiceBrowserNew(interface, protocol, stype, domain, dbus.UInt32(0))
- browser_obj = dbus.Interface(self._system_bus.get_object(avahi.DBUS_NAME, s_browser),
- avahi.DBUS_INTERFACE_SERVICE_BROWSER)
- browser_obj.connect_to_signal('ItemNew', self._service_appeared_cb_glue)
- browser_obj.connect_to_signal('ItemRemove', self._service_disappeared_cb_glue)
-
- self._service_browsers[(interface, protocol, stype, domain)] = browser_obj
+ try:
+ s_browser = self._mdns_service.ServiceBrowserNew(interface,
+ protocol, stype, domain, dbus.UInt32(0))
+ browser_obj = dbus.Interface(self._system_bus.get_object(avahi.DBUS_NAME, s_browser),
+ avahi.DBUS_INTERFACE_SERVICE_BROWSER)
+ browser_obj.connect_to_signal('ItemNew', self._service_appeared_cb_glue)
+ browser_obj.connect_to_signal('ItemRemove', self._service_disappeared_cb_glue)
+
+ self._service_browsers[(interface, protocol, stype, domain)] = browser_obj
+ except dbus.DBusException:
+ logging.debug("Error browsing service type '%s'" % stype)
return False
def _new_service_type_cb_glue(self, interface, protocol, stype, domain, flags):
- gobject.idle_add(self._new_service_type_cb, interface, protocol, stype, domain, flags)
+ if len(stype) > 0:
+ gobject.idle_add(self._new_service_type_cb, interface, protocol,
+ stype, domain, flags)
def _new_domain_cb(self, interface, protocol, domain, flags=0):
"""Callback from Avahi when a new domain has been found. Start