From b0f31f578b0669b598d3ded3a625685b125bef1d Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Tue, 3 Oct 2017 20:28:09 -0700 Subject: Improve UDP test coverage, fix numerous issues found. We introduced richer, deeper tests for UDP functionality. These tests uncovered a number of issues which this commit fixes. The Windows IOCP code needs to support multiple aios on a single nni_win_event. A redesign of the IOCP handling addresses that. The POSIX UDP code also needed fixes; foremost among them is the fact that the UDP file descriptor is not placed into non-blocking mode, leading to potential hangs. A number of race conditions and bugs along the implementation of the above items were uncovered and fixed. To the best of our knowledge the current code is bug-free. --- src/platform/windows/win_debug.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'src/platform/windows/win_debug.c') diff --git a/src/platform/windows/win_debug.c b/src/platform/windows/win_debug.c index 5c6c3fb5..0113af58 100644 --- a/src/platform/windows/win_debug.c +++ b/src/platform/windows/win_debug.c @@ -83,8 +83,9 @@ nni_plat_errno(int errnum) static struct { int win_err; int nng_err; -} nni_win_errnos[] = { - // clang-format off +} nni_win_errnos[] = + { + // clang-format off { ERROR_FILE_NOT_FOUND, NNG_ENOENT }, { ERROR_ACCESS_DENIED, NNG_EPERM }, { ERROR_INVALID_HANDLE, NNG_ECLOSED }, @@ -114,6 +115,10 @@ static struct { { WSAENOPROTOOPT, NNG_ENOTSUP }, { WSAEPROTONOSUPPORT, NNG_ENOTSUP }, { WSAEPROTONOSUPPORT, NNG_ENOTSUP }, + { WSAESOCKTNOSUPPORT, NNG_ENOTSUP }, + { WSAEOPNOTSUPP, NNG_ENOTSUP }, + { WSAEPFNOSUPPORT, NNG_ENOTSUP }, + { WSAEAFNOSUPPORT, NNG_ENOTSUP }, { WSAEADDRINUSE, NNG_EADDRINUSE }, { WSAEADDRNOTAVAIL, NNG_EADDRINVAL }, { WSAENETDOWN, NNG_EUNREACHABLE }, @@ -137,8 +142,8 @@ static struct { // Must be Last!! { 0, 0 }, - // clang-format on -}; + // clang-format on + }; // This converts a Windows API error (from GetLastError()) to an // nng standard error code. -- cgit v1.2.3-70-g09d2