Merge pull request #2725 from RafaelMarinheiro/fix_grpc_query_values
authorMatthias Runge <mrunge@redhat.com>
Mon, 1 Jul 2019 07:25:33 +0000 (09:25 +0200)
committerGitHub <noreply@github.com>
Mon, 1 Jul 2019 07:25:33 +0000 (09:25 +0200)
utils_cache: fix pointer reference and meta_data ingestion

1  2 
src/daemon/utils_cache.c

diff --combined src/daemon/utils_cache.c
  
  #include "collectd.h"
  
 -#include "common.h"
 -#include "meta_data.h"
  #include "plugin.h"
 -#include "utils_avltree.h"
 +#include "utils/avltree/avltree.h"
 +#include "utils/common/common.h"
 +#include "utils/metadata/meta_data.h"
  #include "utils_cache.h"
  
  #include <assert.h>
@@@ -76,7 -76,7 +76,7 @@@ struct uc_iter_s 
    cache_entry_t *entry;
  };
  
 -static c_avl_tree_t *cache_tree = NULL;
 +static c_avl_tree_t *cache_tree;
  static pthread_mutex_t cache_lock = PTHREAD_MUTEX_INITIALIZER;
  
  static int cache_compare(const cache_entry_t *a, const cache_entry_t *b) {
@@@ -201,8 -201,12 +201,12 @@@ static int uc_insert(const data_set_t *
    ce->last_time = vl->time;
    ce->last_update = cdtime();
    ce->interval = vl->interval;
 -  ce->state = STATE_OKAY;
 +  ce->state = STATE_UNKNOWN;
  
+   if (vl->meta != NULL) {
+     ce->meta = meta_data_clone(vl->meta);
+   }
    if (c_avl_insert(cache_tree, key_copy, ce) != 0) {
      sfree(key_copy);
      ERROR("uc_insert: c_avl_insert failed.");
@@@ -826,7 -830,9 +830,7 @@@ int uc_inc_hits(const data_set_t *ds, c
   * Iterator interface
   */
  uc_iter_t *uc_get_iterator(void) {
 -  uc_iter_t *iter;
 -
 -  iter = (uc_iter_t *)calloc(1, sizeof(*iter));
 +  uc_iter_t *iter = calloc(1, sizeof(*iter));
    if (iter == NULL)
      return NULL;
  
@@@ -889,13 -895,12 +893,12 @@@ int uc_iterator_get_values(uc_iter_t *i
    if ((iter == NULL) || (iter->entry == NULL) || (ret_values == NULL) ||
        (ret_num == NULL))
      return -1;
    *ret_values =
        calloc(iter->entry->values_num, sizeof(*iter->entry->values_raw));
    if (*ret_values == NULL)
      return -1;
    for (size_t i = 0; i < iter->entry->values_num; ++i)
-     *ret_values[i] = iter->entry->values_raw[i];
+     (*ret_values)[i] = iter->entry->values_raw[i];
  
    *ret_num = iter->entry->values_num;
  
@@@ -996,7 -1001,7 +999,7 @@@ int uc_meta_data_exists(const value_lis
                          const value_list_t *vl, const char *key, double value)
                          UC_WRAP(meta_data_add_double) int uc_meta_data_add_boolean(
                              const value_list_t *vl, const char *key,
 -                            _Bool value) UC_WRAP(meta_data_add_boolean)
 +                            bool value) UC_WRAP(meta_data_add_boolean)
  
                              int uc_meta_data_get_string(const value_list_t *vl,
                                                          const char *key,
                                              const char *key, double *value)
                                              UC_WRAP(meta_data_get_double) int uc_meta_data_get_boolean(
                                                  const value_list_t *vl,
 -                                                const char *key, _Bool *value)
 +                                                const char *key, bool *value)
                                                  UC_WRAP(meta_data_get_boolean)
  #undef UC_WRAP