// Resolve(buffer<unknown<0x100>, 0x15>) -> buffer<unknown<0x100>, 0x16> public ResultCode Resolve(ServiceCtx context) { (long outputPosition, long outputSize) = context.Request.GetBufferType0x22(); ResultCode result = _fqdnResolver.ResolveEx(context, out ResultCode errorCode, out string resolvedAddress); byte[] resolvedAddressBuffer = Encoding.UTF8.GetBytes(resolvedAddress + '\0'); context.Memory.WriteBytes(outputPosition, resolvedAddressBuffer); return(result); }
// Resolve(buffer<unknown<0x100>, 0x15>) -> buffer<unknown<0x100>, 0x16> public ResultCode Resolve(ServiceCtx context) { long outputPosition = context.Request.ReceiveBuff[0].Position; long outputSize = context.Request.ReceiveBuff[0].Size; ResultCode result = _fqdnResolver.ResolveEx(context, out ResultCode errorCode, out string resolvedAddress); byte[] resolvedAddressBuffer = Encoding.UTF8.GetBytes(resolvedAddress + '\0'); context.Memory.Write((ulong)outputPosition, resolvedAddressBuffer); return(result); }
// Resolve(buffer<unknown<0x100>, 0x15>) -> buffer<unknown<0x100>, 0x16> public ResultCode Resolve(ServiceCtx context) { ulong outputPosition = context.Request.ReceiveBuff[0].Position; ulong outputSize = context.Request.ReceiveBuff[0].Size; ResultCode result = _fqdnResolver.ResolveEx(context, out _, out string resolvedAddress); if ((ulong)resolvedAddress.Length > outputSize) { return(ResultCode.InvalidArgument); } byte[] resolvedAddressBuffer = Encoding.UTF8.GetBytes(resolvedAddress); MemoryHelper.FillWithZeros(context.Memory, outputPosition, (int)outputSize); context.Memory.Write(outputPosition, resolvedAddressBuffer); return(result); }