Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ ProcessResult()

static unsafe void System.Net.NameResolutionPal.ProcessResult ( SocketError errorCode,
GetAddrInfoExContext * context )
inlinestaticprivate

Definition at line 313 of file NameResolutionPal.cs.

314 {
315 try
316 {
317 GetAddrInfoExState getAddrInfoExState = GetAddrInfoExState.FromHandleAndFree(context->QueryStateHandle);
318 CancellationToken token = getAddrInfoExState.UnregisterAndGetCancellationToken();
319 if (errorCode == SocketError.Success)
320 {
321 string hostName;
322 IPAddress[] array = ParseAddressInfoEx(context->Result, getAddrInfoExState.JustAddresses, out hostName);
323 getAddrInfoExState.SetResult(getAddrInfoExState.JustAddresses ? ((object)array) : ((object)new IPHostEntry
324 {
325 HostName = (hostName ?? getAddrInfoExState.HostName),
326 Aliases = Array.Empty<string>(),
327 AddressList = array
328 }));
329 }
330 else
331 {
332 Exception currentStackTrace = ((errorCode == (SocketError)10111 && token.IsCancellationRequested) ? ((Exception)new OperationCanceledException(token)) : ((Exception)(object)new SocketException((int)errorCode)));
333 getAddrInfoExState.SetResult(ExceptionDispatchInfo.SetCurrentStackTrace(currentStackTrace));
334 }
335 }
336 finally
337 {
338 GetAddrInfoExContext.FreeContext(context);
339 }
340 }
static unsafe IPAddress[] ParseAddressInfoEx(global::Interop.Winsock.AddressInfoEx *addressInfoExPtr, bool justAddresses, out string hostName)

References System.array, System.Net.NameResolutionPal.GetAddrInfoExContext.FreeContext(), System.Net.NameResolutionPal.GetAddrInfoExState.FromHandleAndFree(), System.Net.NameResolutionPal.GetAddrInfoExState.HostName, System.Threading.CancellationToken.IsCancellationRequested, System.Net.NameResolutionPal.GetAddrInfoExState.JustAddresses, System.Net.NameResolutionPal.ParseAddressInfoEx(), System.Net.NameResolutionPal.GetAddrInfoExContext.QueryStateHandle, System.Net.NameResolutionPal.GetAddrInfoExContext.Result, System.Runtime.ExceptionServices.ExceptionDispatchInfo.SetCurrentStackTrace(), System.Net.NameResolutionPal.GetAddrInfoExState.SetResult(), and System.Net.NameResolutionPal.GetAddrInfoExState.UnregisterAndGetCancellationToken().

Referenced by System.Net.NameResolutionPal.GetAddressInfoExCallback(), and System.Net.NameResolutionPal.GetAddrInfoAsync().