Jacek Caban : wininet: Use sock_get_error in a few more places.

Alexandre Julliard julliard at wine.codeweavers.com
Thu Feb 12 10:13:40 CST 2015


Module: wine
Branch: master
Commit: c815baf8995f3a44940d5bec9777377a88162c4c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=c815baf8995f3a44940d5bec9777377a88162c4c

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Wed Feb 11 19:37:51 2015 +0100

wininet: Use sock_get_error in a few more places.

---

 dlls/wininet/netconnection.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/dlls/wininet/netconnection.c b/dlls/wininet/netconnection.c
index 7695e14..6747a81 100644
--- a/dlls/wininet/netconnection.c
+++ b/dlls/wininet/netconnection.c
@@ -62,12 +62,14 @@
 #ifdef HAVE_NETINET_TCP_H
 # include <netinet/tcp.h>
 #endif
+#if !defined(__MINGW32__) && !defined(_MSC_VER)
+#include <errno.h>
+#endif
 
 #include <stdarg.h>
 #include <stdlib.h>
 #include <string.h>
 #include <stdio.h>
-#include <errno.h>
 #include <assert.h>
 
 #include "wine/library.h"
@@ -456,6 +458,9 @@ int sock_get_error(void)
         case EFAULT:            return WSAEFAULT;
         case EINVAL:            return WSAEINVAL;
         case EMFILE:            return WSAEMFILE;
+#if EAGAIN != EWOULDBLOCK
+        case EAGAIN:
+#endif
         case EWOULDBLOCK:       return WSAEWOULDBLOCK;
         case EINPROGRESS:       return WSAEINPROGRESS;
         case EALREADY:          return WSAEALREADY;
@@ -516,7 +521,7 @@ int sock_send(int fd, const void *msg, size_t len, int flags)
     {
         ret = send(fd, msg, len, flags);
     }
-    while(ret == -1 && errno == EINTR);
+    while(ret == -1 && sock_get_error() == WSAEINTR);
     return ret;
 }
 
@@ -527,7 +532,7 @@ int sock_recv(int fd, void *msg, size_t len, int flags)
     {
         ret = recv(fd, msg, len, flags);
     }
-    while(ret == -1 && errno == EINTR);
+    while(ret == -1 && sock_get_error() == WSAEINTR);
     return ret;
 }
 
@@ -824,7 +829,7 @@ static BOOL read_ssl_chunk(netconn_t *conn, void *buf, SIZE_T buf_size, blocking
     size = sock_recv(conn->socket, conn->ssl_buf+buf_len, ssl_buf_size-buf_len, tmp_mode == BLOCKING_ALLOW ? 0 : WINE_MSG_DONTWAIT);
     if(size < 0) {
         if(!buf_len) {
-            if(errno == EAGAIN || errno == EWOULDBLOCK) {
+            if(sock_get_error() == WSAEWOULDBLOCK) {
                 TRACE("would block\n");
                 return WSAEWOULDBLOCK;
             }
@@ -864,7 +869,7 @@ static BOOL read_ssl_chunk(netconn_t *conn, void *buf, SIZE_T buf_size, blocking
             set_socket_blocking(conn->socket, mode);
             size = sock_recv(conn->socket, conn->ssl_buf+buf_len, ssl_buf_size-buf_len, mode == BLOCKING_ALLOW ? 0 : WINE_MSG_DONTWAIT);
             if(size < 1) {
-                if(size < 0 && (errno == EAGAIN || errno == EWOULDBLOCK)) {
+                if(size < 0 && sock_get_error() == WSAEWOULDBLOCK) {
                     TRACE("would block\n");
 
                     /* FIXME: Optimize extra_buf usage. */
@@ -1035,7 +1040,7 @@ BOOL NETCON_is_alive(netconn_t *netconn)
     BYTE b;
 
     len = sock_recv(netconn->socket, &b, 1, MSG_PEEK|MSG_DONTWAIT);
-    return len == 1 || (len == -1 && errno == EWOULDBLOCK);
+    return len == 1 || (len == -1 && sock_get_error() == WSAEWOULDBLOCK);
 #elif defined(__MINGW32__) || defined(_MSC_VER)
     ULONG mode;
     int len;
@@ -1051,7 +1056,7 @@ BOOL NETCON_is_alive(netconn_t *netconn)
     if(!ioctlsocket(netconn->socket, FIONBIO, &mode))
         return FALSE;
 
-    return len == 1 || (len == -1 && errno == WSAEWOULDBLOCK);
+    return len == 1 || (len == -1 && sock_get_error() == WSAEWOULDBLOCK);
 #else
     FIXME("not supported on this platform\n");
     return TRUE;




More information about the wine-cvs mailing list