summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastien Estienne <sebastien.estienne@gmail.com>2005-10-27 20:52:48 +0000
committerSebastien Estienne <sebastien.estienne@gmail.com>2005-10-27 20:52:48 +0000
commita4b6330cc80ae27954c69ca53373d95b02cd277e (patch)
treec9ad764189ff1578e9fee0fb96d34dc3ed773afe
parent28e52997f9e2398cd9ba4b37bfc5c775c4b6fe3d (diff)
* try to make sda compatible with api 0.5 and 0.6
git-svn-id: file:///home/lennart/svn/public/service-discovery-applet/trunk@70 3be567f1-68ff-0310-b24a-ad7cc433fd2f
-rwxr-xr-xsrc/service-discovery-applet.in37
1 files changed, 28 insertions, 9 deletions
diff --git a/src/service-discovery-applet.in b/src/service-discovery-applet.in
index 5c5b334..7e22521 100755
--- a/src/service-discovery-applet.in
+++ b/src/service-discovery-applet.in
@@ -148,6 +148,7 @@ 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.avahi_version = self.server.GetVersionString()
self.session_bus = dbus.SessionBus()
obj = self.session_bus.get_object("org.freedesktop.Notifications", "/org/freedesktop/Notifications")
self.notif = dbus.Interface(obj, "org.freedesktop.Notifications")
@@ -167,7 +168,10 @@ class ServiceDiscoveryApplet(gnomeapplet.Applet):
else:
return self.server.GetNetworkInterfaceNameByIndex(interface)
- def service_resolved(self, interface, protocol, name, type, domain, host, aprotocol, address, port, txt):
+ def service_resolved_old(self, interface, protocol, name, type, domain, host, aprotocol, address, port, txt):
+ service_resolved(self, interface, protocol, name, type, domain, host, aprotocol, address, port, txt, None)
+
+ def service_resolved(self, interface, protocol, name, type, domain, host, aprotocol, address, port, txt, flags):
print "Service data for service '%s' of type '%s' in domain '%s' on %s.%i:" % (name, type, domain, self.siocgifname(interface), protocol)
print "\tHost %s (%s), port %i, TXT data: %s" % (host, address, port, avahi.txt_array_to_string_array(txt))
@@ -180,8 +184,14 @@ class ServiceDiscoveryApplet(gnomeapplet.Applet):
print "Error:", str(err)
def menuitem_response(self, widget, interface, protocol, name, type, domain):
- self.server.ResolveService(interface, protocol, name, type, domain, avahi.PROTO_INET, dbus.UInt32(0), reply_handler=self.service_resolved, error_handler=self.print_error)
+ if self.avahi_version == "avahi 0.6":
+ self.server.ResolveService(interface, protocol, name, type, domain, avahi.PROTO_INET, dbus.UInt32(0), reply_handler=self.service_resolved, error_handler=self.print_error)
+ else:
+ self.server.ResolveService(interface, protocol, name, type, domain, avahi.PROTO_INET, reply_handler=self.service_resolved_old, error_handler=self.print_error)
+ def new_service_old(self, interface, protocol, name, type, domain):
+ new_service(self, interface, protocol, name, type, domain, None)
+
def new_service(self, interface, protocol, name, type, domain, flags):
print "Found service '%s' of type '%s' in domain '%s' on %s.%i." % (name, type, domain, self.siocgifname(interface), protocol)
@@ -219,7 +229,9 @@ class ServiceDiscoveryApplet(gnomeapplet.Applet):
self.display_service_notification(True, name, type)
-
+ def remove_service_old(self, interface, protocol, name, type, domain):
+ remove_service(self, interface, protocol, name, type, domain, None)
+
def remove_service(self, interface, protocol, name, type, domain, flags):
print "Service '%s' of type '%s' in domain '%s' on %s.%i disappeared." % (name, type, domain, self.siocgifname(interface), protocol)
@@ -237,12 +249,19 @@ class ServiceDiscoveryApplet(gnomeapplet.Applet):
return
print "Browsing for services of type '%s' in domain '%s' on %s.%i ..." % (type, domain, self.siocgifname(interface), protocol)
-
- b = dbus.Interface(self.system_bus.get_object(avahi.DBUS_NAME,
- self.server.ServiceBrowserNew(interface, protocol, type, domain, dbus.UInt32(0)))
- , avahi.DBUS_INTERFACE_SERVICE_BROWSER)
- b.connect_to_signal('ItemNew', self.new_service)
- b.connect_to_signal('ItemRemove', self.remove_service)
+
+ if self.avahi_version == "avahi 0.6":
+ b = dbus.Interface(self.system_bus.get_object(avahi.DBUS_NAME,
+ self.server.ServiceBrowserNew(interface, protocol, type, domain, dbus.UInt32(0)))
+ , avahi.DBUS_INTERFACE_SERVICE_BROWSER)
+ b.connect_to_signal('ItemNew', self.new_service)
+ b.connect_to_signal('ItemRemove', self.remove_service)
+ else:
+ b = dbus.Interface(self.system_bus.get_object(avahi.DBUS_NAME,
+ self.server.ServiceBrowserNew(interface, protocol, type, domain))
+ , avahi.DBUS_INTERFACE_SERVICE_BROWSER)
+ b.connect_to_signal('ItemNew', self.new_service_old)
+ b.connect_to_signal('ItemRemove', self.remove_service_old)
self.service_browsers[(interface, protocol, type, domain)] = b