summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastien Estienne <sebastien.estienne@gmail.com>2006-04-01 15:37:31 +0000
committerSebastien Estienne <sebastien.estienne@gmail.com>2006-04-01 15:37:31 +0000
commit4dd0295feff6483e39bb00c12cf4d5751e6d3d67 (patch)
treebf0140d013cca0912f8faca12da12aad114964f7
parentd2de6eef902b5dc2ca955b287468a4893c3c62ab (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
-rwxr-xr-xsrc/service-discovery-applet.in15
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):