[issue3278] socket's SO_OOBINLINE option does not work

Gregory P. Smith report at bugs.python.org
Sun Jul 6 20:44:35 CEST 2008


Gregory P. Smith <greg at krypto.org> added the comment:

p648 of Unix Network Programming third edition:

"4. If the process has set the SO_OOBINLINE socket option and then tries
to read the out-of-band data by specifying MSG_OOB, EINVAL is returned."

so it does not sound like a bug in Python.

There -does- appear to be a difference in BSD and Linux's socket
implementation here.  select returned the socket in both the read and
exception list on Linux.  While on BSD it only returned it in the
exception list.

The application is presumably supposed to keep track of which sockets it
has set SO_OOBINLINE on to know what to do when select returns them in
the exception state.

That said... OS X (and presumably FreeBSD) behaves oddly.  The socket is
only ever returned in the e list and an attempt to conn.recv(1) from it
raises socket.error "error: [Errno 35] Resource temporarily unavailable"

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue3278>
_______________________________________


More information about the Python-bugs-list mailing list