X-Git-Url: https://git.octo.it/?p=rrdtool.git;a=blobdiff_plain;f=src%2Frrd_update.c;h=dbf74df6629611472e5c90af4f530ce36583f338;hp=0335a9ef27670a37e1e10675ac3281dac8f9d710;hb=7cd3bc3512c11bb861490bb65553cea5cc0c98b4;hpb=096bb3f53482c95c3d2dd09e8c7b2329f6c1c2ff diff --git a/src/rrd_update.c b/src/rrd_update.c index 0335a9e..dbf74df 100644 --- a/src/rrd_update.c +++ b/src/rrd_update.c @@ -429,7 +429,10 @@ int rrd_update( { /* try to connect to rrdcached */ int status = rrdc_connect(opt_daemon); - if (status != 0) return status; + if (status != 0) { + rc = status; + goto out; + } } if ((tmplt != NULL) && rrdc_is_connected(opt_daemon)) @@ -477,6 +480,16 @@ int rrd_update_r( return _rrd_update(filename, tmplt, argc, argv, NULL); } +int rrd_update_v_r( + const char *filename, + const char *tmplt, + int argc, + const char **argv, + rrd_info_t * pcdp_summary) +{ + return _rrd_update(filename, tmplt, argc, argv, pcdp_summary); +} + int _rrd_update( const char *filename, const char *tmplt, @@ -967,7 +980,8 @@ static int get_time_from_reading( *current_time = tmp_time.tv_sec; *current_time_usec = tmp_time.tv_usec; } else { - old_locale = setlocale(LC_NUMERIC, "C"); + old_locale = setlocale(LC_NUMERIC, NULL); + setlocale(LC_NUMERIC, "C"); errno = 0; tmp = strtod(updvals[0], 0); if (errno > 0) { @@ -1079,7 +1093,8 @@ static int update_pdp_prep( } break; case DST_ABSOLUTE: - old_locale = setlocale(LC_NUMERIC, "C"); + old_locale = setlocale(LC_NUMERIC, NULL); + setlocale(LC_NUMERIC, "C"); errno = 0; pdp_new[ds_idx] = strtod(updvals[ds_idx + 1], &endptr); if (errno > 0) { @@ -1097,7 +1112,8 @@ static int update_pdp_prep( rate = pdp_new[ds_idx] / interval; break; case DST_GAUGE: - old_locale = setlocale(LC_NUMERIC, "C"); + old_locale = setlocale(LC_NUMERIC, NULL); + setlocale(LC_NUMERIC, "C"); errno = 0; pdp_new[ds_idx] = strtod(updvals[ds_idx + 1], &endptr) * interval; @@ -1548,7 +1564,7 @@ static int update_cdp_prep( if (elapsed_pdp_st > 2) { reset_cdp(rrd, elapsed_pdp_st, pdp_temp, last_seasonal_coef, seasonal_coef, rra_idx, ds_idx, cdp_idx, - current_cf); + (enum cf_en)current_cf); } }