diff options
author | Dmitrijs Goloscapovs <dmitrijs.goloscapovs@zabbix.com> | 2021-03-02 10:42:10 +0300 |
---|---|---|
committer | Dmitrijs Goloscapovs <dmitrijs.goloscapovs@zabbix.com> | 2021-03-08 18:16:40 +0300 |
commit | a6aff43f1ac37e00ab047639f533fba63ecb49e0 (patch) | |
tree | 5f5647e0301a5ffee3662d6bb02f5ef69e1442e2 /include/zbxalgo.h | |
parent | 9b38c1cc1e9f09275470f3bb64e20da8f1b43af8 (diff) |
.......PS. [ZBXNEXT-6503] added protection of Zabbix Server from overloading by proxy data
Diffstat (limited to 'include/zbxalgo.h')
-rw-r--r-- | include/zbxalgo.h | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/include/zbxalgo.h b/include/zbxalgo.h index 4e016a9171c..a3ac1de008c 100644 --- a/include/zbxalgo.h +++ b/include/zbxalgo.h @@ -413,6 +413,49 @@ void zbx_queue_ptr_push(zbx_queue_ptr_t *queue, void *value); void *zbx_queue_ptr_pop(zbx_queue_ptr_t *queue); void zbx_queue_ptr_remove_value(zbx_queue_ptr_t *queue, const void *value); +/* list item data */ +typedef struct list_item +{ + struct list_item *next; + void *data; +} +zbx_list_item_t; + +/* list data */ +typedef struct +{ + zbx_list_item_t *head; + zbx_list_item_t *tail; + zbx_mem_malloc_func_t mem_malloc_func; + zbx_mem_realloc_func_t mem_realloc_func; + zbx_mem_free_func_t mem_free_func; +} +zbx_list_t; + +/* queue item data */ +typedef struct +{ + zbx_list_t *list; + zbx_list_item_t *current; + zbx_list_item_t *next; +} +zbx_list_iterator_t; + +void zbx_list_create(zbx_list_t *queue); +void zbx_list_create_ext(zbx_list_t *queue, zbx_mem_malloc_func_t mem_malloc_func, zbx_mem_free_func_t mem_free_func); +void zbx_list_destroy(zbx_list_t *list); +void zbx_list_append(zbx_list_t *list, void *value, zbx_list_item_t **inserted); +void zbx_list_insert_after(zbx_list_t *list, zbx_list_item_t *after, void *value, zbx_list_item_t **inserted); +void zbx_list_prepend(zbx_list_t *list, void *value, zbx_list_item_t **inserted); +int zbx_list_pop(zbx_list_t *list, void **value); +int zbx_list_peek(const zbx_list_t *list, void **value); +void zbx_list_iterator_init(zbx_list_t *list, zbx_list_iterator_t *iterator); +int zbx_list_iterator_next(zbx_list_iterator_t *iterator); +int zbx_list_iterator_peek(const zbx_list_iterator_t *iterator, void **value); +void zbx_list_iterator_clear(zbx_list_iterator_t *iterator); +int zbx_list_iterator_equal(const zbx_list_iterator_t *iterator1, const zbx_list_iterator_t *iterator2); +int zbx_list_iterator_isset(const zbx_list_iterator_t *iterator); +void zbx_list_iterator_update(zbx_list_iterator_t *iterator); #endif |