# HG changeset patch # User Dirkjan Ochtman # Date 2007-12-01 17:26:27 # Node ID e0173902c813179f4d0ee20922878abf100ddc3e # Parent d74fc8dec2b4715a8504284d7deaa4ea0f8e4317 CGI compatibility fix for d74fc8dec2b4. diff --git a/mercurial/hgweb/wsgicgi.py b/mercurial/hgweb/wsgicgi.py --- a/mercurial/hgweb/wsgicgi.py +++ b/mercurial/hgweb/wsgicgi.py @@ -61,13 +61,4 @@ def launch(application): headers_set[:] = [status, response_headers] return write - result = application(environ, start_response) - try: - for data in result: - if data: # don't send headers until body appears - write(data) - if not headers_sent: - write('') # send headers now if body was empty - finally: - if hasattr(result,'close'): - result.close() + application(environ, start_response) diff --git a/tests/test-newcgi b/tests/test-newcgi new file mode 100755 --- /dev/null +++ b/tests/test-newcgi @@ -0,0 +1,89 @@ +#!/bin/sh + +hg init test + +cat >hgweb.cgi <hgweb.config <hgwebdir.cgi <page1 2>&1 ; echo $? +python hgwebdir.cgi >page2 2>&1 ; echo $? +PATH_INFO="/test/" +PATH_TRANSLATED="/var/something/test.cgi" +REQUEST_URI="/test/test/" +SCRIPT_URI="http://hg.omnifarious.org/test/test/" +SCRIPT_URL="/test/test/" +python hgwebdir.cgi >page3 2>&1 ; echo $? +fgrep -i error page1 page2 page3 && exit 1 +exit 0 diff --git a/tests/test-newcgi.out b/tests/test-newcgi.out new file mode 100644 --- /dev/null +++ b/tests/test-newcgi.out @@ -0,0 +1,3 @@ +0 +0 +0 diff --git a/tests/test-newercgi b/tests/test-newercgi new file mode 100755 --- /dev/null +++ b/tests/test-newercgi @@ -0,0 +1,83 @@ +#!/bin/sh + +hg init test + +cat >hgweb.cgi <hgweb.config <hgwebdir.cgi <page1 2>&1 ; echo $? +python hgwebdir.cgi >page2 2>&1 ; echo $? +PATH_INFO="/test/" +PATH_TRANSLATED="/var/something/test.cgi" +REQUEST_URI="/test/test/" +SCRIPT_URI="http://hg.omnifarious.org/test/test/" +SCRIPT_URL="/test/test/" +python hgwebdir.cgi >page3 2>&1 ; echo $? +fgrep -i error page1 page2 page3 && exit 1 +exit 0 diff --git a/tests/test-newercgi.out b/tests/test-newercgi.out new file mode 100644 --- /dev/null +++ b/tests/test-newercgi.out @@ -0,0 +1,3 @@ +0 +0 +0