bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] testsuite for poll(2)


From: Paolo Bonzini
Subject: Re: [PATCH] testsuite for poll(2)
Date: Tue, 16 Sep 2008 10:28:36 +0200
User-agent: Thunderbird 2.0.0.16 (Macintosh/20080707)

Yoann Vandoorselaere wrote:
> Le lundi 15 septembre 2008 à 21:21 +0200, Paolo Bonzini a écrit :
>>> The poll-tests module that is now available in the GnuLib repository
>>> currently fail on OpenBSD:
>>>
>>> Unconnected socket test... failed (huh, connect succeeded?)
>>> Connected sockets test... failed (huh, connect succeeded?)
>> Uhm, this means O_NONBLOCK sockets do not work there?
> 
> To me, this rather look like a bug in connect_to_socket(), which assume
> that connecting a non blocking socket should never succeed on first try.
> Where does this assumption come from? 

>From the fact that the socket is listening, but not accepting yet.  I
added the check mostly to see how Winsock behaved, but yes, it can be
relaxed for OpenBSD.  I pushed the following patch:

diff --git a/tests/test-poll.c b/tests/test-poll.c
index e8beb55..b65b7b3 100644
--- a/tests/test-poll.c
+++ b/tests/test-poll.c
@@ -139,16 +139,12 @@ connect_to_socket (int blocking)
 #endif
     }

-  if (connect (s, (struct sockaddr *) &ia, sizeof (ia)) < 0)
+  if (connect (s, (struct sockaddr *) &ia, sizeof (ia)) < 0
+      && (blocking || errno != EINPROGRESS))
     {
-      if (errno != EINPROGRESS)
-       {
-         perror ("connect");
-         exit (77);
-       }
+      perror ("connect");
+      exit (77);
     }
-  else if (!blocking)
-    failed ("huh, connect succeeded?");

   return s;
 }

I suppose you don't have similar build bots for Windows, do you?

Paolo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]