On MaxOSX 10.2.2, this is what the cgi program returns: ENOTCONN = 57 ENOTSOCK = 38 (57, 'Socket is not connected') On Wednesday, November 20, 2002, at 12:16 PM, Greg Ward wrote: > 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 > > _______________________________________________ > Quixote-users mailing list > Quixote-users@mems-exchange.org > http://mail.mems-exchange.org/mailman/listinfo/quixote-users