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 47273ca..afb8d90 100644
--- a/include/proto/obj_type.h
+++ b/include/proto/obj_type.h
@@ -30,6 +30,7 @@
#include <types/obj_type.h>
#include <types/proxy.h>
#include <types/server.h>
+#include <types/stream.h>
#include <types/stream_interface.h>
static inline enum obj_type obj_type(enum obj_type *t)
@@ -51,6 +52,7 @@
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 @@
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 e141d69..9410718 100644
--- a/include/types/obj_type.h
+++ b/include/types/obj_type.h
@@ -41,6 +41,7 @@
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 93a39a3..b6a3e84 100644
--- a/include/types/stream.h
+++ b/include/types/stream.h
@@ -151,7 +151,9 @@
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 */