diff --git a/src/applet.c b/src/applet.c index a936600a1..cdcbc2556 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