]> git.meshlink.io Git - catta/blobdiff - avahi-daemon/dbus-test.py
* add new text file "HACKING" and ignore more stuff in "common"
[catta] / avahi-daemon / dbus-test.py
index 753c7d03acd04aa579224e5782ab2578c213d9e1..310a3c224b534b3b98f506e10d21684ad6c1b6ff 100755 (executable)
@@ -7,7 +7,7 @@ except ImportError, e: pass
 
 bus = dbus.SystemBus()
 
-server = dbus.Interface(bus.get_object("org.freedesktop.Avahi", '/org/freedesktop/Avahi/Server'), 'org.freedesktop.Avahi.Server')
+server = dbus.Interface(bus.get_object("org.freedesktop.Avahi", '/'), 'org.freedesktop.Avahi.Server')
 
 def server_state_changed_callback(t):
     print "Server::StateChanged: ", t
@@ -22,6 +22,10 @@ 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()
+
+print server.GetAlternativeHostName("gurkiman10")
+print server.GetAlternativeServiceName("Ahuga Service")
 
 def entry_group_state_changed_callback(t):
     print "EntryGroup::StateChanged: ", t
@@ -49,6 +53,16 @@ stb = dbus.Interface(bus.get_object("org.freedesktop.Avahi", server.ServiceTypeB
 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:
     gobject.MainLoop().run()
 except KeyboardInterrupt, k: