Jacek Caban : wininet: Cache blocking state in netconn_t.
Alexandre Julliard
julliard at wine.codeweavers.com
Mon Jun 22 07:44:58 CDT 2015
Module: wine
Branch: master
Commit: 9d3fda008f07d9651df2c0894403b46d59e46845
URL: http://source.winehq.org/git/wine.git/?a=commit;h=9d3fda008f07d9651df2c0894403b46d59e46845
Author: Jacek Caban <jacek at codeweavers.com>
Date: Fri Jun 19 15:21:46 2015 +0200
wininet: Cache blocking state in netconn_t.
---
dlls/wininet/internet.h | 1 +
dlls/wininet/netconnection.c | 7 +++++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/wininet/internet.h b/dlls/wininet/internet.h
index 4044bbf..8c3a1f1 100644
--- a/dlls/wininet/internet.h
+++ b/dlls/wininet/internet.h
@@ -68,6 +68,7 @@ typedef struct
{
int socket;
BOOL secure;
+ BOOL is_blocking;
CtxtHandle ssl_ctx;
SecPkgContext_StreamSizes ssl_sizes;
server_t *server;
diff --git a/dlls/wininet/netconnection.c b/dlls/wininet/netconnection.c
index 983782d..7305860 100644
--- a/dlls/wininet/netconnection.c
+++ b/dlls/wininet/netconnection.c
@@ -282,8 +282,11 @@ void init_winsock(void)
static void set_socket_blocking(netconn_t *conn, BOOL is_blocking)
{
- ULONG arg = !is_blocking;
- ioctlsocket(conn->socket, FIONBIO, &arg);
+ if(conn->is_blocking != is_blocking) {
+ ULONG arg = !is_blocking;
+ ioctlsocket(conn->socket, FIONBIO, &arg);
+ }
+ conn->is_blocking = is_blocking;
}
static DWORD create_netconn_socket(server_t *server, netconn_t *netconn, DWORD timeout)
More information about the wine-cvs
mailing list