diff options
author | Sebastien Estienne <sebastien.estienne@gmail.com> | 2006-04-01 15:37:31 +0000 |
---|---|---|
committer | Sebastien Estienne <sebastien.estienne@gmail.com> | 2006-04-01 15:37:31 +0000 |
commit | 4dd0295feff6483e39bb00c12cf4d5751e6d3d67 (patch) | |
tree | bf0140d013cca0912f8faca12da12aad114964f7 /src/service-discovery-applet.in | |
parent | d2de6eef902b5dc2ca955b287468a4893c3c62ab (diff) |
first try at implementing avahi-daemon reconnectin
git-svn-id: file:///home/lennart/svn/public/service-discovery-applet/trunk@105 3be567f1-68ff-0310-b24a-ad7cc433fd2f
Diffstat (limited to 'src/service-discovery-applet.in')
-rwxr-xr-x | src/service-discovery-applet.in | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/service-discovery-applet.in b/src/service-discovery-applet.in index 449a328..20e7d70 100755 --- a/src/service-discovery-applet.in +++ b/src/service-discovery-applet.in @@ -243,6 +243,8 @@ class ServiceDiscoveryApplet(gnomeapplet.Applet): self.server = dbus.Interface(self.system_bus.get_object(avahi.DBUS_NAME, avahi.DBUS_PATH_SERVER), avahi.DBUS_INTERFACE_SERVER) + self.system_bus.add_signal_receiver(self.avahi_dbus_connect_cb, "NameOwnerChanged", "org.freedesktop.DBus", arg0="org.freedesktop.Avahi") + try: self.use_host_names = self.server.IsNSSSupportAvailable() except: @@ -255,6 +257,14 @@ class ServiceDiscoveryApplet(gnomeapplet.Applet): # applet.connect("destroy",self.cleanup) # applet.show_all() + def avahi_dbus_connect_cb(self, a, connect, disconnect): + if connect != "": + print "We are disconnected from avahi-daemon" + self.stop_service_discovery(None, None, None) + else: + print "We are connected to avahi-daemon" + self.start_service_discovery(None, None, None) + def start_notifying_cb(self): print "start notifying" self.show_notifications = self.sdaGconf.get_option("show_notifications") @@ -361,7 +371,10 @@ class ServiceDiscoveryApplet(gnomeapplet.Applet): if not self.service_browsers.has_key(service): return sb = self.service_browsers[service] - sb.Free() + try: + sb.Free() + except dbus.dbus_bindings.DBusException: + pass del self.service_browsers[service] # delete the sub menu of service_type if self.zc_types.has_key(type): |