]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: applet: Add a function to know the side where an applet was created
authorChristopher Faulet <cfaulet@haproxy.com>
Wed, 24 Apr 2024 12:36:17 +0000 (14:36 +0200)
committerChristopher Faulet <cfaulet@haproxy.com>
Thu, 25 Apr 2024 16:29:57 +0000 (18:29 +0200)
appctx_is_back() function may be used to know if an applet was create on
frontend side or on backend side. It may be handy for some applets that may
exist on both sides, like peer applets.

include/haproxy/applet.h

index 7f71083ee11bda8adabafc35cc916a422d612959..705a8837e88bf13b021f157c8fa6ad670dc3aa25 100644 (file)
@@ -153,6 +153,16 @@ static inline struct stream *appctx_strm(const struct appctx *appctx)
        return __sc_strm(appctx->sedesc->sc);
 }
 
+/* returns 1 if the appctx is attached on the backend side or 0 if it is
+ * attached on the frontend side. Note that only frontend appctx may have no SC.
+ */
+static inline int appctx_is_back(const struct appctx *appctx)
+{
+       struct stconn *sc = appctx_sc(appctx);
+
+       return !!(sc && (sc->flags & SC_FL_ISBACK));
+}
+
 static forceinline void applet_fl_zero(struct appctx *appctx)
 {
        appctx->flags = 0;