BUG/MINOR: mux-fcgi: Set conn state to RECORD_P when skipping the record padding

When the padding of a "stream" record (STDOUT or STDERR) is skipped, we must set
the connection state to RECORD_P. It is especially important if the padding is
not fully received.

This patch must be backported as far as 2.1.
This commit is contained in:
Christopher Faulet 2020-07-15 15:55:52 +02:00
parent 7f85433a91
commit 6c99d3baea

View File

@ -2295,6 +2295,7 @@ static int fcgi_strm_handle_stdout(struct fcgi_conn *fconn, struct fcgi_strm *fs
goto fail; goto fail;
end_transfer: end_transfer:
fconn->state = FCGI_CS_RECORD_P;
fconn->drl += fconn->drp; fconn->drl += fconn->drp;
fconn->drp = 0; fconn->drp = 0;
ret = MIN(b_data(&fconn->dbuf), fconn->drl); ret = MIN(b_data(&fconn->dbuf), fconn->drl);
@ -2379,6 +2380,7 @@ static int fcgi_strm_handle_stderr(struct fcgi_conn *fconn, struct fcgi_strm *fs
goto fail; goto fail;
end_transfer: end_transfer:
fconn->state = FCGI_CS_RECORD_P;
fconn->drl += fconn->drp; fconn->drl += fconn->drp;
fconn->drp = 0; fconn->drp = 0;
ret = MIN(b_data(&fconn->dbuf), fconn->drl); ret = MIN(b_data(&fconn->dbuf), fconn->drl);