@cryptotaxi247 / netdata-1 / commits / d15815671

fix to update tc (QoS) names if they are updated

Costa Tsaousis committed Jan 25, 2016 at 22:43 UTC d158156710b921416b2484abd4ff8e79cdbe68b4
3 files changed +36 -5
src/appconfig.c
+34 -4
@@ -340,6 +340,34 @@ int config_get_boolean_ondemand(const char *section, const char *name, int value
340 return value;
341 }
342
343 +const char *config_set_default(const char *section, const char *name, const char *value)
344 +{
345 + struct config_value *cv;
346 +
347 + debug(D_CONFIG, "request to set config in section '%s', name '%s', value '%s'", section, name, value);
348 +
349 + struct config *co = config_find_section(section);
350 + if(!co) return config_set(section, name, value);
351 +
352 + cv = config_value_index_find(co, name, 0);
353 + if(!cv) return config_set(section, name, value);
354 +
355 + cv->flags |= CONFIG_VALUE_USED;
356 +
357 + if(cv->flags & CONFIG_VALUE_LOADED)
358 + return cv->value;
359 +
360 + if(strcmp(cv->value, value) != 0) {
361 + cv->flags |= CONFIG_VALUE_CHANGED;
362 +
363 + free(cv->value);
364 + cv->value = strdup(value);
365 + if(!cv->value) fatal("Cannot allocate config.value");
366 + }
367 +
368 + return cv->value;
369 +}
370 +
371 const char *config_set(const char *section, const char *name, const char *value)
372 {
373 struct config_value *cv;
@@ -353,11 +381,13 @@ const char *config_set(const char *section, const char *name, const char *value)
381 if(!cv) cv = config_value_create(co, name, value);
382 cv->flags |= CONFIG_VALUE_USED;
383
356 - if(strcmp(cv->value, value) != 0) cv->flags |= CONFIG_VALUE_CHANGED;
384 + if(strcmp(cv->value, value) != 0) {
385 + cv->flags |= CONFIG_VALUE_CHANGED;
386
358 - free(cv->value);
359 - cv->value = strdup(value);
360 - if(!cv->value) fatal("Cannot allocate config.value");
387 + free(cv->value);
388 + cv->value = strdup(value);
389 + if(!cv->value) fatal("Cannot allocate config.value");
390 + }
391
392 return value;
393 }
src/appconfig.h
+1
@@ -22,6 +22,7 @@ extern int config_get_boolean(const char *section, const char *name, int value);
22 extern int config_get_boolean_ondemand(const char *section, const char *name, int value);
23
24 extern const char *config_set(const char *section, const char *name, const char *value);
25 +extern const char *config_set_default(const char *section, const char *name, const char *value);
26 extern long long config_set_number(const char *section, const char *name, long long value);
27 extern int config_set_boolean(const char *section, const char *name, int value);
28
src/rrd.c
+1 -1
@@ -592,7 +592,7 @@ void rrddim_set_name(RRDSET *st, RRDDIM *rd, const char *name)
592
593 char varname[CONFIG_MAX_NAME + 1];
594 snprintf(varname, CONFIG_MAX_NAME, "dim %s name", rd->id);
595 - config_get(st->id, varname, name);
595 + config_set_default(st->id, varname, name);
596 }
597
598 void rrddim_free(RRDSET *st, RRDDIM *rd)