]> git.meshlink.io Git - catta/blobdiff - avahi-sharp/HostNameResolver.cs
### BACKPORT ###
[catta] / avahi-sharp / HostNameResolver.cs
index fad5d77498c604dfe013e50174d3030f60561822..44febcdf4d1a8f4d2bc4703978bdb936deb4f501 100644 (file)
@@ -32,7 +32,7 @@ namespace Avahi
                                                      ResolverEvent revent, IntPtr hostname, IntPtr address,
                                                      LookupResultFlags flags, IntPtr userdata);
 
-    public class HostNameResolver : IDisposable
+    public class HostNameResolver : ResolverBase, IDisposable
     {
         private IntPtr handle;
         private Client client;
@@ -151,18 +151,24 @@ namespace Avahi
                                                  ResolverEvent revent, IntPtr hostname, IntPtr address,
                                                  LookupResultFlags flags, IntPtr userdata)
         {
-            if (revent == ResolverEvent.Found) {
+            switch (revent) {
+            case ResolverEvent.Found:
                 currentAddress = Utility.PtrToAddress (address);
                 currentHost = Utility.PtrToString (hostname);
 
                 foreach (HostAddressHandler handler in foundListeners)
                     handler (this, currentHost, currentAddress);
-            } else {
+                break;
+            case ResolverEvent.Timeout:
                 currentAddress = null;
                 currentHost = null;
                 
                 foreach (EventHandler handler in timeoutListeners)
                     handler (this, new EventArgs ());
+                break;
+            default:
+                EmitResolverEvent (revent);
+                break;
             }
         }
     }