diff --git a/src/graph_list.c b/src/graph_list.c
index 60cb82a925f0abc1751840ee32347fa8d1231dad..d767ef945585198691fd737c2d2de5c750f5eb9b 100644 (file)
--- a/src/graph_list.c
+++ b/src/graph_list.c
#include "graph_list.h"
#include "common.h"
+#include "data_provider.h"
#include "filesystem.h"
#include "graph.h"
#include "graph_config.h"
return (0);
} /* }}} int gl_register_file */
+static int gl_register_ident (const graph_ident_t *ident, /* {{{ */
+ __attribute__((unused)) void *user_data)
+{
+ /* TODO: Check for duplicates if multiple data providers are used. */
+
+ return (gl_register_file (ident, user_data));
+} /* }}} int gl_register_ident */
+
static const char *get_part_from_param (const char *prim_key, /* {{{ */
const char *sec_key)
{
if (status == 0)
{
if (statbuf.st_mtime >= gl_last_update)
- {
- fprintf (stderr, "gl_update_cache: Not writing to cache because it's "
- "at least as new as our internal data\n");
+ /* Not writing to cache because it's at least as new as our internal data */
return (0);
- }
}
else
{
return (0);
} /* }}} int gl_update_cache */
-static int gl_scan_directory (void)
-{
- return (-1);
-} /* }}} int gl_scan_directory */
-
/*
* JSON parsing functions
*/
if ((status != 0)
|| ((gl_last_update + UPDATE_INTERVAL) < now))
{
- status = fs_scan (/* callback = */ gl_register_file,
- /* user data = */ NULL);
+ /* Clear state */
+ gl_clear_instances ();
+ gl_clear_hosts ();
+ gl_destroy (&gl_dynamic, &gl_dynamic_num);
+
+ data_provider_get_idents (gl_register_ident, /* user data = */ NULL);
+
gl_last_update = now;
}