From 9127a5bae731e1ea17289433319ab2ca62dfb2ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnther=20Foidl?= Date: Tue, 19 Jan 2021 13:47:20 +0100 Subject: [PATCH 1/2] Removed dead code from SystemNative_GetHostEntryForNameAsync --- src/libraries/Native/Unix/System.Native/pal_networking.c | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/libraries/Native/Unix/System.Native/pal_networking.c b/src/libraries/Native/Unix/System.Native/pal_networking.c index 5e0f37635d3264..fddcac9b6780a3 100644 --- a/src/libraries/Native/Unix/System.Native/pal_networking.c +++ b/src/libraries/Native/Unix/System.Native/pal_networking.c @@ -601,12 +601,6 @@ int32_t SystemNative_GetHostEntryForNameAsync(const uint8_t* address, int32_t ad return GetAddrInfoErrorFlags_EAI_BADARG; } - sa_family_t platformFamily; - if (!TryConvertAddressFamilyPalToPlatform(addressFamily, &platformFamily)) - { - return GetAddrInfoErrorFlags_EAI_FAMILY; - } - struct GetAddrInfoAsyncState* state = malloc(sizeof(*state) + addrlen + 1); if (state == NULL) From ff88f1774c4493524e6801236e10dee5a1444886 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?G=C3=BCnther=20Foidl?= Date: Tue, 19 Jan 2021 16:56:56 +0100 Subject: [PATCH 2/2] Fixed loss of address-family --- .../Unix/System.Native/pal_networking.c | 30 +++++++++---------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/src/libraries/Native/Unix/System.Native/pal_networking.c b/src/libraries/Native/Unix/System.Native/pal_networking.c index fddcac9b6780a3..67d41f9a48d761 100644 --- a/src/libraries/Native/Unix/System.Native/pal_networking.c +++ b/src/libraries/Native/Unix/System.Native/pal_networking.c @@ -616,24 +616,22 @@ int32_t SystemNative_GetHostEntryForNameAsync(const uint8_t* address, int32_t ad memcpy(state->address, address, addrlen + 1); - *state = (struct GetAddrInfoAsyncState) { - .gai_request = { - .ar_name = state->address, - .ar_service = NULL, - .ar_request = &state->hint, - .ar_result = NULL - }, - .gai_requests = &state->gai_request, - .sigevent = { - .sigev_notify = SIGEV_THREAD, - .sigev_value = { - .sival_ptr = state - }, - .sigev_notify_function = GetHostEntryForNameAsyncComplete + state->gai_request = (struct gaicb) { + .ar_name = state->address, + .ar_service = NULL, + .ar_request = &state->hint, + .ar_result = NULL + }; + state->gai_requests = &state->gai_request; + state->sigevent = (struct sigevent) { + .sigev_notify = SIGEV_THREAD, + .sigev_value = { + .sival_ptr = state }, - .entry = entry, - .callback = callback + .sigev_notify_function = GetHostEntryForNameAsyncComplete }; + state->entry = entry; + state->callback = callback; atomic_thread_fence(memory_order_release);