mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-12-09 19:51:36 +01:00
MINOR: channel/htx: Call channel_htx_recv_max() from channel_recv_max()
When channel_recv_max() is called for an HTX stream, we fall back on the HTX version. This function is called from si_cs_recv(). This will let us pass the max amount of bytes to read to HTX multiplexers.
This commit is contained in:
parent
a3f1550dfa
commit
aad458587d
@ -38,6 +38,7 @@
|
|||||||
#include <types/stream.h>
|
#include <types/stream.h>
|
||||||
#include <types/stream_interface.h>
|
#include <types/stream_interface.h>
|
||||||
|
|
||||||
|
#include <proto/stream.h>
|
||||||
#include <proto/task.h>
|
#include <proto/task.h>
|
||||||
|
|
||||||
/* perform minimal intializations, report 0 in case of error, 1 if OK. */
|
/* perform minimal intializations, report 0 in case of error, 1 if OK. */
|
||||||
@ -778,6 +779,17 @@ static inline int channel_htx_full(const struct channel *c, const struct htx *ht
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* HTX version of channel_recv_max(). */
|
||||||
|
static inline int channel_htx_recv_max(const struct channel *chn, const struct htx *htx)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = channel_htx_recv_limit(chn, htx) - htx_used_space(htx);
|
||||||
|
if (ret < 0)
|
||||||
|
ret = 0;
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
/* Returns the amount of space available at the input of the buffer, taking the
|
/* Returns the amount of space available at the input of the buffer, taking the
|
||||||
* reserved space into account if ->to_forward indicates that an end of transfer
|
* reserved space into account if ->to_forward indicates that an end of transfer
|
||||||
* is close to happen. The test is optimized to avoid as many operations as
|
* is close to happen. The test is optimized to avoid as many operations as
|
||||||
@ -787,23 +799,15 @@ static inline int channel_recv_max(const struct channel *chn)
|
|||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
|
if (IS_HTX_STRM(chn_strm(chn)))
|
||||||
|
return channel_htx_recv_max(chn, htxbuf(&chn->buf));
|
||||||
|
|
||||||
ret = channel_recv_limit(chn) - b_data(&chn->buf);
|
ret = channel_recv_limit(chn) - b_data(&chn->buf);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
ret = 0;
|
ret = 0;
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* HTX version of channel_recv_max(). */
|
|
||||||
static inline int channel_htx_recv_max(const struct channel *chn, const struct htx *htx)
|
|
||||||
{
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
ret = channel_htx_recv_limit(chn, htx) - htx->data;
|
|
||||||
if (ret < 0)
|
|
||||||
ret = 0;
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Returns the amount of bytes that can be written over the input data at once,
|
/* Returns the amount of bytes that can be written over the input data at once,
|
||||||
* including reserved space which may be overwritten. This is used by Lua to
|
* including reserved space which may be overwritten. This is used by Lua to
|
||||||
* insert data in the input side just before the other data using buffer_replace().
|
* insert data in the input side just before the other data using buffer_replace().
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user