]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: applet: Add support for callback functions to exchange data with channels
authorChristopher Faulet <cfaulet@haproxy.com>
Thu, 11 Jan 2024 08:02:17 +0000 (09:02 +0100)
committerChristopher Faulet <cfaulet@haproxy.com>
Wed, 7 Feb 2024 14:03:14 +0000 (15:03 +0100)
For now, it is not usable, but this patch introduce the support of callback
functions, in the applet structure, to exchange data between channels and
applets. It is pretty similar to callback functions defined by muxes.

include/haproxy/applet-t.h

index 0ee4fbc3413981a0ce95245aa60172e0474e7ac2..51b3b4c8b025c7eeb952058eb70c0f0b33da702c 100644 (file)
@@ -27,6 +27,7 @@
 #include <haproxy/dynbuf-t.h>
 #include <haproxy/freq_ctr-t.h>
 #include <haproxy/obj_type-t.h>
+#include <haproxy/task-t.h>
 #include <haproxy/xref-t.h>
 
 /* flags for appctx->state */
@@ -53,6 +54,9 @@ struct applet {
        int (*init)(struct appctx *);      /* callback to init resources, may be NULL.
                                              expect 0 if ok, -1 if an error occurs. */
        void (*fct)(struct appctx *);      /* internal I/O handler, may never be NULL */
+       size_t (*rcv_buf)(struct stconn *sc, struct buffer *buf, size_t count, unsigned int flags); /* called from the upper layer to get data */
+       size_t (*snd_buf)(struct stconn *sc, struct buffer *buf, size_t count, unsigned int flags); /* Called from the upper layet to put data */
+       /* TODO: ADD fastfwd callback functions */
        void (*release)(struct appctx *);  /* callback to release resources, may be NULL */
        unsigned int timeout;              /* execution timeout. */
 };