Changeset 1683

Show
Ignore:
Timestamp:
02/21/2007 06:15:47 AM (19 months ago)
Author:
jakabosky
Message:

fixed bug with Content-Length = 0, when backend sent Content-Length > 0

Location:
trunk/src
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/src/mod_chunked.c

    r1653 r1683  
    200200        /* check if response needs chunked encoding. */ 
    201201        if(in->is_closed) { 
    202                 if (p->conf.debug > 0) TRACE("%s", "response content finished disable chunked encoding"); 
    203202                con->response.content_length = chunkqueue_length(in); 
     203        } 
     204        if(con->response.content_length >= 0) { 
     205                if (p->conf.debug > 0) TRACE("response content length known, disabling chunked encoding.  len=%d", con->response.content_length); 
    204206                use_chunked = 0; 
    205207        } else if (con->request.http_method != HTTP_METHOD_HEAD) { 
  • trunk/src/mod_proxy_backend_http.c

    r1681 r1683  
    230230 
    231231        if (in->first == NULL) { 
    232                 if ((sess->content_length > 0 && sess->bytes_read == sess->content_length) || in->is_closed) { 
     232                if ((sess->content_length >= 0 && sess->bytes_read == sess->content_length) || in->is_closed) { 
    233233                        sess->is_request_finished = 1; 
    234234                        return HANDLER_FINISHED; 
  • trunk/src/mod_proxy_backend_scgi.c

    r1681 r1683  
    335335 
    336336        if (in->first == NULL) { 
    337                 if ((sess->content_length > 0 && sess->bytes_read == sess->content_length) || in->is_closed) { 
     337                if ((sess->content_length >= 0 && sess->bytes_read == sess->content_length) || in->is_closed) { 
    338338                        sess->is_request_finished = 1; 
    339339                        return HANDLER_FINISHED; 
  • trunk/src/mod_proxy_core.c

    r1682 r1683  
    450450 
    451451        sess->is_chunked = 0; 
     452        sess->content_length = -1; 
    452453        sess->send_response_content = 1; 
    453454        sess->do_new_session = 0; 
     
    477478        sess->bytes_read = 0; 
    478479        sess->connect_start_ts = 0; 
    479         sess->content_length = 0; 
     480        sess->content_length = -1; 
    480481        sess->internal_redirect_count = 0; 
    481482        sess->do_internal_redirect = 0;