[BUG] http_process_res_common() must not skip the forward analyser

By default this function returned 0 indicating an end of analysis.
This was not a problem as long as it was the last analyser in the
chain but becomes quite a big one now since it skips the forwarder
with auto_close enabled, causing some data to pass under the nose
of the last one undetected.
This commit is contained in:
Willy Tarreau 2010-01-04 22:57:43 +01:00
parent 610ecceef9
commit e3fa6e5bd7

View File

@ -4267,10 +4267,9 @@ int http_wait_for_response(struct session *s, struct buffer *rep, int an_bit)
} }
/* This function performs all the processing enabled for the current response. /* This function performs all the processing enabled for the current response.
* It normally returns zero, but may return 1 if it absolutely needs to be * It normally returns 1 unless it wants to break. It relies on buffers flags,
* called again after other functions. It relies on buffers flags, and updates * and updates t->rep->analysers. It might make sense to explode it into several
* t->rep->analysers. It might make sense to explode it into several other * other functions. It works like process_request (see indications above).
* functions. It works like process_request (see indications above).
*/ */
int http_process_res_common(struct session *t, struct buffer *rep, int an_bit, struct proxy *px) int http_process_res_common(struct session *t, struct buffer *rep, int an_bit, struct proxy *px)
{ {
@ -4644,9 +4643,9 @@ int http_process_res_common(struct session *t, struct buffer *rep, int an_bit, s
* otherwise we would not let the client side wake up. * otherwise we would not let the client side wake up.
*/ */
return 0; return 1;
} }
return 0; return 1;
} }
/* This function is an analyser which forwards response body (including chunk /* This function is an analyser which forwards response body (including chunk