NetBSD-Bugs archive

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

Re: kern/54650: Calling accept() with a non-blocking listening socket, returns a non-blocking connected socket, which is incorrect behaviour



The following reply was made to PR kern/54650; it has been noted by GNATS.

From: Sad Clouds <cryintothebluesky%gmail.com@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: Martin Husemann <martin%duskware.de@localhost>, kern-bug-people%netbsd.org@localhost,
 gnats-admin%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost
Subject: Re: kern/54650: Calling accept() with a non-blocking listening
 socket, returns a non-blocking connected socket, which is incorrect
 behaviour
Date: Sun, 27 Oct 2019 07:59:47 +0000

 On Sun, 27 Oct 2019 07:30:02 +0000 (UTC)
 Martin Husemann <martin%duskware.de@localhost> wrote:
 
 >  I think it is also documented in accept(4):
 >  
 >  	... creates a new socket with the same
 >       properties of s and allocates a new file descriptor for the
 > socket. 
 >  Where I read "same properties" as including the socket options.
 >  
 >  Martin
 >  
 
 OK, if that is the case, then please close this bug. Just had a look at
 OpenBSD accept() man page and it is much more clear there:
 
 "The accept() call extracts the first connection request on the queue of
 pending connections, creates a new socket with the same non-blocking
 I/O mode as s, and allocates a new file descriptor for the socket with
 the close-on-exec flag clear."
 
 The way Linux behaves makes more sense to me, just because the
 listening socket is non-blocking, does not mean I want all the accepted
 sockets to be also non-blocking. But it looks like another portability
 issue we have to deal with on different platforms. 
 


Home | Main Index | Thread Index | Old Index