]> git.meshlink.io Git - catta/blobdiff - avahi-sharp/AvahiTest.cs
fix avahi_netlink_new to allow multiple netlinks per process
[catta] / avahi-sharp / AvahiTest.cs
index 9c4aeca50fbcc96bd9353bf39ef7d7d9e43d06a2..6ccfd57a46b8f036ba84b0a4e1476139150b5440 100644 (file)
@@ -1,5 +1,3 @@
-/* $Id$ */
-
 /***
     This file is part of avahi.
 
@@ -32,37 +30,41 @@ public class AvahiTest {
     public static void Main () {
         client = new Client ();
 
+       Console.WriteLine ("joined service name: " + Client.JoinServiceName ("FooBar", "_foo", "local"));
+
         EntryGroup eg = new EntryGroup (client);
         eg.StateChanged += OnEntryGroupChanged;
-        eg.AddService ("foobar2", "_daap._tcp", client.DomainName,
-                       444, new string[] { "foo", "bar", "baz" });
+        eg.AddService ("foobar2", "_dingdong._tcp", client.DomainName,
+                       444, new string[] { "foo=stuff", "bar=stuff2", "baz=stuff3" });
         eg.Commit ();
+        BrowseServiceTypes ("local");
         Console.WriteLine ("Press enter to quit");
         Console.ReadLine ();
+        client.Dispose ();
     }
 
-    private static void OnEntryGroupChanged (object o, EntryGroupState state)
+    private static void OnEntryGroupChanged (object o, EntryGroupStateArgs args)
     {
-        Console.WriteLine ("Entry group status: " + state);
-        if (state == EntryGroupState.Established) {
+        Console.WriteLine ("Entry group status: " + args.State);
+        if (args.State == EntryGroupState.Established) {
             DomainBrowser browser = new DomainBrowser (client);
             objects.Add (browser);
-            
+
             browser.DomainAdded += OnDomainAdded;
         }
     }
 
-    private static void OnDomainAdded (object o, DomainInfo info)
+    private static void OnDomainAdded (object o, DomainInfoArgs args)
     {
-        Console.WriteLine ("Got domain added: " + info.Domain);
-        BrowseServiceTypes (info.Domain);
+        Console.WriteLine ("Got domain added: " + args.Domain.Domain);
+        // BrowseServiceTypes (args.Domain.Domain);
     }
 
     private static void BrowseServiceTypes (string domain)
     {
         ServiceTypeBrowser stb = new ServiceTypeBrowser (client, domain);
         objects.Add (stb);
-        
+
         stb.CacheExhausted += OnCacheExhausted;
         stb.ServiceTypeAdded += OnServiceTypeAdded;
     }
@@ -72,51 +74,58 @@ public class AvahiTest {
         Console.WriteLine ("Cache is exhausted");
     }
 
-    private static void OnServiceTypeAdded (object o, ServiceTypeInfo info)
+    private static void OnServiceTypeAdded (object o, ServiceTypeInfoArgs args)
     {
-        Console.WriteLine ("Got service type: " + info.ServiceType);
-        ServiceBrowser sb = new ServiceBrowser (client, info.ServiceType, info.Domain);
+        Console.WriteLine ("Got service type: " + args.ServiceType.ServiceType);
+        ServiceBrowser sb = new ServiceBrowser (client, args.ServiceType.ServiceType, args.ServiceType.Domain);
         objects.Add (sb);
-        
+
         sb.ServiceAdded += OnServiceAdded;
     }
 
-    private static void OnServiceAdded (object o, ServiceInfo info)
+    private static void OnServiceAdded (object o, ServiceInfoArgs args)
     {
         // Console.WriteLine ("Got service: " + info.Name);
-        ServiceResolver resolver = new ServiceResolver (client, info);
+        ServiceResolver resolver = new ServiceResolver (client, args.Service);
         objects.Add (resolver);
         resolver.Found += OnServiceResolved;
     }
 
-    private static void OnServiceResolved (object o, ServiceInfo info)
+    private static void OnServiceResolved (object o, ServiceInfoArgs args)
     {
         objects.Remove (o);
-        
-        Console.WriteLine ("Service '{0}' at {1}:{2}", info.Name, info.HostName, info.Port);
-        foreach (byte[] bytes in info.Text) {
+
+        Console.WriteLine ("Service '{0}' at {1}:{2}", args.Service.Name, args.Service.HostName, args.Service.Port);
+        foreach (byte[] bytes in args.Service.Text) {
             Console.WriteLine ("Text: " + Encoding.UTF8.GetString (bytes));
         }
-        AddressResolver ar = new AddressResolver (client, info.Address);
+
+        AddressResolver ar = new AddressResolver (client, args.Service.Address);
         objects.Add (ar);
-        
+
         ar.Found += OnAddressResolved;
+        ar.Failed += OnAddressResolverFailed;
+    }
+
+    private static void OnAddressResolverFailed (object o, ErrorCodeArgs args)
+    {
+        Console.WriteLine ("Failed to resolve '{0}': {1}", (o as AddressResolver).Address, args.ErrorCode);
     }
 
-    private static void OnAddressResolved (object o, string host, IPAddress address)
+    private static void OnAddressResolved (object o, HostAddressArgs args)
     {
         objects.Remove (o);
-        
-        Console.WriteLine ("Resolved {0} to {1}", address, host);
-        HostNameResolver hr = new HostNameResolver (client, host);
+
+        Console.WriteLine ("Resolved {0} to {1}", args.Address, args.Host);
+        HostNameResolver hr = new HostNameResolver (client, args.Host);
         objects.Add (hr);
-        
+
         hr.Found += OnHostNameResolved;
     }
 
-    private static void OnHostNameResolved (object o, string host, IPAddress address)
+    private static void OnHostNameResolved (object o, HostAddressArgs args)
     {
         objects.Remove (o);
-        Console.WriteLine ("Resolved {0} to {1}", host, address);
+        Console.WriteLine ("Resolved {0} to {1}", args.Host, args.Address);
     }
 }