Skip to content
Snippets Groups Projects
Commit 2a9a5471 authored by Steve Lhomme's avatar Steve Lhomme Committed by Felix Paul Kühne
Browse files

compat: add missing errno on Winsock errors

Some of the error codes [1] correspond to errno values [2]

[1] https://docs.microsoft.com/en-us/windows/win32/winsock/windows-sockets-error-codes-2
[2] https://docs.microsoft.com/en-us/cpp/c-runtime-library/errno-constants

(cherry picked from commit ddcc2cdc)
parent 4d1a508e
No related branches found
No related tags found
1 merge request!5994[3.0] compat: add missing errno on Winsock errors
Pipeline #511800 passed with stages
in 23 minutes and 45 seconds
......@@ -74,11 +74,51 @@ ssize_t recvmsg(int fd, struct msghdr *msg, int flags)
return rcvd;
}
switch (WSAGetLastError())
int err = WSAGetLastError();
switch (err)
{
case WSAEWOULDBLOCK:
errno = EAGAIN;
break;
case WSA_NOT_ENOUGH_MEMORY:
errno = ENOMEM;
break;
case WSAEAFNOSUPPORT:
errno = EAFNOSUPPORT;
break;
case WSAENOBUFS:
errno = ENOBUFS;
break;
case WSAEINPROGRESS:
errno = EINPROGRESS;
break;
case WSAEINTR:
errno = EINTR;
break;
case WSAEBADF:
errno = EBADF;
break;
case WSAEACCES:
errno = EACCES;
break;
case WSAEFAULT:
errno = EFAULT;
break;
case WSAEINVAL:
errno = EINVAL;
break;
case WSAEMFILE:
errno = EMFILE;
break;
case WSAEALREADY:
errno = EALREADY;
break;
case WSAECONNRESET:
errno = ECONNRESET;
break;
default:
errno = err;
break;
}
return -1;
}
......
......@@ -64,11 +64,51 @@ ssize_t sendmsg(int fd, const struct msghdr *msg, int flags)
if (ret == 0)
return sent;
switch (WSAGetLastError())
int err = WSAGetLastError();
switch (err)
{
case WSAEWOULDBLOCK:
errno = EAGAIN;
break;
case WSA_NOT_ENOUGH_MEMORY:
errno = ENOMEM;
break;
case WSAEAFNOSUPPORT:
errno = EAFNOSUPPORT;
break;
case WSAENOBUFS:
errno = ENOBUFS;
break;
case WSAEINPROGRESS:
errno = EINPROGRESS;
break;
case WSAEINTR:
errno = EINTR;
break;
case WSAEBADF:
errno = EBADF;
break;
case WSAEACCES:
errno = EACCES;
break;
case WSAEFAULT:
errno = EFAULT;
break;
case WSAEINVAL:
errno = EINVAL;
break;
case WSAEMFILE:
errno = EMFILE;
break;
case WSAEALREADY:
errno = EALREADY;
break;
case WSAECONNRESET:
errno = ECONNRESET;
break;
default:
errno = err;
break;
}
return -1;
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment