diff options
Diffstat (limited to 'avahi-sharp/Client.cs')
-rw-r--r-- | avahi-sharp/Client.cs | 50 |
1 files changed, 10 insertions, 40 deletions
diff --git a/avahi-sharp/Client.cs b/avahi-sharp/Client.cs index e148ff3..73b6f57 100644 --- a/avahi-sharp/Client.cs +++ b/avahi-sharp/Client.cs @@ -29,8 +29,6 @@ namespace Avahi { internal enum ResolverEvent { Found, - Timeout, - NotFound, Failure } @@ -39,7 +37,6 @@ namespace Avahi Removed, CacheExhausted, AllForNow, - NotFound, Failure } @@ -66,8 +63,7 @@ namespace Avahi public enum LookupFlags { None = 0, UseWideArea = 1, - UseMulticast = 2, - NoTxt = 4, + UseMulticast = 4, NoAddress = 8 } @@ -76,7 +72,9 @@ namespace Avahi None = 0, Cached = 1, WideArea = 2, - Multicast = 4 + Multicast = 4, + Local = 8, + OurOwn = 16, } public class Client : IDisposable @@ -123,7 +121,7 @@ namespace Avahi private static extern void avahi_simple_poll_free (IntPtr spoll); [DllImport ("avahi-common")] - private static extern int avahi_simple_poll_iterate (IntPtr spoll, int timeout); + private static extern int avahi_simple_poll_loop (IntPtr spoll); [DllImport ("avahi-common")] private static extern void avahi_simple_poll_set_func (IntPtr spoll, PollCallback cb); @@ -134,10 +132,6 @@ namespace Avahi [DllImport ("avahi-client")] private static extern uint avahi_client_get_local_service_cookie (IntPtr client); - [DllImport ("avahi-client")] - private static extern int avahi_client_is_service_local (IntPtr client, int iface, Protocol proto, - IntPtr name, IntPtr type, IntPtr domain); - [DllImport ("libc")] private static extern int poll(IntPtr ufds, uint nfds, int timeout); @@ -203,11 +197,11 @@ namespace Avahi } } - internal int LastError + internal ErrorCode LastError { get { lock (this) { - return avahi_client_errno (handle); + return (ErrorCode) avahi_client_errno (handle); } } } @@ -250,32 +244,11 @@ namespace Avahi } } - public bool IsServiceLocal (ServiceInfo service) - { - return IsServiceLocal (service.NetworkInterface, service.Protocol, service.Name, - service.ServiceType, service.Domain); - } - - public bool IsServiceLocal (int iface, Protocol proto, string name, string type, string domain) - { - IntPtr namePtr = Utility.StringToPtr (name); - IntPtr typePtr = Utility.StringToPtr (type); - IntPtr domainPtr = Utility.StringToPtr (domain); - - int result = avahi_client_is_service_local (handle, iface, proto, namePtr, typePtr, domainPtr); - - Utility.Free (namePtr); - Utility.Free (typePtr); - Utility.Free (domainPtr); - - return result == 1; - } - internal void CheckError () { - int error = LastError; + ErrorCode error = LastError; - if (error != 0) + if (error != ErrorCode.Ok) throw new ClientException (error); } @@ -295,10 +268,7 @@ namespace Avahi private void PollLoop () { try { lock (this) { - while (true) { - if (avahi_simple_poll_iterate (spoll, -1) != 0) - break; - } + avahi_simple_poll_loop (spoll); } } catch (ThreadAbortException e) { } catch (Exception e) { |