From effbcf3ac7a43df211dcbd62416cbb804b7f4883 Mon Sep 17 00:00:00 2001 From: Frederic Lecaille Date: Thu, 19 Mar 2026 14:43:50 +0100 Subject: [PATCH] MINOR: obj_type: add OBJ_TYPE_HXLOAD for haload stream objects This patch introduces the OBJ_TYPE_HXLOAD object type to represent haload stream objects (struct hastream). It also adds the associated inline helper functions objt_hastream() and __objt_hastream() to allow safe casting and retrieval of hastream contexts from a generic object pointer, following the standard container_of pattern. --- include/haproxy/obj_type-t.h | 1 + include/haproxy/obj_type.h | 14 ++++++++++++++ 2 files changed, 15 insertions(+) diff --git a/include/haproxy/obj_type-t.h b/include/haproxy/obj_type-t.h index f57fbf01a..6ffca9be3 100644 --- a/include/haproxy/obj_type-t.h +++ b/include/haproxy/obj_type-t.h @@ -47,6 +47,7 @@ enum obj_type { OBJ_TYPE_DGRAM, /* object is a struct quic_dgram */ #endif OBJ_TYPE_HATERM, /* object is a struct hstream */ + OBJ_TYPE_HALOAD, /* object is a struct hxstream */ OBJ_TYPE_ACME_RSLV, /* object is a struct acme_rslv */ OBJ_TYPE_ENTRIES /* last one : number of entries */ } __attribute__((packed)) ; diff --git a/include/haproxy/obj_type.h b/include/haproxy/obj_type.h index d10a32969..653a187c0 100644 --- a/include/haproxy/obj_type.h +++ b/include/haproxy/obj_type.h @@ -28,6 +28,7 @@ #include #include #include +#include #include #include #include @@ -217,6 +218,19 @@ static inline struct acme_rslv *objt_acme_rslv(enum obj_type *t) return __objt_acme_rslv(t); } +static inline struct hldstream *__objt_hldstream(enum obj_type *t) +{ + return container_of(t, struct hldstream, obj_type); +} + +static inline struct hldstream *objt_hldstream(enum obj_type *t) +{ + if (!t || *t != OBJ_TYPE_HALOAD) + return NULL; + + return __objt_hldstream(t); +} + #ifdef USE_QUIC static inline struct quic_dgram *__objt_dgram(enum obj_type *t) {