+2003-02-03 Corinna Vinschen <corinna@vinschen.de>
+
+ * fhandler_socket.cc (fhandler_socket::recvfrom): Return buffer
+ length and don't set errno in case of WSAEMSGSIZE error.
+ (fhandler_socket::recvmsg): Ditto.
+
2003-02-01 Christopher Faylor <cgf@redhat.com>
* grp.cc (getgrent32): Only refresh group entries when at beginning.
if (res == SOCKET_ERROR)
{
+ /* According to SUSv3, errno isn't set in that case and no error
+ condition is returned. */
+ if (WSAGetLastError () == WSAEMSGSIZE)
+ return len;
+
res = -1;
set_winsock_errno ();
}
else
{
WSABUF wsabuf[iovcnt];
+ unsigned long len = 0L;
{
const struct iovec *iovptr = iov + iovcnt;
{
iovptr -= 1;
wsaptr -= 1;
- wsaptr->len = iovptr->iov_len;
+ len += wsaptr->len = iovptr->iov_len;
wsaptr->buf = (char *) iovptr->iov_base;
}
while (wsaptr != wsabuf);
if (res == SOCKET_ERROR)
{
+ /* According to SUSv3, errno isn't set in that case and no error
+ condition is returned. */
+ if (WSAGetLastError () == WSAEMSGSIZE)
+ return len;
+
res = -1;
set_winsock_errno ();
}