X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-daemon%2Fdbus-test.py;h=a5adc0f7af8d8a23a07af71cb641c6aa015aea3e;hb=66c6bca0849a82be92d6bff82c478d769f8af869;hp=e57c35ee63a94bf2ea37a7978ccd4e9692242307;hpb=cc7bb72552184951e806f4d0f2449629b35b9c93;p=catta diff --git a/avahi-daemon/dbus-test.py b/avahi-daemon/dbus-test.py index e57c35e..a5adc0f 100755 --- a/avahi-daemon/dbus-test.py +++ b/avahi-daemon/dbus-test.py @@ -1,34 +1,78 @@ #!/usr/bin/python2.4 -import dbus -import dbus.glib -import gtk - -from time import sleep +import dbus, gobject +try: + import dbus.glib +except ImportError, e: + pass bus = dbus.SystemBus() +server = dbus.Interface(bus.get_object("org.freedesktop.Avahi", '/'), 'org.freedesktop.Avahi.Server') + +def server_state_changed_callback(t): + print "Server::StateChanged: ", t -server = dbus.Interface(bus.get_object("org.freedesktop.Avahi", '/org/freedesktop/Avahi/Server'), 'org.freedesktop.Avahi.Server') +server.connect_to_signal("StateChanged", server_state_changed_callback) + +print "Version String: ", server.GetVersionString() + +print server.ResolveHostName(0, 0, "ecstasy.local", 0) +print server.ResolveAddress(0, 0, "192.168.50.4") print "Host name: %s" % server.GetHostName() print "Domain name: %s" % server.GetDomainName() print "FQDN: %s" % server.GetHostNameFqdn() +print "State: %i" % server.GetState() -g = dbus.Interface(bus.get_object("org.freedesktop.Avahi", server.EntryGroupNew()), 'org.freedesktop.Avahi.EntryGroup') +n = server.GetNetworkInterfaceNameByIndex(2) +print "network: 2 -> %s -> %i" % (n, server.GetNetworkInterfaceIndexByName(n)) + +print server.GetAlternativeHostName("gurkiman10") +print server.GetAlternativeServiceName("Ahuga Service") -def state_changed_callback(t): - print "StateChanged: ", t +def entry_group_state_changed_callback(t): + print "EntryGroup::StateChanged: ", t -g.connect_to_signal('StateChanged', state_changed_callback) -g.AddService(0, 0, "_http._tcp", "foo", "", "", dbus.UInt16(4712), ["fuck=hallo", "gurke=mega"]) + if t == 1: + print server.ResolveHostName(0, 0, "foo.local", 0) + +g = dbus.Interface(bus.get_object("org.freedesktop.Avahi", server.EntryGroupNew()), 'org.freedesktop.Avahi.EntryGroup') +g.connect_to_signal('StateChanged', entry_group_state_changed_callback) +g.AddService(0, 0, "Test Web Site", "_http._tcp", "", "", dbus.UInt16(4712), ["fuck=hallo", "gurke=mega"]) g.AddAddress(0, 0, "foo.local", "47.11.8.15") g.Commit() +def domain_browser_callback(a, interface, protocol, domain): + print "DOMAIN_BROWSER: %s %i %i %s" % (a, interface, protocol, domain) + +db = dbus.Interface(bus.get_object("org.freedesktop.Avahi", server.DomainBrowserNew(0, 0, "", 2)), 'org.freedesktop.Avahi.DomainBrowser') +db.connect_to_signal('ItemNew', lambda interface, protocol, domain: domain_browser_callback("NEW", interface, protocol, domain)) +db.connect_to_signal('ItemRemove', lambda interface, protocol, domain: domain_browser_callback("REMOVE", interface, protocol, domain)) + +def service_type_browser_callback(a, interface, protocol, type, domain): + print "SERVICE_TYPE_BROWSER: %s %i %i %s %s" % (a, interface, protocol, type, domain) + +stb = dbus.Interface(bus.get_object("org.freedesktop.Avahi", server.ServiceTypeBrowserNew(0, 0, "")), 'org.freedesktop.Avahi.ServiceTypeBrowser') +stb.connect_to_signal('ItemNew', lambda interface, protocol, type, domain: service_type_browser_callback("NEW", interface, protocol, type, domain)) +stb.connect_to_signal('ItemRemove', lambda interface, protocol, type, domain: service_type_browser_callback("REMOVE", interface, protocol, type, domain)) + +def service_browser_callback(a, interface, protocol, name, type, domain): + print "SERVICE_BROWSER: %s %i %i %s %s %s" % (a, interface, protocol, name, type, domain) + + if a == "NEW": + print server.ResolveService(interface, protocol, name, type, domain, 0) + +sb = dbus.Interface(bus.get_object("org.freedesktop.Avahi", server.ServiceBrowserNew(0, 0, "_http._tcp", "")), 'org.freedesktop.Avahi.ServiceBrowser') +sb.connect_to_signal('ItemNew', lambda interface, protocol, name, type, domain: service_browser_callback("NEW", interface, protocol, name, type, domain)) +sb.connect_to_signal('ItemRemove', lambda interface, protocol, name, type, domain: service_browser_callback("REMOVE", interface, protocol, name, type, domain)) + try: - gtk.main() + gobject.MainLoop().run() except KeyboardInterrupt, k: pass g.Free() +db.Free() +stb.Free() print "Quit"