mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-08-06 15:17:01 +02:00
MINOR: applets: Use channel's field to compute amount of data received
To be able to support endpoint-to-endpoint fast-forwarding (formerly called mux-to-mux fast-forwarding), we cannot rely on data in the input channel to compute amount of data the applet has produced. The applet API is not really designed to know how many bytes are produced or received at each call. Till now, it was not a problem because data always passed through the channels. With E2E fast-frowarding, input data may be immediately consumed. From the caller point of view (task_run_applet), there is only the total field of the input channel that will change. So let's use it now.
This commit is contained in:
parent
52c84ab0e0
commit
5f99a37ae6
@ -456,7 +456,7 @@ struct task *task_run_applet(struct task *t, void *context, unsigned int state)
|
||||
|
||||
channel_check_idletimer(ic);
|
||||
|
||||
input = channel_data(ic);
|
||||
input = ic->total;
|
||||
output = co_data(oc);
|
||||
app->applet->fct(app);
|
||||
|
||||
@ -476,7 +476,7 @@ struct task *task_run_applet(struct task *t, void *context, unsigned int state)
|
||||
sc_have_room(sco);
|
||||
}
|
||||
|
||||
input = channel_data(ic) - input;
|
||||
input = ic->total - input;
|
||||
if (input) {
|
||||
channel_check_xfer(ic, input);
|
||||
sc_ep_report_read_activity(sc);
|
||||
|
Loading…
Reference in New Issue
Block a user