diff options
author | ianb <devnull@localhost> | 2005-11-22 03:18:41 +0000 |
---|---|---|
committer | ianb <devnull@localhost> | 2005-11-22 03:18:41 +0000 |
commit | 248156b6d2119408aef75b3f316b060f1baece10 (patch) | |
tree | 75f622a794c8b3b156e57ea9b29e130f7ddc9bbc /paste/cgiapp.py | |
parent | 4bca409ce4bd1617e9c0dfaa9d7b75729a8b93f6 (diff) | |
download | paste-248156b6d2119408aef75b3f316b060f1baece10.tar.gz |
Hopefully maybe make this Windows compatible
Diffstat (limited to 'paste/cgiapp.py')
-rw-r--r-- | paste/cgiapp.py | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/paste/cgiapp.py b/paste/cgiapp.py index 4b1b5eb..9843e9a 100644 --- a/paste/cgiapp.py +++ b/paste/cgiapp.py @@ -6,7 +6,10 @@ Application that runs a CGI script. """ import os import subprocess -import select +try: + import select +except ImportError: + select = None from paste.deploy import converters __all__ = ['CGIError', 'CGIApplication'] @@ -84,11 +87,17 @@ class CGIApplication(object): cwd=os.path.dirname(self.script), ) writer = CGIWriter(environ, start_response) - proc_communicate( - proc, - stdin=StdinReader.from_environ(environ), - stdout=writer, - stderr=environ['wsgi.errors']) + if select: + proc_communicate( + proc, + stdin=StdinReader.from_environ(environ), + stdout=writer, + stderr=environ['wsgi.errors']) + else: + stdout, stderr = proc.communicate(StdinReader.from_environ(environ).read()) + if stderr: + environ['wsgi.errors'].write(stderr) + writer(stdout) if not writer.headers_finished: start_response(writer.status, writer.headers) return [] |