diff --git a/include/zbxcommon.h b/include/zbxcommon.h index 9cc51987bed..b82a2657d8c 100644 --- a/include/zbxcommon.h +++ b/include/zbxcommon.h @@ -230,10 +230,9 @@ typedef enum ITEM_VALUE_TYPE_LOG, ITEM_VALUE_TYPE_UINT64, ITEM_VALUE_TYPE_TEXT, - ITEM_VALUE_TYPE_BIN, - /* the number of defined value types */ - ITEM_VALUE_TYPE_MAX, - ITEM_VALUE_TYPE_NONE, + ITEM_VALUE_TYPE_BIN, /* Last real value. In some places it is also used in size of array or */ + /* upper bound for iteration. Do not forget to update when adding new types. */ + ITEM_VALUE_TYPE_NONE /* Artificial value, not written into DB, used internally in server. */ } zbx_item_value_type_t; const char *zbx_item_value_type_string(zbx_item_value_type_t value_type); diff --git a/src/libs/zbxcachehistory/dbcache.c b/src/libs/zbxcachehistory/dbcache.c index 29ae0e4953e..0e99e18bb0e 100644 --- a/src/libs/zbxcachehistory/dbcache.c +++ b/src/libs/zbxcachehistory/dbcache.c @@ -1396,7 +1396,6 @@ static void DCexport_history(const ZBX_DC_HISTORY *history, int history_num, zbx break; case ITEM_VALUE_TYPE_BIN: case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; exit(EXIT_FAILURE); @@ -2018,7 +2017,6 @@ static void dc_history_clean_value(ZBX_DC_HISTORY *history) case ITEM_VALUE_TYPE_UINT64: break; case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; exit(EXIT_FAILURE); @@ -2115,7 +2113,6 @@ static void dc_history_set_value(ZBX_DC_HISTORY *hdata, unsigned char value_type hdata->value.str[zbx_db_strlen_n(hdata->value.str, ZBX_HISTORY_LOG_VALUE_LEN)] = '\0'; break; case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; exit(EXIT_FAILURE); @@ -2655,7 +2652,6 @@ static void dc_add_proxy_history(ZBX_DC_HISTORY *history, int history_num) continue; case ITEM_VALUE_TYPE_BIN: case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; continue; @@ -2728,7 +2724,6 @@ static void dc_add_proxy_history_meta(ZBX_DC_HISTORY *history, int history_num) break; case ITEM_VALUE_TYPE_BIN: case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; continue; @@ -2894,7 +2889,6 @@ static void DBmass_proxy_add_history(ZBX_DC_HISTORY *history, int history_num) h_num++; break; case ITEM_VALUE_TYPE_BIN: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; } @@ -3130,7 +3124,6 @@ static void DCmodule_prepare_history(ZBX_DC_HISTORY *history, int history_num, Z break; case ITEM_VALUE_TYPE_BIN: case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; exit(EXIT_FAILURE); @@ -4519,7 +4512,6 @@ static void hc_free_data(zbx_hc_data_t *data) case ITEM_VALUE_TYPE_FLOAT: break; case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; exit(EXIT_FAILURE); @@ -4758,7 +4750,6 @@ static int hc_clone_history_data(zbx_hc_data_t **data, const dc_item_value_t *it return FAIL; break; case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; exit(EXIT_FAILURE); @@ -4785,7 +4776,6 @@ static int hc_clone_history_data(zbx_hc_data_t **data, const dc_item_value_t *it cache->stats.history_bin_counter++; break; case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; exit(EXIT_FAILURE); @@ -4930,7 +4920,6 @@ static void hc_copy_history_data(ZBX_DC_HISTORY *history, zbx_uint64_t itemid, z break; case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; exit(EXIT_FAILURE); diff --git a/src/libs/zbxcachevalue/valuecache.c b/src/libs/zbxcachevalue/valuecache.c index f0be842a533..215cdfdf143 100644 --- a/src/libs/zbxcachevalue/valuecache.c +++ b/src/libs/zbxcachevalue/valuecache.c @@ -632,7 +632,6 @@ static void vc_history_record_vector_clean(zbx_vector_history_record_t *vector, break; case ITEM_VALUE_TYPE_BIN: case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; exit(EXIT_FAILURE); @@ -1148,7 +1147,6 @@ static size_t vc_item_free_values(zbx_vc_item_t *item, zbx_history_record_t *val break; case ITEM_VALUE_TYPE_BIN: case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; exit(EXIT_FAILURE); diff --git a/src/libs/zbxcommon/components_strings_representations.c b/src/libs/zbxcommon/components_strings_representations.c index 4643594d7ae..f05ea5b2c4c 100644 --- a/src/libs/zbxcommon/components_strings_representations.c +++ b/src/libs/zbxcommon/components_strings_representations.c @@ -178,8 +178,6 @@ const char *zbx_item_value_type_string(zbx_item_value_type_t value_type) return "Binary"; case ITEM_VALUE_TYPE_NONE: return "None"; - case ITEM_VALUE_TYPE_MAX: - return "Max"; default: return "unknown"; } diff --git a/src/libs/zbxhistory/history.c b/src/libs/zbxhistory/history.c index 550852b1039..d611d614d63 100644 --- a/src/libs/zbxhistory/history.c +++ b/src/libs/zbxhistory/history.c @@ -29,7 +29,7 @@ ZBX_VECTOR_IMPL(history_record, zbx_history_record_t) extern char *CONFIG_HISTORY_STORAGE_URL; extern char *CONFIG_HISTORY_STORAGE_OPTS; -zbx_history_iface_t history_ifaces[ITEM_VALUE_TYPE_MAX]; +zbx_history_iface_t history_ifaces[ITEM_VALUE_TYPE_BIN + 1]; /************************************************************************************ * * @@ -48,7 +48,7 @@ int zbx_history_init(char **error) const char *opts[] = {"dbl", "str", "log", "uint", "text"}; - for (i = 0; i < ITEM_VALUE_TYPE_MAX; i++) + for (i = 0; i <= ITEM_VALUE_TYPE_BIN; i++) { if (NULL == CONFIG_HISTORY_STORAGE_URL || NULL == strstr(CONFIG_HISTORY_STORAGE_OPTS, opts[i])) ret = zbx_history_sql_init(&history_ifaces[i], i, error); @@ -74,7 +74,7 @@ void zbx_history_destroy(void) { int i; - for (i = 0; i < ITEM_VALUE_TYPE_MAX; i++) + for (i = 0; i <= ITEM_VALUE_TYPE_BIN; i++) { zbx_history_iface_t *writer = &history_ifaces[i]; @@ -101,7 +101,7 @@ int zbx_history_add_values(const zbx_vector_ptr_t *history, int *ret_flush) zabbix_log(LOG_LEVEL_DEBUG, "In %s()", __func__); - for (i = 0; i < ITEM_VALUE_TYPE_MAX; i++) + for (i = 0; i <= ITEM_VALUE_TYPE_BIN; i++) { zbx_history_iface_t *writer = &history_ifaces[i]; @@ -109,7 +109,7 @@ int zbx_history_add_values(const zbx_vector_ptr_t *history, int *ret_flush) flags |= (1 << i); } - for (i = 0; i < ITEM_VALUE_TYPE_MAX; i++) + for (i = 0; i <= ITEM_VALUE_TYPE_BIN; i++) { zbx_history_iface_t *writer = &history_ifaces[i]; @@ -254,7 +254,6 @@ void zbx_history_record_clear(zbx_history_record_t *value, int value_type) case ITEM_VALUE_TYPE_BIN: break; case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; exit(EXIT_FAILURE); @@ -290,7 +289,6 @@ void zbx_history_value2str(char *buffer, size_t size, const zbx_history_value_t zbx_strlcpy_utf8(buffer, value->log->value, size); break; case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; } @@ -328,7 +326,6 @@ char *zbx_history_value2str_dyn(const zbx_history_value_t *value, int value_type str = zbx_strdup(NULL, value->log->value); break; case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; } @@ -384,7 +381,6 @@ void zbx_history_record_vector_clean(zbx_vector_history_record_t *vector, int va case ITEM_VALUE_TYPE_UINT64: break; case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; exit(EXIT_FAILURE); @@ -467,7 +463,6 @@ void zbx_history_value2variant(const zbx_history_value_t *value, unsigned char v break; case ITEM_VALUE_TYPE_BIN: case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; exit(EXIT_FAILURE); diff --git a/src/libs/zbxhistory/history_elastic.c b/src/libs/zbxhistory/history_elastic.c index 50c1ea4c6e6..46af3c90671 100644 --- a/src/libs/zbxhistory/history_elastic.c +++ b/src/libs/zbxhistory/history_elastic.c @@ -84,7 +84,7 @@ typedef struct } zbx_curlpage_t; -static zbx_curlpage_t page_w[ITEM_VALUE_TYPE_MAX]; +static zbx_curlpage_t page_w[ITEM_VALUE_TYPE_BIN + 1]; static size_t curl_write_cb(void *ptr, size_t size, size_t nmemb, void *userdata) { @@ -120,7 +120,6 @@ static zbx_history_value_t history_str2value(char *str, unsigned char value_type break; case ITEM_VALUE_TYPE_BIN: case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; exit(EXIT_FAILURE); @@ -148,7 +147,6 @@ static const char *history_value2str(const ZBX_DC_HISTORY *h) break; case ITEM_VALUE_TYPE_BIN: case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; exit(EXIT_FAILURE); diff --git a/src/libs/zbxhistory/history_sql.c b/src/libs/zbxhistory/history_sql.c index 6f39d870ba5..15544222cca 100644 --- a/src/libs/zbxhistory/history_sql.c +++ b/src/libs/zbxhistory/history_sql.c @@ -729,7 +729,6 @@ int zbx_history_sql_init(zbx_history_iface_t *hist, unsigned char value_type, ch hist->data.sql_history_func = add_history_bin; break; case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; exit(EXIT_FAILURE); diff --git a/src/libs/zbxsysinfo/sysinfo.c b/src/libs/zbxsysinfo/sysinfo.c index b1c777b4428..e3fd6a137df 100644 --- a/src/libs/zbxsysinfo/sysinfo.c +++ b/src/libs/zbxsysinfo/sysinfo.c @@ -1293,7 +1293,6 @@ int zbx_set_agent_result_type(AGENT_RESULT *result, int value_type, char *c) break; case ITEM_VALUE_TYPE_BIN: case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: THIS_SHOULD_NEVER_HAPPEN; exit(EXIT_FAILURE); diff --git a/src/libs/zbxvariant/variant_misc.c b/src/libs/zbxvariant/variant_misc.c index a19d9764f39..ee3d25cbde2 100644 --- a/src/libs/zbxvariant/variant_misc.c +++ b/src/libs/zbxvariant/variant_misc.c @@ -66,7 +66,6 @@ int zbx_variant_to_value_type(zbx_variant_t *value, unsigned char value_type, in ret = zbx_variant_convert(value, ZBX_VARIANT_STR); break; case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: *errmsg = zbx_dsprintf(NULL, "Unknown value type \"%d\"", value_type); THIS_SHOULD_NEVER_HAPPEN; diff --git a/src/zabbix_server/housekeeper/housekeeper.c b/src/zabbix_server/housekeeper/housekeeper.c index 1bb7e00edef..f1e2c861119 100644 --- a/src/zabbix_server/housekeeper/housekeeper.c +++ b/src/zabbix_server/housekeeper/housekeeper.c @@ -109,7 +109,7 @@ static zbx_hk_cleanup_table_t hk_cleanup_tables[] = { }; /* trends table offsets in the hk_cleanup_tables[] mapping */ -#define HK_UPDATE_CACHE_OFFSET_TREND_FLOAT ITEM_VALUE_TYPE_MAX +#define HK_UPDATE_CACHE_OFFSET_TREND_FLOAT (ITEM_VALUE_TYPE_BIN + 1) #define HK_UPDATE_CACHE_OFFSET_TREND_UINT (HK_UPDATE_CACHE_OFFSET_TREND_FLOAT + 1) #define HK_UPDATE_CACHE_TREND_COUNT 2 @@ -396,7 +396,7 @@ static void hk_history_update(zbx_hk_history_rule_t *rules, int now) value_type = atoi(row[1]); ZBX_STR2UINT64(hostid, row[4]); - if (value_type < ITEM_VALUE_TYPE_MAX && + if (value_type <= ITEM_VALUE_TYPE_BIN && ZBX_HK_MODE_REGULAR == *(rule = rules + value_type)->poption_mode) { tmp = zbx_strdup(tmp, row[2]); @@ -419,7 +419,7 @@ static void hk_history_update(zbx_hk_history_rule_t *rules, int now) if (0 != history && ZBX_HK_OPTION_DISABLED != *rule->poption_global) history = *rule->poption; - hk_history_item_update(rules, rule, ITEM_VALUE_TYPE_MAX, now, itemid, history); + hk_history_item_update(rules, rule, ITEM_VALUE_TYPE_BIN + 1, now, itemid, history); } if (ITEM_VALUE_TYPE_FLOAT == value_type || ITEM_VALUE_TYPE_UINT64 == value_type) diff --git a/tests/libs/zbxhistory/zbx_history_get_values.c b/tests/libs/zbxhistory/zbx_history_get_values.c index cc902c6ab27..cf388c4cf9a 100644 --- a/tests/libs/zbxhistory/zbx_history_get_values.c +++ b/tests/libs/zbxhistory/zbx_history_get_values.c @@ -157,7 +157,6 @@ static void zbx_vcmock_read_history_value(zbx_mock_handle_t hvalue, unsigned cha value->dbl = atof(data); break; case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: fail_msg("Unexpected value type: %c", value_type); } @@ -267,7 +266,6 @@ void zbx_vcmock_check_records(const char *prefix, unsigned char value_type, zbx_mock_assert_double_eq(prefix, expected->value.dbl, returned->value.dbl); break; case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: fail_msg("Unexpected value type: %c", value_type); } diff --git a/tests/mocks/valuecache/valuecache_mock.c b/tests/mocks/valuecache/valuecache_mock.c index c83e3025d2d..7dc31e3a478 100644 --- a/tests/mocks/valuecache/valuecache_mock.c +++ b/tests/mocks/valuecache/valuecache_mock.c @@ -112,7 +112,6 @@ static void zbx_vcmock_read_history_value(zbx_mock_handle_t hvalue, unsigned cha case ITEM_VALUE_TYPE_BIN: break; case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: fail_msg("Unexpected value type: %c", value_type); } @@ -206,7 +205,6 @@ static void zbx_vcmock_ds_clone_record(const zbx_history_record_t *src, unsigned break; case ITEM_VALUE_TYPE_BIN: case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: fail_msg("Unexpected value type: %c", value_type); } @@ -422,7 +420,6 @@ void zbx_vcmock_check_records(const char *prefix, unsigned char value_type, break; case ITEM_VALUE_TYPE_BIN: case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: fail_msg("Unexpected value type: %c", value_type); } @@ -492,7 +489,6 @@ void zbx_vcmock_free_dc_history(void *ptr) break; case ITEM_VALUE_TYPE_BIN: case ITEM_VALUE_TYPE_NONE: - case ITEM_VALUE_TYPE_MAX: default: fail_msg("Unexpected value type: %c", h->value_type); } diff --git a/tests/zbxmockutil.c b/tests/zbxmockutil.c index e2349057ded..a62e6024eea 100644 --- a/tests/zbxmockutil.c +++ b/tests/zbxmockutil.c @@ -136,7 +136,7 @@ unsigned char zbx_mock_str_to_value_type(const char *str) fail_msg("Unknown value type \"%s\"", str); - return ITEM_VALUE_TYPE_MAX; + return ITEM_VALUE_TYPE_NONE; } /******************************************************************************