]> git.ipfire.org Git - thirdparty/haproxy.git/commitdiff
MINOR: applet: adjust the allocation criticity based on the requested buffer
authorWilly Tarreau <w@1wt.eu>
Tue, 7 May 2024 18:09:04 +0000 (20:09 +0200)
committerWilly Tarreau <w@1wt.eu>
Fri, 10 May 2024 15:18:13 +0000 (17:18 +0200)
When we want to allocate an in buffer, it's in order to pass data to
the applet, that will consume it, so it must be seen as the same as
a send() from the higher level, i.e. MUX_TX. And for the outbuf, it's
a stream endpoint returning data, i.e. DB_SE_RX.

include/haproxy/applet.h

index e2762458fc6fff30422a7a2667049686b2ff6206..2beacf4e455d5cafb99039e78941982f2f727f4a 100644 (file)
@@ -95,8 +95,8 @@ static inline struct buffer *appctx_get_buf(struct appctx *appctx, struct buffer
        int is_inbuf = (bptr == &appctx->inbuf);
 
        if (likely(!LIST_INLIST(&appctx->buffer_wait.list))) {
-               if (unlikely((buf = b_alloc(bptr, DB_SE_RX)) == NULL)) {
-                       b_queue(DB_SE_RX, &appctx->buffer_wait, appctx, appctx_buf_available);
+               if (unlikely((buf = b_alloc(bptr, is_inbuf ? DB_MUX_TX : DB_SE_RX)) == NULL)) {
+                       b_queue(is_inbuf ? DB_MUX_TX : DB_SE_RX, &appctx->buffer_wait, appctx, appctx_buf_available);
                        applet_fl_set(appctx, is_inbuf ? APPCTX_FL_INBLK_ALLOC : APPCTX_FL_OUTBLK_ALLOC);
                }
        }