// ----------------------------------------------------------------------------
// config name-value methods
-static inline struct config_option *appconfig_value_create(struct section *co, const char *name, const char *value)
-{
+static inline struct config_option *appconfig_value_create(struct section *co, const char *name, const char *value) {
debug(D_CONFIG, "Creating config entry for name '%s', value '%s', in section '%s'.", name, value, co->name);
struct config_option *cv = callocz(1, sizeof(struct config_option));
cv->hash = simple_hash(cv->name);
cv->value = strdupz(value);
- if(unlikely(appconfig_option_index_add(co, cv) != cv))
- error("INTERNAL ERROR: indexing of config '%s' in section '%s': already exists.", cv->name, co->name);
+ struct config_option *found = appconfig_option_index_add(co, cv);
+ if(found != cv) {
+ error("indexing of config '%s' in section '%s': already exists - using the existing one.", cv->name, co->name);
+ freez(cv->value);
+ freez(cv->name);
+ freez(cv);
+ return found;
+ }
config_section_wrlock(co);
struct config_option *cv2 = co->values;
co_new->values = cv_new;
if(unlikely(appconfig_option_index_add(co_new, cv_old) != cv_old))
- error("INTERNAL ERROR: indexing of config '%s' in section '%s', already exists.", cv_old->name, co_new->name);
+ error("INTERNAL ERROR: re-indexing of config '%s' in section '%s', already exists.", cv_old->name, co_new->name);
ret = 0;
}
else {
info("Host '%s' with guid '%s' initialized"
- ", os: %s"
- ", update every: %d"
- ", memory mode: %s"
- ", history entries: %d"
- ", streaming: %s"
- " to: '%s' (api key: '%s')"
- ", health: %s"
- ", cache_dir: '%s'"
- ", varlib_dir: '%s'"
- ", health_log: '%s'"
- ", alarms default handler: '%s'"
- ", alarms default recipient: '%s'"
+ ", os %s"
+ ", update every %d"
+ ", memory mode %s"
+ ", history entries %d"
+ ", streaming %s"
+ " (to '%s' with api key '%s')"
+ ", health %s"
+ ", cache_dir '%s'"
+ ", varlib_dir '%s'"
+ ", health_log '%s'"
+ ", alarms default handler '%s'"
+ ", alarms default recipient '%s'"
, host->hostname
, host->machine_guid
, host->os
, rrd_memory_mode_name(host->rrd_memory_mode)
, host->rrd_history_entries
, host->rrdpush_enabled?"enabled":"disabled"
- , host->rrdpush_destination
- , host->rrdpush_api_key
+ , host->rrdpush_destination?host->rrdpush_destination:""
+ , host->rrdpush_api_key?host->rrdpush_api_key:""
, host->health_enabled?"enabled":"disabled"
, host->cache_dir
, host->varlib_dir