BUG/MEDIUM: stconn: Don't needlessly wake the stream on send during fast-forward

With a connection, when data are received, if these data are sent to the
opposite side because the fast-forwarding is possible, the stream may be
woken up on some conditions (at the end of sc_app_chk_snd_conn()):

  * The channel is shut for write
  * The SC is not in the "established" state
  * The stream must explicitly be woken up on write and all data was sent
  * The connection was just established.

A bug on the last condition was introduced with the commit d89884153
("MEDIUM: channel: Use CF_WRITE_EVENT instead of CF_WRITE_PARTIAL"). The
stream is now woken up on any write events.

This patch fixes this issue and restores the original behavior. No backport
is needed.
diff --git a/src/stconn.c b/src/stconn.c
index 48c5a50..9dfd77c 100644
--- a/src/stconn.c
+++ b/src/stconn.c
@@ -870,10 +870,11 @@
 	/* in case of special condition (error, shutdown, end of write...), we
 	 * have to notify the task.
 	 */
-	if (likely((oc->flags & (CF_WRITE_EVENT|CF_SHUTW)) ||
-	          ((oc->flags & CF_WAKE_WRITE) &&
-	           ((channel_is_empty(oc) && !oc->to_forward) ||
-	            !sc_state_in(sc->state, SC_SB_EST))))) {
+	if (likely((oc->flags & CF_SHUTW) ||
+		   ((oc->flags & CF_WRITE_EVENT) && sc->state < SC_ST_EST) ||
+		   ((oc->flags & CF_WAKE_WRITE) &&
+		    ((channel_is_empty(oc) && !oc->to_forward) ||
+		     !sc_state_in(sc->state, SC_SB_EST))))) {
 	out_wakeup:
 		if (!(sc->flags & SC_FL_DONT_WAKE))
 			task_wakeup(sc_strm_task(sc), TASK_WOKEN_IO);