#include "graph_ident.h"
#include "common.h"
#include "filesystem.h"
+#include "utils_cgi.h"
#include <fcgiapp.h>
#include <fcgi_stdio.h>
static _Bool part_matches (const char *selector, /* {{{ */
const char *part)
{
+#if C4_DEBUG
if ((selector == NULL) && (part == NULL))
return (1);
+#endif
if (selector == NULL) /* && (part != NULL) */
return (0);
_Bool ident_matches (const graph_ident_t *selector, /* {{{ */
const graph_ident_t *ident)
{
+#if C4_DEBUG
if ((selector == NULL) || (ident == NULL))
return (0);
+#endif
if (!part_matches (selector->host, ident->host))
return (0);
return (strdup (buffer));
} /* }}} char *ident_to_file */
+#define ADD_FIELD(field) do { \
+ char json[1024]; \
+ json_escape_copy (json, ident->field, sizeof (json)); \
+ strlcat (buffer, json, sizeof (buffer)); \
+} while (0)
+
char *ident_to_json (const graph_ident_t *ident) /* {{{ */
{
char buffer[4096];
buffer[0] = 0;
strlcat (buffer, "{\"host\":\"", sizeof (buffer));
- strlcat (buffer, ident->host, sizeof (buffer));
+ ADD_FIELD (host);
strlcat (buffer, "\",\"plugin\":\"", sizeof (buffer));
- strlcat (buffer, ident->plugin, sizeof (buffer));
+ ADD_FIELD (plugin);
strlcat (buffer, "\",\"plugin_instance\":\"", sizeof (buffer));
- strlcat (buffer, ident->plugin_instance, sizeof (buffer));
+ ADD_FIELD (plugin_instance);
strlcat (buffer, "\",\"type\":\"", sizeof (buffer));
- strlcat (buffer, ident->type, sizeof (buffer));
+ ADD_FIELD (type);
strlcat (buffer, "\",\"type_instance\":\"", sizeof (buffer));
- strlcat (buffer, ident->type_instance, sizeof (buffer));
+ ADD_FIELD (type_instance);
strlcat (buffer, "\"}", sizeof (buffer));
return (strdup (buffer));
} /* }}} char *ident_to_json */
+#undef ADD_FIELD
+
time_t ident_get_mtime (const graph_ident_t *ident) /* {{{ */
{
char *file;