Jacek Caban : wininet: Use WSAGetLastError in sock_get_error in Windows builds.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Feb 12 10:13:40 CST 2015
Module: wine
Branch: master
Commit: cafbd5445789b74079c3ec076e906c765266348e
URL: http://source.winehq.org/git/wine.git/?a=commit;h=cafbd5445789b74079c3ec076e906c765266348e
Author: Jacek Caban <jacek at codeweavers.com>
Date: Wed Feb 11 19:37:37 2015 +0100
wininet: Use WSAGetLastError in sock_get_error in Windows builds.
---
dlls/wininet/ftp.c | 2 +-
dlls/wininet/internet.h | 2 +-
dlls/wininet/netconnection.c | 23 +++++++++++------------
3 files changed, 13 insertions(+), 14 deletions(-)
diff --git a/dlls/wininet/ftp.c b/dlls/wininet/ftp.c
index 3be5af6..a28865f 100644
--- a/dlls/wininet/ftp.c
+++ b/dlls/wininet/ftp.c
@@ -1239,7 +1239,7 @@ static DWORD FTPFILE_WriteFile(object_header_t *hdr, const void *buffer, DWORD s
res = sock_send(lpwh->nDataSocket, buffer, size, 0);
*written = res>0 ? res : 0;
- return res >= 0 ? ERROR_SUCCESS : sock_get_error(errno);
+ return res >= 0 ? ERROR_SUCCESS : sock_get_error();
}
static void FTP_ReceiveRequestData(ftp_file_t *file, BOOL first_notif)
diff --git a/dlls/wininet/internet.h b/dlls/wininet/internet.h
index 49f7bf5..b0a0db5 100644
--- a/dlls/wininet/internet.h
+++ b/dlls/wininet/internet.h
@@ -459,7 +459,7 @@ BOOL NETCON_is_alive(netconn_t*) DECLSPEC_HIDDEN;
LPCVOID NETCON_GetCert(netconn_t *connection) DECLSPEC_HIDDEN;
int NETCON_GetCipherStrength(netconn_t*) DECLSPEC_HIDDEN;
DWORD NETCON_set_timeout(netconn_t *connection, BOOL send, DWORD value) DECLSPEC_HIDDEN;
-int sock_get_error(int) DECLSPEC_HIDDEN;
+int sock_get_error(void) DECLSPEC_HIDDEN;
int sock_send(int fd, const void *msg, size_t len, int flags) DECLSPEC_HIDDEN;
int sock_recv(int fd, void *msg, size_t len, int flags) DECLSPEC_HIDDEN;
diff --git a/dlls/wininet/netconnection.c b/dlls/wininet/netconnection.c
index debc271..7695e14 100644
--- a/dlls/wininet/netconnection.c
+++ b/dlls/wininet/netconnection.c
@@ -328,7 +328,7 @@ static DWORD create_netconn_socket(server_t *server, netconn_t *netconn, DWORD t
result = connect(netconn->socket, (struct sockaddr*)&server->addr, server->addr_len);
if(result == -1)
{
- if (sock_get_error(errno) == WSAEINPROGRESS) {
+ if (sock_get_error() == WSAEINPROGRESS) {
struct pollfd pfd;
int res;
@@ -442,10 +442,12 @@ void NETCON_unload(void)
}
/* translate a unix error code into a winsock one */
-int sock_get_error( int err )
+int sock_get_error(void)
{
-#if !defined(__MINGW32__) && !defined (_MSC_VER)
- switch (err)
+#if defined(__MINGW32__) || defined(_MSC_VER)
+ return WSAGetLastError();
+#else
+ switch (errno)
{
case EINTR: return WSAEINTR;
case EBADF: return WSAEBADF;
@@ -502,10 +504,9 @@ int sock_get_error( int err )
#ifdef EREMOTE
case EREMOTE: return WSAEREMOTE;
#endif
- default: errno=err; perror("sock_set_error"); return WSAEFAULT;
+ default: perror("sock_get_error"); return WSAEFAULT;
}
#endif
- return err;
}
int sock_send(int fd, const void *msg, size_t len, int flags)
@@ -771,9 +772,7 @@ DWORD NETCON_send(netconn_t *connection, const void *msg, size_t len, int flags,
if(!connection->secure)
{
*sent = sock_send(connection->socket, msg, len, flags);
- if (*sent == -1)
- return sock_get_error(errno);
- return ERROR_SUCCESS;
+ return *sent == -1 ? sock_get_error() : ERROR_SUCCESS;
}
else
{
@@ -948,7 +947,7 @@ DWORD NETCON_recv(netconn_t *connection, void *buf, size_t len, blocking_mode_t
set_socket_blocking(connection->socket, mode);
*recvd = sock_recv(connection->socket, buf, len, flags);
- return *recvd == -1 ? sock_get_error(errno) : ERROR_SUCCESS;
+ return *recvd == -1 ? sock_get_error() : ERROR_SUCCESS;
}
else
{
@@ -1103,8 +1102,8 @@ DWORD NETCON_set_timeout(netconn_t *connection, BOOL send, DWORD value)
sizeof(tv));
if (result == -1)
{
- WARN("setsockopt failed (%s)\n", strerror(errno));
- return sock_get_error(errno);
+ WARN("setsockopt failed\n");
+ return sock_get_error();
}
return ERROR_SUCCESS;
}
More information about the wine-cvs
mailing list