for (i = 0; i < nfds; i++) {
fd = TO_SOCKET(i);
if (PERL_FD_ISSET(i,rd))
- FD_SET(fd, &nrd);
+ FD_SET((unsigned)fd, &nrd);
if (PERL_FD_ISSET(i,wr))
- FD_SET(fd, &nwr);
+ FD_SET((unsigned)fd, &nwr);
if (PERL_FD_ISSET(i,ex))
- FD_SET(fd, &nex);
+ FD_SET((unsigned)fd, &nex);
}
errno = save_errno;
if ((af != AF_UNSPEC && af != proto_buffers[i].iAddressFamily)
|| (type != proto_buffers[i].iSocketType)
- || (protocol != 0 && protocol != proto_buffers[i].iProtocol))
+ || (protocol != 0 && proto_buffers[i].iProtocol != 0 &&
+ protocol != proto_buffers[i].iProtocol))
continue;
if ((proto_buffers[i].dwServiceFlags1 & XP1_IFS_HANDLES) == 0)