Jacek Caban : wininet: Use set_socket_blocking helper in a few more places.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Feb 13 07:55:57 CST 2015
Module: wine
Branch: master
Commit: 5d6d2fda7b32d37a1187a57a7d90f70b8b6475cd
URL: http://source.winehq.org/git/wine.git/?a=commit;h=5d6d2fda7b32d37a1187a57a7d90f70b8b6475cd
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Feb 13 12:11:39 2015 +0100
wininet: Use set_socket_blocking helper in a few more places.
---
dlls/wininet/netconnection.c | 33 ++++++++++++---------------------
1 file changed, 12 insertions(+), 21 deletions(-)
diff --git a/dlls/wininet/netconnection.c b/dlls/wininet/netconnection.c
index a7cbf6a..cf567ae 100644
--- a/dlls/wininet/netconnection.c
+++ b/dlls/wininet/netconnection.c
@@ -346,6 +346,14 @@ void init_winsock(void)
#endif
}
+static void set_socket_blocking(int socket, blocking_mode_t mode)
+{
+#ifdef USE_WINSOCK
+ ULONG arg = mode == BLOCKING_DISALLOW;
+ ioctlsocket(socket, FIONBIO, &arg);
+#endif
+}
+
static DWORD create_netconn_socket(server_t *server, netconn_t *netconn, DWORD timeout)
{
int result;
@@ -357,8 +365,7 @@ static DWORD create_netconn_socket(server_t *server, netconn_t *netconn, DWORD t
assert(server->addr_len);
result = netconn->socket = socket(server->addr.ss_family, SOCK_STREAM, 0);
if(result != -1) {
- flag = 1;
- ioctlsocket(netconn->socket, FIONBIO, &flag);
+ set_socket_blocking(netconn->socket, BLOCKING_DISALLOW);
result = connect(netconn->socket, (struct sockaddr*)&server->addr, server->addr_len);
if(result == -1)
{
@@ -391,8 +398,7 @@ static DWORD create_netconn_socket(server_t *server, netconn_t *netconn, DWORD t
netconn->socket = -1;
}
else {
- flag = 0;
- ioctlsocket(netconn->socket, FIONBIO, &flag);
+ set_socket_blocking(netconn->socket, BLOCKING_ALLOW);
}
}
if(result == -1)
@@ -573,14 +579,6 @@ int sock_recv(int fd, void *msg, size_t len, int flags)
return ret;
}
-static void set_socket_blocking(int socket, blocking_mode_t mode)
-{
-#ifdef USE_WINSOCK
- ULONG arg = mode == BLOCKING_DISALLOW;
- ioctlsocket(socket, FIONBIO, &arg);
-#endif
-}
-
static DWORD netcon_secure_connect_setup(netconn_t *connection, BOOL compat_mode)
{
SecBuffer out_buf = {0, SECBUFFER_TOKEN, NULL}, in_bufs[2] = {{0, SECBUFFER_TOKEN}, {0, SECBUFFER_EMPTY}};
@@ -1079,19 +1077,12 @@ BOOL NETCON_is_alive(netconn_t *netconn)
len = sock_recv(netconn->socket, &b, 1, MSG_PEEK|MSG_DONTWAIT);
return len == 1 || (len == -1 && sock_get_error() == WSAEWOULDBLOCK);
#elif defined(USE_WINSOCK)
- ULONG mode;
int len;
char b;
- mode = 1;
- if(ioctlsocket(netconn->socket, FIONBIO, &mode))
- return FALSE;
-
+ set_socket_blocking(netconn->socket, BLOCKING_DISALLOW);
len = sock_recv(netconn->socket, &b, 1, MSG_PEEK);
-
- mode = 0;
- if(ioctlsocket(netconn->socket, FIONBIO, &mode))
- return FALSE;
+ set_socket_blocking(netconn->socket, BLOCKING_ALLOW);
return len == 1 || (len == -1 && sock_get_error() == WSAEWOULDBLOCK);
#else
More information about the wine-cvs
mailing list