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]
|