X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=avahi-sharp%2FAvahiTest.cs;h=395d5cb104d6acc67068195fd4483193fc6882ed;hb=0433169ea9c6906f31b1a78e9a118858dd776dad;hp=05072041684339a852540124767fcadec9d884ff;hpb=ba12decc4413dedf22c06545d1ec5938efa8954a;p=catta diff --git a/avahi-sharp/AvahiTest.cs b/avahi-sharp/AvahiTest.cs index 0507204..395d5cb 100644 --- a/avahi-sharp/AvahiTest.cs +++ b/avahi-sharp/AvahiTest.cs @@ -1,6 +1,27 @@ +/* $Id$ */ + +/*** + This file is part of avahi. + + avahi is free software; you can redistribute it and/or modify it + under the terms of the GNU Lesser General Public License as + published by the Free Software Foundation; either version 2.1 of the + License, or (at your option) any later version. + + avahi is distributed in the hope that it will be useful, but WITHOUT + ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General + Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with avahi; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + USA. +***/ + using System; +using System.Text; using System.Net; -using Gtk; using Avahi; public class AvahiTest { @@ -14,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); @@ -51,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; }