public static void SplitServiceName(string service, out string name, out string type, out string domain)
{
int len = 1024;
IntPtr namePtr = Stdlib.malloc ((ulong) len);
IntPtr typePtr = Stdlib.malloc ((ulong) len);
IntPtr domainPtr = Stdlib.malloc ((ulong) len);
int ret = avahi_service_name_split (Utility.StringToBytes (service), namePtr, len, typePtr, len,
domainPtr, len);
if (ret < 0) {
Utility.Free (namePtr);
Utility.Free (typePtr);
Utility.Free (domainPtr);
name = null;
type = null;
domain = null;
return;
}
name = Utility.PtrToString (namePtr);
type = Utility.PtrToString (typePtr);
domain = Utility.PtrToString (domainPtr);
Utility.Free (namePtr);
Utility.Free (typePtr);
Utility.Free (domainPtr);
}