Commit 818933b2 authored by William A. Rowe Jr's avatar William A. Rowe Jr
Browse files

  Short of removing the headers filter, this is the best asis can do.
  Note that all body replies were entirely broken (thanks for helping
  me notice this, Greg :)

  Asis still needs patching for huge files.


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@91401 13f79535-47bb-0310-9956-ffa450edef68
parent d5002a59
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -119,9 +119,19 @@ static int asis_handler(request_rec *r)
    if (!r->header_only) {
        apr_bucket_brigade *bb;
        apr_bucket *b;
        apr_off_t pos = 0;

        rv = apr_file_seek(f, APR_CUR, &pos);
        if (rv != APR_SUCCESS) {
            ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,
                          "mod_asis: failed to find end-of-headers position "
                          "for %s", r->filename);
            apr_file_close(f);
            return HTTP_INTERNAL_SERVER_ERROR;
        }

        bb = apr_brigade_create(r->pool);
        b = apr_bucket_file_create(f, 0, (apr_size_t) r->finfo.size, r->pool);
        b = apr_bucket_file_create(f, pos, (apr_size_t) (r->finfo.size - pos), r->pool);
        APR_BRIGADE_INSERT_TAIL(bb, b);
        b = apr_bucket_eos_create();
        APR_BRIGADE_INSERT_TAIL(bb, b);
@@ -129,6 +139,7 @@ static int asis_handler(request_rec *r)
        if (rv != APR_SUCCESS) {
            ap_log_rerror(APLOG_MARK, APLOG_ERR, rv, r,
                          "mod_asis: ap_pass_brigade failed for file %s", r->filename);
            return HTTP_INTERNAL_SERVER_ERROR;
        }
    }
    else {