MEDIUM: stream-interface: set the pointer to the applet into the applet context

In preparation for a later move of all the applet context outside of the
stream interface, we'll need to have access to the applet itself from the
context. Let's have a pointer to it inside the context.
diff --git a/include/proto/stream_interface.h b/include/proto/stream_interface.h
index 6dffcaf..26e9bfa 100644
--- a/include/proto/stream_interface.h
+++ b/include/proto/stream_interface.h
@@ -57,6 +57,7 @@
 	si->end = NULL;
 	conn_prepare(si->conn, NULL, NULL, NULL, si);
 	si->conn->target = NULL;
+	si->appctx.applet = NULL;
 }
 
 static inline void si_prepare_conn(struct stream_interface *si, const struct protocol *ctrl, const struct xprt_ops *xprt)
@@ -79,6 +80,7 @@
 	si->end = NULL;
 	conn_prepare(si->conn, NULL, NULL, NULL, si);
 	si->conn->target = &applet->obj_type;
+	si->appctx.applet = applet;
 }
 
 /* Sends a shutr to the connection using the data layer */
diff --git a/include/types/stream_interface.h b/include/types/stream_interface.h
index fc09aa6..588f4c4 100644
--- a/include/types/stream_interface.h
+++ b/include/types/stream_interface.h
@@ -79,6 +79,7 @@
 };
 
 struct stream_interface;
+struct si_applet;
 
 /* operations available on a stream-interface */
 struct si_ops {
@@ -95,6 +96,7 @@
 	unsigned int st0;          /* CLI state for stats, session state for peers */
 	unsigned int st1;          /* prompt for stats, session error for peers */
 	unsigned int st2;          /* output state for stats, unused by peers  */
+	struct si_applet *applet;  /* applet this context refers to */
 
 	union {
 		struct {