for (j = 0; j < rra_types_num; j++)
{
+ int status;
+
if (rra_num >= rra_max)
break;
- if (ssnprintf (buffer, sizeof (buffer), "RRA:%s:%3.1f:%u:%u",
- rra_types[j], cfg->xff,
- cdp_len, cdp_num) >= sizeof (buffer))
+ status = ssnprintf (buffer, sizeof (buffer), "RRA:%s:%3.1f:%u:%u",
+ rra_types[j], cfg->xff, cdp_len, cdp_num);
+
+ if ((status < 0) || ((size_t) status >= sizeof (buffer)))
{
ERROR ("rra_get: Buffer would have been truncated.");
continue;
type = "COUNTER";
else if (d->type == DS_TYPE_GAUGE)
type = "GAUGE";
+ else if (d->type == DS_TYPE_DERIVE)
+ type = "DERIVE";
+ else if (d->type == DS_TYPE_ABSOLUTE)
+ type = "ABSOLUTE";
else
{
ERROR ("rrdtool plugin: Unknown DS type: %i",
sstrncpy (min, "U", sizeof (min));
}
else
- ssnprintf (min, sizeof (min), "%lf", d->min);
+ ssnprintf (min, sizeof (min), "%f", d->min);
if (isnan (d->max))
{
sstrncpy (max, "U", sizeof (max));
}
else
- ssnprintf (max, sizeof (max), "%lf", d->max);
+ ssnprintf (max, sizeof (max), "%f", d->max);
status = ssnprintf (buffer, sizeof (buffer),
"DS:%s:%s:%i:%s:%s",
d->name, type,
(cfg->heartbeat > 0) ? cfg->heartbeat : (2 * vl->interval),
min, max);
- if ((status < 1) || (status >= sizeof (buffer)))
+ if ((status < 1) || ((size_t) status >= sizeof (buffer)))
break;
ds_def[ds_num] = sstrdup (buffer);