You are viewing a plain text version of this content. The canonical link for it is here.
Posted to bugs@httpd.apache.org by bu...@apache.org on 2003/01/28 17:47:53 UTC

DO NOT REPLY [Bug 16498] New: - SSI Content-length calculated on first included (wrapped) cgi only

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16498>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=16498

SSI Content-length calculated on first included (wrapped) cgi only

           Summary: SSI Content-length calculated on first included
                    (wrapped) cgi only
           Product: Apache httpd-2.0
           Version: 2.0.40
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: Major
          Priority: Other
         Component: mod_include
        AssignedTo: bugs@httpd.apache.org
        ReportedBy: apche_bug@spininhetweb.nl


This looks a bit like bug # 7666 (closed)

When you use <--#include virtual="blah.cgi" --> in an ssi page, 
and apache runs a cgi-wrapper instead of the default cgi-script handler, the 
Content-length header of the rendered page will be set to the content length 
of the output of the script that was included + the length of the static 
content in the shtml file *up to* the include virtual element.

So browsers that use the Content-length header truncate the output after the 
output of the script. This is even more severe when you include more than one 
cgi in the above way. The Content-length will still be the output length of 
the *first* script + static content before that one. It looks like this is 
another or the same problem with timing of the filter as bug 7666??

Reproduce:

1. I use Redhat 8.0, standard install, httpd now 2.0.40-11. (I tried to 
install 2.0.43 thru an rpm, but this did not work because of dependencies).

2. Create a fake cgi-wrapper, that does nothing but run the script. I'll 
attach a file called testwrap, in perl code. It runs the script and logs the 
size in bytes to a file in /tmp. Asume this is 
in /usr/local/testwrapper/testwrap and executable for apache.

3. Make sure Includes are used, I used this globaly in httpd.conf:
AddType text/html .shtml .shtm
AddOutputFilter INCLUDES .shtm .shtml .htm .html
Options +Includes
AcceptPathInfo On

4. Make sure all .cgi gets handled by the testwrap script from step 2. I used 
this in a virtual host:

ScriptAlias /testwrapper/ /usr/local/testwrapper/
AddHandler test_wrapper .cgi .pl
Action test_wrapper /testwrapper/testwrap

5. Reload the server etc.

6. In the documentroot of the virtual host, I created a test.shtml, test1.cgi 
and test2.cgi. test.shtml does an include virtual of test1.cgi (that outputs a 
header + 100 bytes) and test2.cgi (header + 500 bytes). All files readable and 
the cgi scripts executable for apache.

7. Internet explorer en netscape only show the page up to and including the 
first script. wget -O - (url) will show that the content-length header is 
wrong, but will still get the whole file, showing that everything runs fine.

I hope I just did something wrong, in which case my appologies.

---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org