[MEDIUM] stick_table: move the server ID to a generic data type
The server ID is now stored just as any other data type. It is only
allocated if needed and is manipulated just like the other ones.
diff --git a/include/types/stick_table.h b/include/types/stick_table.h
index 3e27b8f..843f5d7 100644
--- a/include/types/stick_table.h
+++ b/include/types/stick_table.h
@@ -41,6 +41,7 @@
/* The types of extra data we can store in a stick table */
enum {
+ STKTABLE_DT_SERVER_ID, /* the server ID to use with this session if > 0 */
STKTABLE_DT_CONN_CUM, /* cumulated number of connections */
STKTABLE_DATA_TYPES /* Number of data types, must always be last */
};
@@ -48,6 +49,7 @@
/* stick_table extra data. This is mainly used for casting or size computation */
union stktable_data {
unsigned int conn_cum;
+ int server_id;
};
/* known data types */
@@ -72,7 +74,6 @@
* keys and variable-sized data without making use of intermediate pointers.
*/
struct stksess {
- int sid; /* id of server to use for this session */
unsigned int expire; /* session expiration date */
struct eb32_node exp; /* ebtree node used to hold the session in expiration tree */
struct ebmb_node key; /* ebtree node used to hold the session in table */