MINOR: checks/obj_type: Add a new object type for checks
An object type is now affected to the check structure.
diff --git a/include/proto/obj_type.h b/include/proto/obj_type.h
index cc35d5c..c1ac5f4 100644
--- a/include/proto/obj_type.h
+++ b/include/proto/obj_type.h
@@ -32,6 +32,7 @@
#include <types/server.h>
#include <types/stream.h>
#include <types/stream_interface.h>
+#include <types/checks.h>
static inline enum obj_type obj_type(const enum obj_type *t)
{
@@ -53,6 +54,7 @@
case OBJ_TYPE_SRVRQ: return "SRVRQ";
case OBJ_TYPE_CS: return "CS";
case OBJ_TYPE_STREAM: return "STREAM";
+ case OBJ_TYPE_CHECK: return "CHECK";
default: return "!INVAL!";
}
}
@@ -172,6 +174,18 @@
return __objt_stream(t);
}
+static inline struct check *__objt_check(enum obj_type *t)
+{
+ return container_of(t, struct check, obj_type);
+}
+
+static inline struct check *objt_check(enum obj_type *t)
+{
+ if (!t || *t != OBJ_TYPE_CHECK)
+ return NULL;
+ return __objt_check(t);
+}
+
static inline void *obj_base_ptr(enum obj_type *t)
{
switch (obj_type(t)) {
@@ -184,6 +198,7 @@
case OBJ_TYPE_CONN: return __objt_conn(t);
case OBJ_TYPE_SRVRQ: return __objt_dns_srvrq(t);
case OBJ_TYPE_CS: return __objt_cs(t);
+ case OBJ_TYPE_CHECK: return __objt_check(t);
default: return t; // exact pointer for invalid case
}
}
diff --git a/include/types/checks.h b/include/types/checks.h
index f52e4a4..d1a53ed 100644
--- a/include/types/checks.h
+++ b/include/types/checks.h
@@ -158,6 +158,7 @@
};
struct check {
+ enum obj_type obj_type; /* object type == OBJ_TYPE_CHECK */
struct session *sess; /* Health check session. */
struct vars vars; /* Health check dynamic variables. */
struct xprt_ops *xprt; /* transport layer operations for health checks */
diff --git a/include/types/obj_type.h b/include/types/obj_type.h
index 9410718..da3e735 100644
--- a/include/types/obj_type.h
+++ b/include/types/obj_type.h
@@ -42,6 +42,7 @@
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_CHECK, /* object is a struct check */
OBJ_TYPE_ENTRIES /* last one : number of entries */
} __attribute__((packed)) ;