From: Baptiste Assmann Date: Tue, 30 Jan 2018 07:10:20 +0000 (+0100) Subject: MINOR: obj_type: new object type for struct stream X-Git-Tag: v2.0-dev3~194 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0b9ce82dfa2d6a78943f1c8d416b6797c47b1da0;p=thirdparty%2Fhaproxy.git MINOR: obj_type: new object type for struct stream This patch creates a new obj_type for the struct stream in HAProxy. --- diff --git a/include/proto/obj_type.h b/include/proto/obj_type.h index 47273caa5f..afb8d90475 100644 --- a/include/proto/obj_type.h +++ b/include/proto/obj_type.h @@ -30,6 +30,7 @@ #include #include #include +#include #include static inline enum obj_type obj_type(enum obj_type *t) @@ -51,6 +52,7 @@ static inline const char *obj_type_name(enum obj_type *t) case OBJ_TYPE_CONN: return "CONN"; case OBJ_TYPE_SRVRQ: return "SRVRQ"; case OBJ_TYPE_CS: return "CS"; + case OBJ_TYPE_STREAM: return "STREAM"; default: return "!INVAL!"; } } @@ -158,6 +160,18 @@ static inline struct dns_srvrq *objt_dns_srvrq(enum obj_type *t) return __objt_dns_srvrq(t); } +static inline struct stream *__objt_stream(enum obj_type *t) +{ + return container_of(t, struct stream, obj_type); +} + +static inline struct stream *objt_stream(enum obj_type *t) +{ + if (!t || *t != OBJ_TYPE_STREAM) + return NULL; + return __objt_stream(t); +} + static inline void *obj_base_ptr(enum obj_type *t) { switch (obj_type(t)) { diff --git a/include/types/obj_type.h b/include/types/obj_type.h index e141d69e55..94107181ec 100644 --- a/include/types/obj_type.h +++ b/include/types/obj_type.h @@ -41,6 +41,7 @@ enum obj_type { OBJ_TYPE_CONN, /* object is a struct connection */ OBJ_TYPE_SRVRQ, /* object is a struct dns_srvrq */ OBJ_TYPE_CS, /* object is a struct conn_stream */ + OBJ_TYPE_STREAM, /* object is a struct stream */ OBJ_TYPE_ENTRIES /* last one : number of entries */ } __attribute__((packed)) ; diff --git a/include/types/stream.h b/include/types/stream.h index 93a39a3ecc..b6a3e84951 100644 --- a/include/types/stream.h +++ b/include/types/stream.h @@ -151,7 +151,9 @@ struct stream { struct stktable *table; } store[8]; /* tracked stickiness values to store */ int store_count; - /* 4 unused bytes here */ + + enum obj_type obj_type; /* object type == OBJ_TYPE_STREAM */ + /* 3 unused bytes here */ struct stkctr stkctr[MAX_SESS_STKCTR]; /* content-aware stick counters */