This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] resolv_test.c: also cope with CONNREFUSED errors returned by recvfrom


On 09/25/2017 09:38 AM, Samuel Thibault wrote:
Florian Weimer, on lun. 25 sept. 2017 09:31:02 +0200, wrote:
On 09/10/2017 04:38 PM, Samuel Thibault wrote:
+  if (length < 0)
+    {
+      /* The other end had closed the socket, and we are notified only now. */
+      TEST_VERIFY_EXIT (errno == ECONNREFUSED);
+      return true;
+    }

Sorry for not replying sooner.

This UDP socket is unconnected.  If asynchronous error notifications are
received on it, this is arguably a TCP/IP stack bug.

Reception of "port unreachable" icmp packets can be asynchronous with
UDP too.

Stevens says that this can happen on connected sockets only. Both TCPv2 and UNIX Network Programming have detailed explanations. I can summarize those if you don't have access.

The only quoted exception is Linux, but the kernel behavior changed around 2.4.0.

Thanks,
Florian


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]