{"thread":{"id":"31470","subject":"RE: [PATCH v3 4/4] make poll() work on platforms that can't recv() on a non-socket","startedAt":"2012-09-07T12:57:16Z","lastAt":"2012-09-07T12:57:16Z","messageCount":1,"participants":["Joachim Schmitz"],"isPatch":true,"patchVersion":3,"patchTotal":4},"messages":[{"id":"198520","messageId":"003d01cd8cf8$4f931630$eeb94290$@schmitz-digital.de","threadId":"31470","inReplyTo":null,"subject":"RE: [PATCH v3 4/4] make poll() work on platforms that can't recv() on a non-socket","fromName":"Joachim Schmitz","fromEmail":"jojo@schmitz-digital.de","sentAt":"2012-09-07T12:57:16Z","receivedAt":"2012-09-07T12:57:16Z","isPatch":true,"sender":{"key":"jojo@schmitz-digital.de","avatar":"https://avatars.githubusercontent.com/u/1786669?v=4"},"body":"HP NonStop can't recv() on a non-socket, this commit cates for this.\nSo far for HP NonStop only, via #ifdef __TANDEM, but it may be usefull\nfor others too. A similar patch got sent to gnulib.\n\nSigned-off-by: Joachim Schmitz <jojo@schmitz-digital.de>\n---\n compat/poll/poll.c | 5 +++++\n 1 file changed, 5 insertions(+)\n\ndiff --git a/compat/poll/poll.c b/compat/poll/poll.c\nindex e4b8319..10a204e 100644\n--- a/compat/poll/poll.c\n+++ b/compat/poll/poll.c\n@@ -306,6 +306,11 @@ compute_revents (int fd, int sought, fd_set *rfds, fd_set *wfds, fd_set *efds)\n \t       || socket_errno == ECONNABORTED || socket_errno == ENETRESET)\n \thappened |= POLLHUP;\n \n+#ifdef __TANDEM /* can't use recv() on non-socket */\n+      else if (/* (r == -1) && */ socket_errno == ENOTSOCK)\n+\thappened |= (POLLIN | POLLRDNORM) & sought;\n+#endif\n+\n       else\n \thappened |= POLLERR;\n     }\n-- \n1.7.12\n"}]}