From 2a51d5b6ea91145aab04280f868c30c2aa444f05 Mon Sep 17 00:00:00 2001 From: Christopher Faulet Date: Tue, 10 Oct 2023 18:23:05 +0200 Subject: [PATCH] BUG/MEDIUM: applet: Report a send activity everytime data were sent In the same way than for stream-connectors (see "BUG/MEDIUM: stconn: Report a send activity everytime data were sent" for details), we now report a send activity everytime something was consumed by an applet, even if some output data remains blocked into the channel's buffer. This patch must be backported to 2.8. --- src/applet.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/src/applet.c b/src/applet.c index a936600a14..cdcbc2556f 100644 --- a/src/applet.c +++ b/src/applet.c @@ -458,9 +458,13 @@ struct task *task_run_applet(struct task *t, void *context, unsigned int state) sc_oc(sc)->flags |= CF_WRITE_EVENT | CF_WROTE_DATA; if (sco->room_needed < 0 || channel_recv_max(sc_oc(sc)) >= sco->room_needed) sc_have_room(sco); + sc_ep_report_send_activity(sc); + } + else { + if (!sco->room_needed) + sc_have_room(sco); + sc_ep_report_blocked_send(sc); } - else if (!sco->room_needed) - sc_have_room(sco); if (sc_ic(sc)->flags & CF_READ_EVENT) sc_ep_report_read_activity(sc); @@ -468,11 +472,6 @@ struct task *task_run_applet(struct task *t, void *context, unsigned int state) if (sc_waiting_room(sc) && (sc->flags & SC_FL_ABRT_DONE)) { sc_ep_set(sc, SE_FL_EOS|SE_FL_ERROR); } - else if (channel_is_empty(sc_oc(sc))) - sc_ep_report_send_activity(sc); - else { - sc_ep_report_blocked_send(sc); - } /* measure the call rate and check for anomalies when too high */ if (((b_size(sc_ib(sc)) && sc->flags & SC_FL_NEED_BUFF) || // asks for a buffer which is present -- 2.47.3