From: Frédéric Lécaille Date: Fri, 17 May 2019 08:08:29 +0000 (+0200) Subject: MINOR: stick-table: Add "server_name" new data type. X-Git-Tag: v2.0-dev6~55 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5ad57ea85fe8da992dfc04fb2ca3e1b5b10c3e16;p=thirdparty%2Fhaproxy.git MINOR: stick-table: Add "server_name" new data type. This simple patch only adds definitions to create a new stick-table data type ID and a new standard type to store information in relation wich dictionary entries (STD_T_DICT). --- diff --git a/include/proto/stick_table.h b/include/proto/stick_table.h index a1dd06a1bd..2243d3d1bd 100644 --- a/include/proto/stick_table.h +++ b/include/proto/stick_table.h @@ -27,6 +27,7 @@ #include #include #include +#include extern struct stktable *stktables_list; @@ -75,6 +76,8 @@ static inline int stktable_type_size(int type) return sizeof(unsigned long long); case STD_T_FRQP: return sizeof(struct freq_ctr_period); + case STD_T_DICT: + return sizeof(struct dict_entry *); } return 0; } diff --git a/include/types/stick_table.h b/include/types/stick_table.h index 384a0a853a..5e15aaaa47 100644 --- a/include/types/stick_table.h +++ b/include/types/stick_table.h @@ -30,6 +30,7 @@ #include #include #include +#include #include #include #include @@ -55,6 +56,7 @@ enum { STKTABLE_DT_BYTES_OUT_RATE,/* bytes rate from servers to client */ STKTABLE_DT_GPC1, /* General Purpose Counter 1 (unsigned 32-bit integer) */ STKTABLE_DT_GPC1_RATE, /* General Purpose Counter 1's event rate */ + STKTABLE_DT_SERVER_NAME, /* The server name */ STKTABLE_STATIC_DATA_TYPES,/* number of types above */ /* up to STKTABLE_EXTRA_DATA_TYPES types may be registered here, always * followed by the number of data types, must always be last. @@ -68,6 +70,7 @@ enum { STD_T_UINT, /* data is of type unsigned int */ STD_T_ULL, /* data is of type unsigned long long */ STD_T_FRQP, /* data is of type freq_ctr_period */ + STD_T_DICT, /* data is of type key of dictionary entry */ }; /* The types of optional arguments to stored data */ @@ -84,9 +87,11 @@ union stktable_data { unsigned int std_t_uint; unsigned long long std_t_ull; struct freq_ctr_period std_t_frqp; + struct dict_entry *std_t_dict; /* types of each storable data */ int server_id; + struct dict_entry *server_name; unsigned int gpt0; unsigned int gpc0; struct freq_ctr_period gpc0_rate; diff --git a/src/stick_table.c b/src/stick_table.c index 1263ca4c4b..4901edf2a2 100644 --- a/src/stick_table.c +++ b/src/stick_table.c @@ -1036,6 +1036,7 @@ struct stktable_data_type stktable_data_types[STKTABLE_DATA_TYPES] = { [STKTABLE_DT_BYTES_OUT_RATE]= { .name = "bytes_out_rate", .std_type = STD_T_FRQP, .arg_type = ARG_T_DELAY }, [STKTABLE_DT_GPC1] = { .name = "gpc1", .std_type = STD_T_UINT }, [STKTABLE_DT_GPC1_RATE] = { .name = "gpc1_rate", .std_type = STD_T_FRQP, .arg_type = ARG_T_DELAY }, + [STKTABLE_DT_SERVER_NAME] = { .name = "server_name", .std_type = STD_T_DICT }, }; /* Registers stick-table extra data type with index , name , type