X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;ds=inline;f=avahi-sharp%2FUtility.cs;h=f8b4ffd8982857d55b65f603f839efb666cfa6fd;hb=740bc001fb647255709b5385d5a8a19781722097;hp=d5bdeeb500f5737397c90d534eb7725574df7c3d;hpb=a21074b9ea4b11b74d114e2669248f979caf0d3a;p=catta diff --git a/avahi-sharp/Utility.cs b/avahi-sharp/Utility.cs index d5bdeeb..f8b4ffd 100644 --- a/avahi-sharp/Utility.cs +++ b/avahi-sharp/Utility.cs @@ -1,3 +1,5 @@ +/* $Id$ */ + /*** This file is part of avahi. @@ -34,6 +36,9 @@ namespace Avahi [DllImport ("avahi-common")] private static extern IntPtr avahi_address_snprint (IntPtr buf, int size, IntPtr address); + [DllImport ("avahi-common")] + private static extern IntPtr avahi_address_parse (IntPtr str, Protocol proto, IntPtr ret); + public static string PtrToString (IntPtr ptr) { if (ptr == IntPtr.Zero) @@ -72,6 +77,16 @@ namespace Avahi Stdlib.free (ptr); } + public static IntPtr AddressToPtr (IPAddress address) + { + IntPtr straddr = Utility.StringToPtr (address.ToString ()); + IntPtr addrPtr = Stdlib.malloc (32); + avahi_address_parse (straddr, Protocol.Unspecified, addrPtr); + Utility.Free (straddr); + + return addrPtr; + } + public static IPAddress PtrToAddress (IntPtr ptr) { IPAddress address = null;