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 {