summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 535acd1)
raw | patch | inline | side by side (parent: 535acd1)
author | Florian Forster <ff@octo.it> | |
Wed, 14 Jul 2010 14:49:20 +0000 (16:49 +0200) | ||
committer | Florian Forster <octo@leeloo.lan.home.verplant.org> | |
Wed, 14 Jul 2010 14:49:20 +0000 (16:49 +0200) |
src/graph_ident.c | patch | blob | history | |
src/graph_ident.h | patch | blob | history |
diff --git a/src/graph_ident.c b/src/graph_ident.c
index 119571f172487170ad844f4445b6160615325e9b..6111fe7f80b2d51ff375ed0eee9e52c783e5fc8f 100644 (file)
--- a/src/graph_ident.c
+++ b/src/graph_ident.c
#undef ADD_FIELD
+int ident_describe (const graph_ident_t *ident, /* {{{ */
+ const graph_ident_t *selector,
+ char *buffer, size_t buffer_size)
+{
+ if ((ident == NULL) || (selector == NULL)
+ || (buffer == NULL) || (buffer_size < 2))
+ return (EINVAL);
+
+ buffer[0] = 0;
+
+#define CHECK_FIELD(field) do { \
+ if (strcasecmp (selector->field, ident->field) != 0) \
+ { \
+ if (buffer[0] != 0) \
+ strlcat (buffer, "/", buffer_size); \
+ strlcat (buffer, ident->field, buffer_size); \
+ } \
+} while (0)
+
+ CHECK_FIELD (host);
+ CHECK_FIELD (plugin);
+ CHECK_FIELD (plugin_instance);
+ CHECK_FIELD (type);
+ CHECK_FIELD (type_instance);
+
+#undef CHECK_FIELD
+
+ if (buffer[0] == 0)
+ strlcat (buffer, "default", buffer_size);
+
+ return (0);
+} /* }}} int ident_describe */
+
time_t ident_get_mtime (const graph_ident_t *ident) /* {{{ */
{
char *file;
diff --git a/src/graph_ident.h b/src/graph_ident.h
index e433fa7f8e7f0978614a7512d9e474cdc9b8ec5b..5787ad58d411e62a9a0b2848173bc5914439b9f8 100644 (file)
--- a/src/graph_ident.h
+++ b/src/graph_ident.h
char *ident_to_file (const graph_ident_t *ident);
char *ident_to_json (const graph_ident_t *ident);
+int ident_describe (const graph_ident_t *ident, const graph_ident_t *selector,
+ char *buffer, size_t buffer_size);
+
time_t ident_get_mtime (const graph_ident_t *ident);
/* vim: set sw=2 sts=2 et fdm=marker : */