[PATCH v2 1/2] winhttp: Introduce netconn_wait_overlapped_result() helper.
Paul Gofman
wine at gitlab.winehq.org
Wed Jun 8 18:35:03 CDT 2022
From: Paul Gofman <pgofman at codeweavers.com>
Signed-off-by: Paul Gofman <pgofman at codeweavers.com>
---
dlls/winhttp/net.c | 7 +++++++
dlls/winhttp/request.c | 4 ++--
dlls/winhttp/winhttp_private.h | 1 +
3 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/dlls/winhttp/net.c b/dlls/winhttp/net.c
index 17520a54f63..a17582c90a6 100644
--- a/dlls/winhttp/net.c
+++ b/dlls/winhttp/net.c
@@ -51,6 +51,13 @@ static int sock_send(int fd, const void *msg, size_t len, WSAOVERLAPPED *ovr)
return -1;
}
+BOOL netconn_wait_overlapped_result( struct netconn *conn, WSAOVERLAPPED *ovr, DWORD *len )
+{
+ DWORD retflags;
+
+ return WSAGetOverlappedResult( conn->socket, ovr, len, TRUE, &retflags );
+}
+
static int sock_recv(int fd, void *msg, size_t len, int flags)
{
int ret;
diff --git a/dlls/winhttp/request.c b/dlls/winhttp/request.c
index 2754dc29163..7fb582362aa 100644
--- a/dlls/winhttp/request.c
+++ b/dlls/winhttp/request.c
@@ -3336,9 +3336,9 @@ static DWORD send_frame( struct socket *socket, enum socket_opcode opcode, USHOR
static DWORD complete_send_frame( struct socket *socket, WSAOVERLAPPED *ovr, const char *buf )
{
- DWORD ret, retflags, len, i;
+ DWORD ret, len, i;
- if (!WSAGetOverlappedResult( socket->request->netconn->socket, ovr, &len, TRUE, &retflags ))
+ if (!netconn_wait_overlapped_result( socket->request->netconn, ovr, &len ))
return WSAGetLastError();
if (socket->bytes_in_send_frame_buffer)
diff --git a/dlls/winhttp/winhttp_private.h b/dlls/winhttp/winhttp_private.h
index 98e05f068ba..6c381af627f 100644
--- a/dlls/winhttp/winhttp_private.h
+++ b/dlls/winhttp/winhttp_private.h
@@ -371,6 +371,7 @@ DWORD netconn_recv( struct netconn *, void *, size_t, int, int * ) DECLSPEC_HIDD
DWORD netconn_resolve( WCHAR *, INTERNET_PORT, struct sockaddr_storage *, int ) DECLSPEC_HIDDEN;
DWORD netconn_secure_connect( struct netconn *, WCHAR *, DWORD, CredHandle *, BOOL ) DECLSPEC_HIDDEN;
DWORD netconn_send( struct netconn *, const void *, size_t, int *, WSAOVERLAPPED * ) DECLSPEC_HIDDEN;
+BOOL netconn_wait_overlapped_result( struct netconn *conn, WSAOVERLAPPED *ovr, DWORD *len ) DECLSPEC_HIDDEN;
void netconn_cancel_io( struct netconn *conn ) DECLSPEC_HIDDEN;
DWORD netconn_set_timeout( struct netconn *, BOOL, int ) DECLSPEC_HIDDEN;
BOOL netconn_is_alive( struct netconn * ) DECLSPEC_HIDDEN;
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/210
More information about the wine-devel
mailing list