durusmail: quixote-users: Quixote on MacOS X 10.1.5?
Quixote on MacOS X 10.1.5?
2002-11-20
2002-11-20
2002-11-20
2002-11-20
2002-11-20
2002-11-20
Quixote on MacOS X 10.1.5?
Greg Ward
2002-11-20
On 14 August 2002, paul_chakravarti said:
> I had a similar problem running under MacOSX 10.1.5 & tracked the
> problem down to the FCGI test in the _startup function
> (fcgi.py:373) - this checks whether stdin is actually a socket by
> attempting to call getpeername() on the fd however for some reason
> the call appears to behave strangely on OSX when running via CGI.

Ahh, this is *tantalizingly* close to what I need to fix the problem
once and for all.  Can someone (anyone!) with OS X try this CGI script
instead of Paul's:

-- peername.cgi -------------------------------------------
#!/usr/bin/env python
import sys, socket, errno
print "Content-Type: text/plain\n"
print "ENOTCONN = %d" % errno.ENOTCONN
print "ENOTSOCK = %d" % errno.ENOTSOCK
try:
     s = socket.fromfd(sys.stdin.fileno(),
                       socket.AF_INET,
                       socket.SOCK_STREAM)
     s.getpeername()
except socket.error, err:
    print err
-----------------------------------------------------------

On Linux, I get this:

ENOTCONN = 107
ENOTSOCK = 88
(88, 'Socket operation on non-socket')

As expected, it doesn't matter whether I run the script via a web server
(ie. as a real CGI script) or from the command-line -- Linux barfs the
same way both times.  Good.  Based on Paul's mail from August, OpenBSD
acts like Linux (but with a different errno), and OS X inexplicably
behaves differently when the script is run from a web server.

What I need to know is the errno (preferably symbolic) OS X returns when
run as a CGI script.  Please help!

        Greg
--
Greg Ward - software developer                gward@mems-exchange.org
MEMS Exchange                            http://www.mems-exchange.org

reply