Added "type" to the value_list_t struct.
[collectd.git] / src / csv.c
index ff59f91..b5de302 100644 (file)
--- a/src/csv.c
+++ b/src/csv.c
@@ -45,6 +45,8 @@ static int value_list_to_string (char *buffer, int buffer_len,
        int i;
        gauge_t *rates = NULL;
 
+       assert (0 == strcmp (ds->type, vl->type));
+
        memset (buffer, '\0', buffer_len);
 
        status = snprintf (buffer, buffer_len, "%u", (unsigned int) vl->time);
@@ -107,6 +109,8 @@ static int value_list_to_filename (char *buffer, int buffer_len,
        int offset = 0;
        int status;
 
+       assert (0 == strcmp (ds->type, vl->type));
+
        if (datadir != NULL)
        {
                status = snprintf (buffer + offset, buffer_len - offset,
@@ -134,10 +138,10 @@ static int value_list_to_filename (char *buffer, int buffer_len,
 
        if (strlen (vl->type_instance) > 0)
                status = snprintf (buffer + offset, buffer_len - offset,
-                               "%s-%s", ds->type, vl->type_instance);
+                               "%s-%s", vl->type, vl->type_instance);
        else
                status = snprintf (buffer + offset, buffer_len - offset,
-                               "%s", ds->type);
+                               "%s", vl->type);
        if ((status < 1) || (status >= buffer_len - offset))
                return (-1);
        offset += status;
@@ -242,6 +246,11 @@ static int csv_write (const data_set_t *ds, const value_list_t *vl)
        struct flock fl;
        int          status;
 
+       if (0 != strcmp (ds->type, vl->type)) {
+               ERROR ("csv plugin: DS type does not match value list type");
+               return -1;
+       }
+
        if (value_list_to_filename (filename, sizeof (filename), ds, vl) != 0)
                return (-1);