MINOR: channel/htx: Add function to skips output bytes from an HTX channel

It is the HTX version of co_skip(). Internally, It uses the function htx_drain().

It will be used by other commits to fix bugs, so it must be backported to 1.9.
This commit is contained in:
Christopher Faulet 2019-02-25 10:44:51 +01:00
parent 549822f0a1
commit c6827d52c1

View File

@ -922,6 +922,23 @@ static inline void co_skip(struct channel *chn, int len)
chn->flags |= CF_WRITE_PARTIAL | CF_WROTE_DATA;
}
/* HTX version of co_skip(). This function skips at most <len> bytes from the
* output of the channel <chn>. Depending on how data are stored in <htx> less
* than <len> bytes can be skipped. Channel flags WRITE_PARTIAL and WROTE_DATA
* are set.
*/
static inline void co_htx_skip(struct channel *chn, struct htx *htx, int len)
{
struct htx_ret htxret;
htxret = htx_drain(htx, len);
if (htxret.ret) {
chn->output -= htxret.ret;
/* notify that some data was written to the SI from the buffer */
chn->flags |= CF_WRITE_PARTIAL | CF_WROTE_DATA;
}
}
/* Tries to copy chunk <chunk> into the channel's buffer after length controls.
* The chn->o and to_forward pointers are updated. If the channel's input is