On my platform (Windows XP, Python 2.2.2), socket.fromfd() is unavailable. Jim Dukarm DELTA-X RESEARCH > On 20 November 2002, I said: >> OK, so OS X 10.2 still won't get along with fcgi.py. I'll attach two >> patches (one relative to Quixote 0.5.1, one relative to CVS) that >> simplify and clarify fcgi.py's _startup(), and fix it so it should work >> on OS X. > Whoops, I patched without thinking. OS X is not just different here, > it's (IMHO) broken -- at least for the purpose of using getpeername() to > distinguish a socket that's really a socket from a socket that's just a > wrapper around stdin. The patch I supplied broke Quixote's FastCGI > support (at least on Linux) completely. > Let's try that again, shall we? First, the test CGI script is different > again: > --issocket.cgi----------------------------------------- > #!/www/python/bin/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.getsockname() > except socket.error, err: > print err > else: > print "getsockname() succeeded: %r" % n > ------------------------------------------------------- > If you're running *any* platform other than Linux 2.4/glibc 2.3/ > Apache 1.3, can you please: > * drop the above script into your cgi-bin directory > * run it from the command line, eg. > python /www/cgi-bin/issocket.cgi > and tell me what it says > * run it via your web browser, eg. point your browser at > http://localhost/cgi-bin/issocket.cgi > and tell me what it says > Then if you're *really* nice, you can try whichever of the attached > patches works for you and see if Quixote still works via both CGI and > FastCGI. (It does for me, now.) > Greg