[WS2_32] fix various ws2_32:sock failures with return codes. By Peter Hater. CORE...
authorChristoph von Wittich <christoph_vw@reactos.org>
Fri, 7 Oct 2016 16:17:49 +0000 (16:17 +0000)
committerChristoph von Wittich <christoph_vw@reactos.org>
Fri, 7 Oct 2016 16:17:49 +0000 (16:17 +0000)
svn path=/trunk/; revision=72924

reactos/dll/win32/ws2_32/src/addrinfo.c

index f303f0b..540f85e 100644 (file)
@@ -556,6 +556,7 @@ GetAddrInfoW(IN PCWSTR pszNodeName,
         iFlags = ptHints->ai_flags;
         if ((iFlags & AI_CANONNAME) && !pszNodeName)
         {
+            SetLastError(EAI_BADFLAGS);
             return EAI_BADFLAGS;
         }
 
@@ -563,6 +564,7 @@ GetAddrInfoW(IN PCWSTR pszNodeName,
         iFamily = ptHints->ai_family;
         if ((iFamily != PF_UNSPEC) && (iFamily != PF_INET))
         {
+            SetLastError(EAI_FAMILY);
             return EAI_FAMILY;
         }
 
@@ -573,6 +575,7 @@ GetAddrInfoW(IN PCWSTR pszNodeName,
             (iSocketType != SOCK_DGRAM) &&
             (iSocketType != SOCK_RAW))
         {
+            SetLastError(EAI_SOCKTYPE);
             return EAI_SOCKTYPE;
         }
 
@@ -638,6 +641,7 @@ GetAddrInfoW(IN PCWSTR pszNodeName,
             /* If we got 0, then fail */
             if (wPort == 0)
             {
+                SetLastError(EAI_SERVICE);
                 return EAI_SERVICE;
             }
 
@@ -751,6 +755,7 @@ GetAddrInfoW(IN PCWSTR pszNodeName,
     }
 
     /* Return to caller */
+    SetLastError(iError);
     return iError;
 }
 
@@ -908,6 +913,7 @@ GetNameInfoW(IN CONST SOCKADDR *pSockaddr,
     else
     {
         /* Unsupported family */
+        SetLastError(EAI_FAMILY);
         return EAI_FAMILY;
     }