mirror of
http://git.haproxy.org/git/haproxy.git/
synced 2025-01-20 20:50:44 +00:00
BUG/MINOR: compression: deinit zlib only when required
The zlib stream was deinitialized even when the init failed.
This commit is contained in:
parent
c04ca58222
commit
ec3e3890f0
@ -89,6 +89,8 @@
|
||||
#define SN_BE_TRACK_SC1 0x00100000 /* backend tracks stick-counter 1 */
|
||||
#define SN_BE_TRACK_SC2 0x00200000 /* backend tracks stick-counter 2 */
|
||||
|
||||
#define SN_COMP_READY 0x00400000 /* the compression is initialized */
|
||||
|
||||
|
||||
/* WARNING: if new fields are added, they must be initialized in event_accept()
|
||||
* and freed in session_free() !
|
||||
|
@ -2103,6 +2103,8 @@ int select_compression_response_header(struct session *s, struct buffer *res)
|
||||
if (s->comp_algo->init(&s->comp_ctx, global.tune.comp_maxlevel) < 0)
|
||||
goto fail;
|
||||
|
||||
s->flags |= SN_COMP_READY;
|
||||
|
||||
s->comp_ctx.cur_lvl = global.tune.comp_maxlevel;
|
||||
|
||||
/* remove Content-Length header */
|
||||
@ -2131,9 +2133,10 @@ int select_compression_response_header(struct session *s, struct buffer *res)
|
||||
return 1;
|
||||
|
||||
fail:
|
||||
if (s->comp_algo) {
|
||||
if (s->flags & SN_COMP_READY) {
|
||||
s->comp_algo->end(&s->comp_ctx);
|
||||
s->comp_algo = NULL;
|
||||
s->flags &= ~SN_COMP_READY;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
@ -565,9 +565,10 @@ static void session_free(struct session *s)
|
||||
sess_change_server(s, NULL);
|
||||
}
|
||||
|
||||
if (s->comp_algo) {
|
||||
if (s->flags & SN_COMP_READY) {
|
||||
s->comp_algo->end(&s->comp_ctx);
|
||||
s->comp_algo = NULL;
|
||||
s->flags &= ~SN_COMP_READY;
|
||||
}
|
||||
|
||||
if (s->req->pipe)
|
||||
|
Loading…
Reference in New Issue
Block a user