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.
This commit is contained in:
Frederic Lecaille 2026-03-19 14:43:50 +01:00
parent 7f894cc6dc
commit effbcf3ac7
2 changed files with 15 additions and 0 deletions

View File

@ -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)) ;

View File

@ -28,6 +28,7 @@
#include <haproxy/check-t.h>
#include <haproxy/connection-t.h>
#include <haproxy/hstream-t.h>
#include <haproxy/hldstream-t.h>
#include <haproxy/listener-t.h>
#include <haproxy/obj_type-t.h>
#include <haproxy/pool.h>
@ -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)
{