* fhandler_socket.cc (fhandler_socket::recvfrom): Just return 0 (EOF)
in case of WSAESHUTDOWN. (fhandler_socket::recvmsg): Ditto. * poll.cc (poll): Set revents to POLLIN instead of POLLHUP. Add comment.
This commit is contained in:
		| @@ -1,3 +1,10 @@ | |||||||
|  | 2005-11-13  Corinna Vinschen  <corinna@vinschen.de> | ||||||
|  |  | ||||||
|  | 	* fhandler_socket.cc (fhandler_socket::recvfrom): Just return 0 (EOF) | ||||||
|  | 	in case of WSAESHUTDOWN. | ||||||
|  | 	(fhandler_socket::recvmsg): Ditto. | ||||||
|  | 	* poll.cc (poll): Set revents to POLLIN instead of POLLHUP. Add comment. | ||||||
|  |  | ||||||
| 2005-11-11  Christopher Faylor  <cgf@timesys.com> | 2005-11-11  Christopher Faylor  <cgf@timesys.com> | ||||||
|  |  | ||||||
| 	* cygheap.h (init_cygheap::_gtod): Remove. | 	* cygheap.h (init_cygheap::_gtod): Remove. | ||||||
|   | |||||||
| @@ -1061,6 +1061,11 @@ fhandler_socket::recvfrom (void *ptr, size_t len, int flags, | |||||||
|       if (WSAGetLastError () == WSAEMSGSIZE) |       if (WSAGetLastError () == WSAEMSGSIZE) | ||||||
| 	return len; | 	return len; | ||||||
|  |  | ||||||
|  |       /* ESHUTDOWN isn't defined for recv in SUSv3.  Simply EOF is returned | ||||||
|  |          in this case. */ | ||||||
|  |       if (WSAGetLastError () == WSAESHUTDOWN) | ||||||
|  |         return 0; | ||||||
|  |  | ||||||
|       set_winsock_errno (); |       set_winsock_errno (); | ||||||
|     } |     } | ||||||
|   else |   else | ||||||
| @@ -1142,6 +1147,11 @@ fhandler_socket::recvmsg (struct msghdr *msg, int flags, ssize_t tot) | |||||||
|       if (WSAGetLastError () == WSAEMSGSIZE) |       if (WSAGetLastError () == WSAEMSGSIZE) | ||||||
| 	return len; | 	return len; | ||||||
|  |  | ||||||
|  |       /* ESHUTDOWN isn't defined for recv in SUSv3.  Simply EOF is returned | ||||||
|  |          in this case. */ | ||||||
|  |       if (WSAGetLastError () == WSAESHUTDOWN) | ||||||
|  |         return 0; | ||||||
|  |  | ||||||
|       set_winsock_errno (); |       set_winsock_errno (); | ||||||
|     } |     } | ||||||
|   else |   else | ||||||
|   | |||||||
| @@ -118,8 +118,11 @@ poll (struct pollfd *fds, unsigned int nfds, int timeout) | |||||||
| 			      else | 			      else | ||||||
| 				fds[i].revents |= POLLIN; | 				fds[i].revents |= POLLIN; | ||||||
| 			      break; | 			      break; | ||||||
| 			    case 0:  /* Closed on the read side. */ | 			    case 0:  /* Closed on the read side... */ | ||||||
| 			      fds[i].revents |= POLLHUP; | 			      /* ...or shutdown(SHUT_WR) on the write side. | ||||||
|  | 			         We set revents to POLLHUP until 1.5.18, but | ||||||
|  | 				 this is semantically borderline. */ | ||||||
|  | 			      fds[i].revents |= POLLIN; | ||||||
| 			      break; | 			      break; | ||||||
| 			    default: | 			    default: | ||||||
| 			      fds[i].revents |= POLLIN; | 			      fds[i].revents |= POLLIN; | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user