src/plugin.c: Remove slashed from host, {plugin,type}{,-instance} here.
authorFlorian Forster <octo@leeloo.lan.home.verplant.org>
Sun, 20 May 2007 07:55:54 +0000 (09:55 +0200)
committerFlorian Forster <octo@leeloo.lan.home.verplant.org>
Sun, 20 May 2007 07:55:54 +0000 (09:55 +0200)
A fix in the disk plugin has been removed again.

src/common.c
src/common.h
src/disk.c
src/plugin.c
src/plugin.h

index bcdf59a..9a28cdb 100644 (file)
@@ -241,7 +241,7 @@ int strsubstitute (char *str, char c_from, char c_to)
        }
 
        return (ret);
-}
+} /* int strsubstitute */
 
 int escape_slashes (char *buf, int buf_len)
 {
@@ -256,8 +256,12 @@ int escape_slashes (char *buf, int buf_len)
                return (0);
        }
 
+       if (buf_len <= 1)
+               return (0);
+
        /* Move one to the left */
-       memmove (buf, buf + 1, buf_len - 1);
+       if (buf[0] == '/')
+               memmove (buf, buf + 1, buf_len - 1);
 
        for (i = 0; i < buf_len - 1; i++)
        {
@@ -269,7 +273,7 @@ int escape_slashes (char *buf, int buf_len)
        buf[i] = '\0';
 
        return (0);
-}
+} /* int escape_slashes */
 
 int timeval_sub_timespec (struct timeval *tv0, struct timeval *tv1, struct timespec *ret)
 {
index 6c097f6..7808ac9 100644 (file)
@@ -143,6 +143,8 @@ int strjoin (char *dst, size_t dst_len, char **fields, size_t fields_num, const
  */
 int escape_slashes (char *buf, int buf_len);
 
+int strsubstitute (char *str, char c_from, char c_to);
+
 /* FIXME: `timeval_sub_timespec' needs a description */
 int timeval_sub_timespec (struct timeval *tv0, struct timeval *tv1, struct timespec *ret);
 
index 5739f36..38c161f 100644 (file)
@@ -421,13 +421,6 @@ static int disk_read (void)
                minor = atoll (fields[1]);
 
                disk_name = fields[2];
-               { /* Strip slashes from disk_name */
-                       int i;
-                       for (i = 0; disk_name[i] != '\0'; i++)
-                               if (disk_name[i] == '/')
-                                       disk_name[i] = '_';
-               }
-
 
                for (ds = disklist, pre_ds = disklist; ds != NULL; pre_ds = ds, ds = ds->next)
                        if (strcmp (disk_name, ds->name) == 0)
index 64dbf78..36cd80a 100644 (file)
@@ -613,7 +613,7 @@ void plugin_shutdown_all (void)
        }
 } /* void plugin_shutdown_all */
 
-int plugin_dispatch_values (const char *name, const value_list_t *vl)
+int plugin_dispatch_values (const char *name, value_list_t *vl)
 {
        int (*callback) (const data_set_t *, const value_list_t *);
        data_set_t *ds;
@@ -650,6 +650,11 @@ int plugin_dispatch_values (const char *name, const value_list_t *vl)
        }
 #endif
 
+       escape_slashes (vl->host, sizeof (vl->host));
+       escape_slashes (vl->plugin, sizeof (vl->plugin));
+       escape_slashes (vl->plugin_instance, sizeof (vl->plugin_instance));
+       escape_slashes (vl->type_instance, sizeof (vl->type_instance));
+
        le = llist_head (list_write);
        while (le != NULL)
        {
@@ -660,7 +665,7 @@ int plugin_dispatch_values (const char *name, const value_list_t *vl)
        }
 
        return (0);
-}
+} /* int plugin_dispatch_values */
 
 void plugin_log (int level, const char *format, ...)
 {
index db556fc..83c2109 100644 (file)
@@ -178,7 +178,7 @@ int plugin_unregister_log (const char *name);
  *  `vl'        Value list of the values that have been read by a `read'
  *              function.
  */
-int plugin_dispatch_values (const char *name, const value_list_t *vl);
+int plugin_dispatch_values (const char *name, value_list_t *vl);
 
 void plugin_log (int level, const char *format, ...);
 #define ERROR(...)   plugin_log (LOG_ERR,     __VA_ARGS__)