Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Nov 1998 10:50:01 -0800 (PST)
From:      Jacques Vidrine <n@nectar.com>
To:        freebsd-bugs@FreeBSD.ORG
Subject:   Re: kern/8629: accept(2) errno uses incorrect code
Message-ID:  <199811131850.KAA04721@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help
The following reply was made to PR kern/8629; it has been noted by GNATS.

From: Jacques Vidrine <n@nectar.com>
To: freebsd-gnats-submit@freebsd.org, Peter.Mutsaers@mail.ing.nl
Cc:  Subject: Re: kern/8629: accept(2) errno uses incorrect code
Date: Fri, 13 Nov 1998 12:41:23 -0600

 [WS1995] Wright, Gary R. and Richard W. Stevens. TCP/IP Illustrated,
          Volume 2. Addison-Wesley Publishing Company, Inc., 1995.
 
 The man pages for several UNIX operating systems (at least BSD 4.4 Lite,
 FreeBSD 3.0, and SunOS 5.5.1]) indicate that if accept is called with
 a socket of type SOCK_DGRAM, that the error returned will be EOPNOTSUPP.
 
 However, studying the implementation of the accept system call in
 BSD 4.4 Lite and FreeBSD 3.0, and the implementation discussed in 
 [WS1995], accept returns EINVAL when called with a socket of type
 SOCK_DGRAM.  This is because accept returns EINVAL for any socket
 that has not had listen() called on it, as these code fragments 
 show.
 
 	#define SO_ACCEPTCONN   0x0002 /* socket has had listen() */
 
 	if ((so->so_options & SO_ACCEPTCONN) == 0) {
 		splx(s);
 		return (EINVAL);
 	}
 
 In fact, listen returns EOPNOTSUPP when called with a socket of type
 SOCK_DGRAM.
 
 The accept(2) man page should be updated to reflect reality.
 
 --- accept.2    1998/01/11 17:07:20     1.5
 +++ accept.2    1998/11/13 18:37:09
 @@ -171,9 +171,9 @@
  The system file table is full.
  .It Bq Er ENOTSOCK
  The descriptor references a file, not a socket.
 -.It Bq Er EOPNOTSUPP
 -The referenced socket is not of type
 -.Dv SOCK_STREAM . 
 +.It Bq Er EINVAL
 +.Xr listen 2 
 +has not been called on the socket descriptor.
  .It Bq Er EFAULT
  The
  .Fa addr
 
 -- 
 Jacques Vidrine / n@nectar.com / nectar@FreeBSD.org

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199811131850.KAA04721>