mirror of
git://sourceware.org/git/newlib-cygwin.git
synced 2025-02-28 03:27:46 +08:00
* fhandler_socket.cc (fhandler_socket::recvfrom): Mask flags with
MSG_WINMASK for Windows socket calls. (fhandler_socket::recvmsg): Ditto. (fhandler_socket::sendmsg): Ditto.
This commit is contained in:
parent
6c9a5ebbfc
commit
ddd62ccbd4
@ -1,3 +1,11 @@
|
||||
2005-12-08 Pekka Pessi <ppessi@gmail.com>
|
||||
Corinna Vinschen <corinna@vinschen.de>
|
||||
|
||||
* fhandler_socket.cc (fhandler_socket::recvfrom): Mask flags with
|
||||
MSG_WINMASK for Windows socket calls.
|
||||
(fhandler_socket::recvmsg): Ditto.
|
||||
(fhandler_socket::sendmsg): Ditto.
|
||||
|
||||
2005-12-07 Christopher Faylor <cgf@timesys.com>
|
||||
|
||||
* hires.h (hires_ms::initime_ms): Delete.
|
||||
|
@ -1028,12 +1028,14 @@ fhandler_socket::recvfrom (void *ptr, size_t len, int flags,
|
||||
int res = SOCKET_ERROR;
|
||||
DWORD ret = 0;
|
||||
|
||||
flags &= MSG_WINMASK;
|
||||
WSABUF wsabuf = { len, (char *) ptr };
|
||||
|
||||
if (is_nonblocking () || closed () || async_io ())
|
||||
res = WSARecvFrom (get_socket (), &wsabuf, 1, &ret,
|
||||
(DWORD *) &flags, from, fromlen, NULL, NULL);
|
||||
{
|
||||
DWORD lflags = (DWORD) (flags & MSG_WINMASK);
|
||||
res = WSARecvFrom (get_socket (), &wsabuf, 1, &ret,
|
||||
&lflags, from, fromlen, NULL, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
HANDLE evt;
|
||||
@ -1041,7 +1043,7 @@ fhandler_socket::recvfrom (void *ptr, size_t len, int flags,
|
||||
{
|
||||
do
|
||||
{
|
||||
DWORD lflags = (DWORD) flags;
|
||||
DWORD lflags = (DWORD) (flags & MSG_WINMASK);
|
||||
res = WSARecvFrom (get_socket (), &wsabuf, 1, &ret, &lflags,
|
||||
from, fromlen, NULL, NULL);
|
||||
}
|
||||
@ -1118,8 +1120,11 @@ fhandler_socket::recvmsg (struct msghdr *msg, int flags, ssize_t tot)
|
||||
DWORD ret = 0;
|
||||
|
||||
if (is_nonblocking () || closed () || async_io ())
|
||||
res = WSARecvFrom (get_socket (), wsabuf, iovcnt, &ret,
|
||||
(DWORD *) &flags, from, fromlen, NULL, NULL);
|
||||
{
|
||||
DWORD lflags = (DWORD) (flags & MSG_WINMASK);
|
||||
res = WSARecvFrom (get_socket (), wsabuf, iovcnt, &ret,
|
||||
&lflags, from, fromlen, NULL, NULL);
|
||||
}
|
||||
else
|
||||
{
|
||||
HANDLE evt;
|
||||
@ -1127,7 +1132,7 @@ fhandler_socket::recvmsg (struct msghdr *msg, int flags, ssize_t tot)
|
||||
{
|
||||
do
|
||||
{
|
||||
DWORD lflags = (DWORD) flags;
|
||||
DWORD lflags = (DWORD) (flags & MSG_WINMASK);
|
||||
res = WSARecvFrom (get_socket (), wsabuf, iovcnt, &ret,
|
||||
&lflags, from, fromlen, NULL, NULL);
|
||||
}
|
||||
@ -1271,7 +1276,7 @@ fhandler_socket::sendmsg (const struct msghdr *msg, int flags, ssize_t tot)
|
||||
|
||||
if (is_nonblocking () || closed () || async_io ())
|
||||
res = WSASendTo (get_socket (), wsabuf, iovcnt, &ret,
|
||||
flags, (struct sockaddr *) msg->msg_name,
|
||||
flags & MSG_WINMASK, (struct sockaddr *) msg->msg_name,
|
||||
msg->msg_namelen, NULL, NULL);
|
||||
else
|
||||
{
|
||||
@ -1281,7 +1286,7 @@ fhandler_socket::sendmsg (const struct msghdr *msg, int flags, ssize_t tot)
|
||||
do
|
||||
{
|
||||
res = WSASendTo (get_socket (), wsabuf, iovcnt,
|
||||
&ret, flags,
|
||||
&ret, flags & MSG_WINMASK,
|
||||
(struct sockaddr *) msg->msg_name,
|
||||
msg->msg_namelen, NULL, NULL);
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user