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);
}