X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-utils%2Favahi-discover.in;h=00a56023cd1712921648915a7337aa882491ffd1;hb=da75d1898a45c106a994cd87f8da5b6bcb2b6450;hp=77ce72f07cc206dc8811b8d45e4c0218fd31f35f;hpb=c202afe723757ecd3a21a508eaa2eccf2d72b45d;p=catta diff --git a/avahi-utils/avahi-discover.in b/avahi-utils/avahi-discover.in index 77ce72f..00a5602 100755 --- a/avahi-utils/avahi-discover.in +++ b/avahi-utils/avahi-discover.in @@ -52,7 +52,7 @@ class Main_window(SimpleGladeApp): self.info_label.set_markup("No service currently selected.") return #Asynchronous resolving - self.server.ResolveService( int(interface), int(protocol), name, stype, domain, avahi.PROTO_UNSPEC, 0, reply_handler=self.service_resolved, error_handler=self.print_error) + self.server.ResolveService( int(interface), int(protocol), name, stype, domain, avahi.PROTO_UNSPEC, dbus.UInt32(0), reply_handler=self.service_resolved, error_handler=self.print_error) def protoname(self,protocol): @@ -73,12 +73,7 @@ class Main_window(SimpleGladeApp): print "\tHost %s (%s), port %i, TXT data: %s" % (host, address, port, str(avahi.txt_array_to_string_array(txt))) - if len(txt) == 0: - txt_data = "empty" - else: - txt_data = str(avahi.txt_array_to_string_array(txt)) - - self.update_label(interface, protocol, name, stype, domain, host, aprotocol, address, port, txt_data) + self.update_label(interface, protocol, name, stype, domain, host, aprotocol, address, port, avahi.txt_array_to_string_array(txt)) def print_error(self, err): error_label = "Error: %s" % (err) @@ -141,7 +136,7 @@ class Main_window(SimpleGladeApp): print "Browsing for services of type '%s' in domain '%s' on %i.%i ..." % (stype, domain, interface, protocol) - b = dbus.Interface(self.bus.get_object(avahi.DBUS_NAME, self.server.ServiceBrowserNew(interface, protocol, stype, domain, 0)), avahi.DBUS_INTERFACE_SERVICE_BROWSER) + b = dbus.Interface(self.bus.get_object(avahi.DBUS_NAME, self.server.ServiceBrowserNew(interface, protocol, stype, 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) @@ -157,7 +152,7 @@ class Main_window(SimpleGladeApp): if self.stype is None: 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, 0)), avahi.DBUS_INTERFACE_SERVICE_TYPE_BROWSER) + 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) b.connect_to_signal('ItemNew', self.new_service_type) service_type_browsers[(interface, protocol, domain)] = b @@ -172,8 +167,28 @@ class Main_window(SimpleGladeApp): if domain != "local": self.browse_domain(interface, protocol, domain) + def pair_to_dict(self, l): + res = dict() + for el in l: + if "=" not in el: + res[el]='' + else: + tmp = el.split('=',1) + if len(tmp[0]) > 0: + res[tmp[0]] = tmp[1] + return res + + def update_label(self,interface, protocol, name, stype, domain, host, aprotocol, address, port, txt): - infos = "Service Type: %s\nService Name: %s\nDomain Name: %s\nInterface: %s %s\nAddress: %s/%s:%i\nTXT Data: %s" % (stype, name, domain, self.siocgifname(interface), self.protoname(protocol), host, address, port, str(txt)) + if len(txt) != 0: + txts = "" + txtd = self.pair_to_dict(txt) + for k,v in txtd.items(): + txts+="TXT %s = %s\n" % (k,v) + else: + txts = "TXT Data: empty" + + infos = "Service Type: %s\nService Name: %s\nDomain Name: %s\nInterface: %s %s\nAddress: %s/%s:%i\n%s" % (stype, name, domain, self.siocgifname(interface), self.protoname(protocol), host, address, port, txts.strip()) self.info_label.set_markup(infos) def insert_row(self, model,parent, @@ -211,7 +226,7 @@ class Main_window(SimpleGladeApp): self.browse_domain(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, "local") # Browse for other browsable domains - db = dbus.Interface(self.bus.get_object(avahi.DBUS_NAME, self.server.DomainBrowserNew(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, "", avahi.DOMAIN_BROWSER_BROWSE, 0)), avahi.DBUS_INTERFACE_DOMAIN_BROWSER) + db = dbus.Interface(self.bus.get_object(avahi.DBUS_NAME, self.server.DomainBrowserNew(avahi.IF_UNSPEC, avahi.PROTO_UNSPEC, "", avahi.DOMAIN_BROWSER_BROWSE, dbus.UInt32(0))), avahi.DBUS_INTERFACE_DOMAIN_BROWSER) db.connect_to_signal('ItemNew', self.new_domain) else: # Just browse the domain the user wants us to browse