diff options
| -rw-r--r-- | avahi-sharp/AddressResolver.cs | 4 | ||||
| -rw-r--r-- | avahi-sharp/AvahiTest.cs | 2 | ||||
| -rw-r--r-- | avahi-sharp/Client.cs | 11 | ||||
| -rw-r--r-- | avahi-sharp/DomainBrowser.cs | 4 | ||||
| -rw-r--r-- | avahi-sharp/HostNameResolver.cs | 2 | ||||
| -rw-r--r-- | avahi-sharp/ServiceBrowser.cs | 10 | ||||
| -rw-r--r-- | avahi-sharp/ServiceResolver.cs | 8 | ||||
| -rw-r--r-- | avahi-sharp/ServiceTypeBrowser.cs | 4 | 
8 files changed, 29 insertions, 16 deletions
| diff --git a/avahi-sharp/AddressResolver.cs b/avahi-sharp/AddressResolver.cs index 8a0b66b..6b0d030 100644 --- a/avahi-sharp/AddressResolver.cs +++ b/avahi-sharp/AddressResolver.cs @@ -41,6 +41,7 @@ namespace Avahi          private int iface;          private Protocol proto;          private IPAddress address; +        private AddressResolverCallback cb;          private IPAddress currentAddress;          private string currentHost; @@ -100,6 +101,7 @@ namespace Avahi              this.iface = iface;              this.proto = proto;              this.address = address; +            cb = OnAddressResolverCallback;          }          ~AddressResolver () @@ -119,7 +121,7 @@ namespace Avahi              IntPtr addrPtr = Utility.StringToPtr (address.ToString ());              handle = avahi_address_resolver_new (client.Handle, iface, proto, addrPtr, -                                                 OnAddressResolverCallback, IntPtr.Zero); +                                                 cb, IntPtr.Zero);              Utility.Free (addrPtr);          } diff --git a/avahi-sharp/AvahiTest.cs b/avahi-sharp/AvahiTest.cs index 7be4b06..042bc28 100644 --- a/avahi-sharp/AvahiTest.cs +++ b/avahi-sharp/AvahiTest.cs @@ -73,7 +73,7 @@ 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));  		} diff --git a/avahi-sharp/Client.cs b/avahi-sharp/Client.cs index 3e4e617..84069fc 100644 --- a/avahi-sharp/Client.cs +++ b/avahi-sharp/Client.cs @@ -36,7 +36,9 @@ namespace Avahi          Removed      } -    internal delegate void ClientHandler (IntPtr client, ClientState state, IntPtr userData); +    internal delegate void ClientCallback (IntPtr client, ClientState state, IntPtr userData); + +    public delegate void ClientStateHandler (object o, ClientState state);      public enum Protocol {          Unspecified = 0, @@ -57,7 +59,7 @@ namespace Avahi          private IntPtr handle;          [DllImport ("avahi-client")] -        private static extern IntPtr avahi_client_new (IntPtr poll, ClientHandler handler, +        private static extern IntPtr avahi_client_new (IntPtr poll, ClientCallback handler,                                                         IntPtr userData, out int error);          [DllImport ("avahi-client")] @@ -87,6 +89,8 @@ namespace Avahi          [DllImport ("avahi-glib")]          private static extern IntPtr avahi_glib_poll_get (IntPtr gpoll); +        public event ClientStateHandler StateChanged; +          internal IntPtr Handle          {              get { return handle; } @@ -156,7 +160,8 @@ namespace Avahi          private void OnClientCallback (IntPtr client, ClientState state, IntPtr userData)          { -            Console.WriteLine ("Got new state: " + state); +            if (StateChanged != null) +                StateChanged (this, state);          }      }  } diff --git a/avahi-sharp/DomainBrowser.cs b/avahi-sharp/DomainBrowser.cs index db42265..cc93641 100644 --- a/avahi-sharp/DomainBrowser.cs +++ b/avahi-sharp/DomainBrowser.cs @@ -54,6 +54,7 @@ namespace Avahi          private Protocol proto;          private string domain;          private DomainBrowserType btype; +        private DomainBrowserCallback cb;          private ArrayList addListeners = new ArrayList ();          private ArrayList removeListeners = new ArrayList (); @@ -106,6 +107,7 @@ namespace Avahi              this.proto = proto;              this.domain = domain;              this.btype = btype; +            cb = OnDomainBrowserCallback;          }          ~DomainBrowser () @@ -125,7 +127,7 @@ namespace Avahi              IntPtr domainPtr = Utility.StringToPtr (domain);              handle = avahi_domain_browser_new (client.Handle, iface, (int) proto, domainPtr, (int) btype, -                                               OnDomainBrowserCallback, IntPtr.Zero); +                                               cb, IntPtr.Zero);              Utility.Free (domainPtr);          } diff --git a/avahi-sharp/HostNameResolver.cs b/avahi-sharp/HostNameResolver.cs index d5e4bf3..8b529c7 100644 --- a/avahi-sharp/HostNameResolver.cs +++ b/avahi-sharp/HostNameResolver.cs @@ -40,6 +40,7 @@ namespace Avahi          private Protocol proto;          private string hostname;          private Protocol aproto; +        private HostNameResolverCallback cb;          private IPAddress currentAddress;          private string currentHost; @@ -102,6 +103,7 @@ namespace Avahi              this.proto = proto;              this.hostname = hostname;              this.aproto = aproto; +            cb = OnHostNameResolverCallback;          }          ~HostNameResolver () diff --git a/avahi-sharp/ServiceBrowser.cs b/avahi-sharp/ServiceBrowser.cs index 3ed50bc..a96040c 100644 --- a/avahi-sharp/ServiceBrowser.cs +++ b/avahi-sharp/ServiceBrowser.cs @@ -37,7 +37,7 @@ namespace Avahi          public string ServiceType;          public string Name; -        public string Host; +        public string HostName;          public IPAddress Address;          public UInt16 Port;          public byte[][] Text; @@ -56,6 +56,7 @@ namespace Avahi          private Protocol proto;          private string domain;          private string type; +        private ServiceBrowserCallback cb;          private ArrayList addListeners = new ArrayList ();          private ArrayList removeListeners = new ArrayList (); @@ -113,8 +114,7 @@ namespace Avahi              this.proto = proto;              this.domain = domain;              this.type = type; -             -             +            cb = OnServiceBrowserCallback;          }          ~ServiceBrowser () @@ -135,7 +135,7 @@ namespace Avahi              IntPtr domainPtr = Utility.StringToPtr (domain);              IntPtr typePtr = Utility.StringToPtr (type);              handle = avahi_service_browser_new (client.Handle, iface, (int) proto, typePtr, domainPtr, -                                                OnServiceBrowserCallback, IntPtr.Zero); +                                                cb, IntPtr.Zero);              Utility.Free (domainPtr);              Utility.Free (typePtr);          } @@ -158,7 +158,7 @@ namespace Avahi              info.Domain = Utility.PtrToString (domain);              info.ServiceType = Utility.PtrToString (type);              info.Name = Utility.PtrToString (name); -            info.Host = null; +            info.HostName = null;              info.Address = null;              info.Port = 0;              info.Text = null; diff --git a/avahi-sharp/ServiceResolver.cs b/avahi-sharp/ServiceResolver.cs index 1b5d51a..ef1f303 100644 --- a/avahi-sharp/ServiceResolver.cs +++ b/avahi-sharp/ServiceResolver.cs @@ -44,6 +44,7 @@ namespace Avahi          private string type;          private string domain;          private Protocol aproto; +        private ServiceResolverCallback cb;          private ArrayList foundListeners = new ArrayList ();          private ArrayList timeoutListeners = new ArrayList (); @@ -119,8 +120,7 @@ namespace Avahi              this.type = type;              this.domain = domain;              this.aproto = aproto; -             -             +            cb = OnServiceResolverCallback;          }          ~ServiceResolver () @@ -142,7 +142,7 @@ namespace Avahi              IntPtr typePtr = Utility.StringToPtr (type);              IntPtr domainPtr = Utility.StringToPtr (domain);              handle = avahi_service_resolver_new (client.Handle, iface, proto, namePtr, typePtr, domainPtr, -                                                 aproto, OnServiceResolverCallback, IntPtr.Zero); +                                                 aproto, cb, IntPtr.Zero);              Utility.Free (namePtr);              Utility.Free (typePtr);              Utility.Free (domainPtr); @@ -167,7 +167,7 @@ namespace Avahi              info.Domain = Utility.PtrToString (domain);              info.ServiceType = Utility.PtrToString (type);              info.Name = Utility.PtrToString (name); -            info.Host = Utility.PtrToString (host); +            info.HostName = Utility.PtrToString (host);              info.Address = Utility.PtrToAddress (address);              info.Port = port; diff --git a/avahi-sharp/ServiceTypeBrowser.cs b/avahi-sharp/ServiceTypeBrowser.cs index c3b8159..e436da9 100644 --- a/avahi-sharp/ServiceTypeBrowser.cs +++ b/avahi-sharp/ServiceTypeBrowser.cs @@ -46,6 +46,7 @@ namespace Avahi          private int iface;          private Protocol proto;          private string domain; +        private ServiceTypeBrowserCallback cb;          private ArrayList addListeners = new ArrayList ();          private ArrayList removeListeners = new ArrayList (); @@ -101,6 +102,7 @@ namespace Avahi              this.iface = iface;              this.proto = proto;              this.domain = domain; +            cb = OnServiceTypeBrowserCallback;          }          ~ServiceTypeBrowser () @@ -120,7 +122,7 @@ namespace Avahi              IntPtr domainPtr = Utility.StringToPtr (domain);              handle = avahi_service_type_browser_new (client.Handle, iface, (int) proto, domainPtr, -                                                     OnServiceTypeBrowserCallback, IntPtr.Zero); +                                                     cb, IntPtr.Zero);              Utility.Free (domainPtr);          } | 
