make poll() work on platforms that can't recv() on a non-socket

This way it just got added to gnulib too the other day.

Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Joachim Schmitz 2012-09-17 23:24:42 +02:00 коммит произвёл Junio C Hamano
Родитель 32fde6575e
Коммит a6772946a5
1 изменённых файлов: 4 добавлений и 0 удалений

Просмотреть файл

@ -306,6 +306,10 @@ compute_revents (int fd, int sought, fd_set *rfds, fd_set *wfds, fd_set *efds)
|| socket_errno == ECONNABORTED || socket_errno == ENETRESET) || socket_errno == ECONNABORTED || socket_errno == ENETRESET)
happened |= POLLHUP; happened |= POLLHUP;
/* some systems can't use recv() on non-socket, including HP NonStop */
else if (/* (r == -1) && */ socket_errno == ENOTSOCK)
happened |= (POLLIN | POLLRDNORM) & sought;
else else
happened |= POLLERR; happened |= POLLERR;
} }