|
Gregory Bond
gnb at itga.com.au
Mon Dec 23 11:24:46 EST 2002
I wrote:
> But the HTML
> generated by the CGI is sent twice, so my page displays double.
Found it.
In mod_python.apache.py, in the CGIStdout::write() routine, the
self.headers_sent variable is never being set, so the first chunk of stuff from
the CGI program (in my case, all but the last newline) is being handled and
sent twice.
The following patch fixes both CGIhandler problems, and my CGIs now happily
operate under mod_python:
diff -u ~gnb/mod_python-3.0.1/lib/python/mod_python/apache.py /usr/local/lib/python2.2/site-packages/mod_python/apache.py
--- /home/users/gnb/mod_python-3.0.1/lib/python/mod_python/apache.py Fri Nov 8 11:15:11 2002
+++ /usr/local/lib/python2.2/site-packages/mod_python/apache.py Mon Dec 23 11:18:56 2002
@@ -723,6 +723,7 @@
else:
self.req.headers_out.add(h, v)
+ self.headers_sent = 1
# write the body if any at this point
self.req.write(ss[1])
else:
@@ -761,7 +762,7 @@
osenv = os.environ
# restore env
- for k in osenv:
+ for k in osenv.keys():
del osenv[k]
for k in sav_env:
osenv[k] = env[k]
|