2001-11-21 13:28:52

by Francois-Xavier Kowalski

[permalink] [raw]
Subject: [2.4.14] wrong IPv4 listen syscall return code

Hello kernel developpers,

(please Cc: me in reply, since I am not on the ML).

I am puzzled my a problem around the listen(2) system call.

The man page states the following item, which make sense:

ERRORS
EADDRINUSE
Another socket is already listening on the same
port.

EBADF The argument s is not a valid descriptor.

ENOTSOCK
The argument s is not a socket.

EOPNOTSUPP
The socket is not of a type that supports the lis?
ten operation.

But when I go within the source code of listen implementation for STREAM
protocol (as specified for TCL in net/ipv4/af_inet.c) in the function
inet_listen() the default return code is EINVAL instead of EOPNOTSUPP.

Who holds the truth? I believe source code is wrong, since EOPNOTSUPP is
much more explicit.

BTW, where is the official & as much up-to-date as possible source for
kernel syscalls man pages?

--
Francois-Xavier "FiX" KOWALSKI