* RE: [PATCH v4 4/4] make poll() work on platforms that can't recv() on a non-socket
@ 2012-09-07 15:43 Joachim Schmitz
2012-09-08 11:31 ` Erik Faye-Lund
0 siblings, 1 reply; 3+ messages in thread
From: Joachim Schmitz @ 2012-09-07 15:43 UTC (permalink / raw)
To: Junio C Hamano; +Cc: git
This way it gets added to gnulib too.
Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
---
compat/poll/poll.c | 5 +++++
1 file changed, 4 insertions(+)
diff --git a/compat/poll/poll.c b/compat/poll/poll.c
index e4b8319..10a204e 100644
--- a/compat/poll/poll.c
+++ b/compat/poll/poll.c
@@ -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)
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
happened |= POLLERR;
}
--
1.7.12
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v4 4/4] make poll() work on platforms that can't recv() on a non-socket
2012-09-07 15:43 [PATCH v4 4/4] make poll() work on platforms that can't recv() on a non-socket Joachim Schmitz
@ 2012-09-08 11:31 ` Erik Faye-Lund
2012-09-08 13:53 ` Joachim Schmitz
0 siblings, 1 reply; 3+ messages in thread
From: Erik Faye-Lund @ 2012-09-08 11:31 UTC (permalink / raw)
To: Joachim Schmitz; +Cc: Junio C Hamano, git
On Fri, Sep 7, 2012 at 5:43 PM, Joachim Schmitz <jojo@schmitz-digital.de> wrote:
> This way it gets added to gnulib too.
>
> Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
> ---
> compat/poll/poll.c | 5 +++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/compat/poll/poll.c b/compat/poll/poll.c
> index e4b8319..10a204e 100644
> --- a/compat/poll/poll.c
> +++ b/compat/poll/poll.c
> @@ -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)
> happened |= POLLHUP;
>
> + /* some systems can't use recv() on non-socket, including HP NonStop */
> + else if (/* (r == -1) && */ socket_errno == ENOTSOCK)
Why add commented-out code ("(r == -1) && ")?
^ permalink raw reply [flat|nested] 3+ messages in thread
* RE: [PATCH v4 4/4] make poll() work on platforms that can't recv() on a non-socket
2012-09-08 11:31 ` Erik Faye-Lund
@ 2012-09-08 13:53 ` Joachim Schmitz
0 siblings, 0 replies; 3+ messages in thread
From: Joachim Schmitz @ 2012-09-08 13:53 UTC (permalink / raw)
To: kusmabite; +Cc: 'Junio C Hamano', git
> From: Erik Faye-Lund [mailto:kusmabite@gmail.com]
> Sent: Saturday, September 08, 2012 1:32 PM
> To: Joachim Schmitz
> Cc: Junio C Hamano; git@vger.kernel.org
> Subject: Re: [PATCH v4 4/4] make poll() work on platforms that can't recv() on a non-socket
>
> On Fri, Sep 7, 2012 at 5:43 PM, Joachim Schmitz <jojo@schmitz-digital.de> wrote:
> > This way it gets added to gnulib too.
> >
> > Signed-off-by: Joachim Schmitz <jojo@schmitz-digital.de>
> > ---
> > compat/poll/poll.c | 5 +++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/compat/poll/poll.c b/compat/poll/poll.c
> > index e4b8319..10a204e 100644
> > --- a/compat/poll/poll.c
> > +++ b/compat/poll/poll.c
> > @@ -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)
> > happened |= POLLHUP;
> >
> > + /* some systems can't use recv() on non-socket, including HP NonStop */
> > + else if (/* (r == -1) && */ socket_errno == ENOTSOCK)
>
> Why add commented-out code ("(r == -1) && ")?
I'm not really sure whether it may be needed, esp. for Mac OS X, where en ENOTSOCK is expected from a recv() but then dealt with by
an ioctl(), which does not resert socket_errno, but does set r to something not -1. And wouldn't need this code path?
There's some similar code a few lines up, which too has that part commented out:
/* If the event happened on an unconnected server socket,
that's fine. */
else if (r > 0 || ( /* (r == -1) && */ socket_errno == ENOTCONN))
happened |= (POLLIN | POLLRDNORM) & sought;
Bye, Jojo
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-09-08 13:54 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-09-07 15:43 [PATCH v4 4/4] make poll() work on platforms that can't recv() on a non-socket Joachim Schmitz
2012-09-08 11:31 ` Erik Faye-Lund
2012-09-08 13:53 ` Joachim Schmitz
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).