X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Fgraph.c;h=6b898595f36ed703bc3854b3df34a2dcf25ac6d2;hb=5e630d84e5baa7b105ff83f81555c1e62f5a68ba;hp=2809ebbe0b65f8a386e4dce4c8dfeffe40949a21;hpb=2c85f876c1b9d5c161694cfb03cf20773b74c844;p=collection4.git diff --git a/src/graph.c b/src/graph.c index 2809ebb..6b89859 100644 --- a/src/graph.c +++ b/src/graph.c @@ -14,7 +14,7 @@ #include "graph_config.h" #include "common.h" #include "filesystem.h" -#include "utils_params.h" +#include "utils_cgi.h" #include #include @@ -204,6 +204,35 @@ int graph_get_title (graph_config_t *cfg, /* {{{ */ return (0); } /* }}} int graph_get_title */ +int graph_get_params (graph_config_t *cfg, /* {{{ */ + char *buffer, size_t buffer_size) +{ + buffer[0] = 0; + +#define COPY_FIELD(field) do { \ + const char *str = ident_get_##field (cfg->select); \ + char uri_str[1024]; \ + uri_escape (uri_str, str, sizeof (uri_str)); \ + strlcat (buffer, #field, buffer_size); \ + strlcat (buffer, "=", buffer_size); \ + strlcat (buffer, uri_str, buffer_size); \ +} while (0) + + COPY_FIELD(host); + strlcat (buffer, ";", buffer_size); + COPY_FIELD(plugin); + strlcat (buffer, ";", buffer_size); + COPY_FIELD(plugin_instance); + strlcat (buffer, ";", buffer_size); + COPY_FIELD(type); + strlcat (buffer, ";", buffer_size); + COPY_FIELD(type_instance); + +#undef COPY_FIELD + + return (0); +} /* }}} int graph_get_params */ + graph_ident_t *graph_get_selector (graph_config_t *cfg) /* {{{ */ { if (cfg == NULL) @@ -269,6 +298,12 @@ static int graph_search_submit (graph_instance_t *inst, /* {{{ */ return ((*data->callback) (data->cfg, inst, data->user_data)); } /* }}} int graph_search_submit */ +int graph_inst_foreach (graph_config_t *cfg, /* {{{ */ + inst_callback_t cb, void *user_data) +{ + return (inst_foreach (cfg->instances, cb, user_data)); +} /* }}} int graph_inst_foreach */ + int graph_search (graph_config_t *cfg, const char *term, /* {{{ */ graph_inst_callback_t callback, void *user_data) @@ -284,6 +319,8 @@ int graph_search (graph_config_t *cfg, const char *term, /* {{{ */ return (status); } + strtolower (buffer); + if (strstr (buffer, term) != NULL) { status = inst_foreach (cfg->instances, graph_search_submit, &data);