BUG/MEDIUM: stream: Don't clear the stream_interface flags in si_update_both.

In commit d7704b534, we introduced and expiration flag on the stream interface,
which is used for the connect, the queue and the turn around. Because the
turn around state isn't an error, the flag was reset in process_stream(), and
later in commit cff6411f9 when introducing the SI_FL_ERR flag, the cleanup
of the flag at this place was erroneously generalized.
To fix this, the SI_FL_EXP flag is only cleared at the end of the turn around
state, and nobody should clear the stream interface flags anymore.

This should be backported to 1.9, it has no known impact on older versions.
diff --git a/src/stream.c b/src/stream.c
index 70e98b8..cac9a36 100644
--- a/src/stream.c
+++ b/src/stream.c
@@ -1051,6 +1051,8 @@
 		if (!(si->flags & SI_FL_EXP))
 			return;  /* still in turn-around */
 
+		si->flags &= ~SI_FL_EXP;
+
 		si->exp = TICK_ETERNITY;
 
 		/* we keep trying on the same server as long as the stream is
diff --git a/src/stream_interface.c b/src/stream_interface.c
index da31482..a46368b 100644
--- a/src/stream_interface.c
+++ b/src/stream_interface.c
@@ -830,9 +830,6 @@
 	req->flags &= ~(CF_READ_NULL|CF_READ_PARTIAL|CF_READ_ATTACHED|CF_WRITE_NULL|CF_WRITE_PARTIAL);
 	res->flags &= ~(CF_READ_NULL|CF_READ_PARTIAL|CF_READ_ATTACHED|CF_WRITE_NULL|CF_WRITE_PARTIAL);
 
-	si_f->flags &= ~SI_FL_EXP;
-	si_b->flags &= ~SI_FL_EXP;
-
 	si_f->prev_state = si_f->state;
 	si_b->prev_state = si_b->state;