diff --git a/include/proto/stream_interface.h b/include/proto/stream_interface.h index 6dffcaf84..26e9bfa53 100644 --- a/include/proto/stream_interface.h +++ b/include/proto/stream_interface.h @@ -57,6 +57,7 @@ static inline void si_prepare_none(struct stream_interface *si) 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 @@ static inline void si_prepare_applet(struct stream_interface *si, struct si_appl 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 fc09aa613..588f4c48b 100644 --- a/include/types/stream_interface.h +++ b/include/types/stream_interface.h @@ -79,6 +79,7 @@ enum { }; struct stream_interface; +struct si_applet; /* operations available on a stream-interface */ struct si_ops { @@ -95,6 +96,7 @@ struct appctx { 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 {