Various plugins: Use the global GAUGE_FORMAT.
[collectd.git] / src / rrdtool.c
index 2f28329..bebf468 100644 (file)
@@ -227,7 +227,7 @@ static int value_list_to_string_multiple (char *buffer, int buffer_len,
                                        ":%llu", vl->values[i].counter);
                else if (ds->ds[i].type == DS_TYPE_GAUGE)
                        status = ssnprintf (buffer + offset, buffer_len - offset,
-                                       ":%lf", vl->values[i].gauge);
+                                       ":"GAUGE_FORMAT, vl->values[i].gauge);
                else if (ds->ds[i].type == DS_TYPE_DERIVE)
                        status = ssnprintf (buffer + offset, buffer_len - offset,
                                        ":%"PRIi64, vl->values[i].derive);
@@ -262,7 +262,7 @@ static int value_list_to_string (char *buffer, int buffer_len,
                                (unsigned) tt, vl->values[0].derive);
                        break;
                case DS_TYPE_GAUGE:
-                       status = ssnprintf (buffer, buffer_len, "%u:%lf",
+                       status = ssnprintf (buffer, buffer_len, "%u:"GAUGE_FORMAT,
                                (unsigned) tt, vl->values[0].gauge);
                        break;
                case DS_TYPE_COUNTER:
@@ -290,6 +290,21 @@ static int value_list_to_filename (char *buffer, size_t buffer_size,
        int status;
        size_t len;
 
+       if (datadir != NULL)
+       {
+               size_t datadir_len = strlen (datadir) + 1;
+
+               if (datadir_len >= buffer_size)
+                       return (ENOMEM);
+
+               sstrncpy (buffer, datadir, buffer_size);
+               buffer[datadir_len - 1] = '/';
+               buffer[datadir_len] = 0;
+
+               buffer += datadir_len;
+               buffer_size -= datadir_len;
+       }
+
        status = FORMAT_VL (buffer, buffer_size, vl);
        if (status != 0)
                return (status);