X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-sharp%2FAvahiTest.cs;h=395d5cb104d6acc67068195fd4483193fc6882ed;hb=0433169ea9c6906f31b1a78e9a118858dd776dad;hp=dcc6434a9885a331d8786d93330294030f17df35;hpb=a21074b9ea4b11b74d114e2669248f979caf0d3a;p=catta diff --git a/avahi-sharp/AvahiTest.cs b/avahi-sharp/AvahiTest.cs index dcc6434..395d5cb 100644 --- a/avahi-sharp/AvahiTest.cs +++ b/avahi-sharp/AvahiTest.cs @@ -1,3 +1,5 @@ +/* $Id$ */ + /*** This file is part of avahi. @@ -18,8 +20,8 @@ ***/ using System; +using System.Text; using System.Net; -using Gtk; using Avahi; public class AvahiTest { @@ -33,27 +35,42 @@ public class AvahiTest { eg.AddService ("foobar2", "_daap._tcp", client.DomainName, 444, new string[] { "foo", "bar", "baz" }); eg.Commit (); - - Application.Run (); + Console.WriteLine ("Press enter to quit"); + Console.ReadLine (); } private static void OnEntryGroupChanged (object o, EntryGroupState state) { Console.WriteLine ("Entry group status: " + state); + /* if (state == EntryGroupState.Established) { DomainBrowser browser = new DomainBrowser (client); browser.DomainAdded += OnDomainAdded; } + */ + + BrowseServiceTypes ("dns-sd.org"); } private static void OnDomainAdded (object o, DomainInfo info) { Console.WriteLine ("Got domain added: " + info.Domain); - ServiceTypeBrowser stb = new ServiceTypeBrowser (client, info.Domain); + BrowseServiceTypes (info.Domain); + } + + private static void BrowseServiceTypes (string domain) + { + ServiceTypeBrowser stb = new ServiceTypeBrowser (client, domain); + stb.CacheExhausted += OnCacheExhausted; stb.ServiceTypeAdded += OnServiceTypeAdded; } + private static void OnCacheExhausted (object o, EventArgs args) + { + Console.WriteLine ("Cache is exhausted"); + } + private static void OnServiceTypeAdded (object o, ServiceTypeInfo info) { Console.WriteLine ("Got service type: " + info.ServiceType); @@ -70,7 +87,10 @@ public class AvahiTest { private static void OnServiceResolved (object o, ServiceInfo info) { - Console.WriteLine ("Service '{0}' at {1}:{2}", info.Name, info.Host, info.Port); + Console.WriteLine ("Service '{0}' at {1}:{2}", info.Name, info.HostName, info.Port); + foreach (byte[] bytes in info.Text) { + Console.WriteLine ("Text: " + Encoding.UTF8.GetString (bytes)); + } AddressResolver ar = new AddressResolver (client, info.Address); ar.Found += OnAddressResolved; }