diff --git a/src/stconn.c b/src/stconn.c index 91c6eb728..8ced6b8dd 100644 --- a/src/stconn.c +++ b/src/stconn.c @@ -558,7 +558,6 @@ static void sc_app_abort(struct stconn *sc) sc->flags |= SC_FL_ABRT_DONE; ic->flags |= CF_READ_EVENT; - sc_ep_report_read_activity(sc); if (!sc_state_in(sc->state, SC_SB_CON|SC_SB_RDY|SC_SB_EST)) return; @@ -1361,6 +1360,7 @@ static int sc_conn_recv(struct stconn *sc) * cannot be xferred to the channel */ ic->flags |= CF_READ_EVENT; + sc_ep_report_read_activity(sc); } if (ret <= 0) { @@ -1829,6 +1829,7 @@ static int sc_conn_process(struct stconn *sc) if (sc_ep_test(sc, SE_FL_EOI) && !(sc->flags & SC_FL_EOI)) { sc->flags |= SC_FL_EOI; ic->flags |= CF_READ_EVENT; + sc_ep_report_read_activity(sc); } if (sc_ep_test(sc, SE_FL_ERROR)) @@ -1882,6 +1883,7 @@ static void sc_applet_eos(struct stconn *sc) return; sc->flags |= SC_FL_EOS; ic->flags |= CF_READ_EVENT; + sc_ep_report_read_activity(sc); /* Note: on abort, we don't call the applet */