X-Git-Url: https://git.octo.it/?p=collection4.git;a=blobdiff_plain;f=src%2Fmain.c;h=877f61bab7e9bdc4cb1544b1daf643cde661662a;hp=7bc024a8a12a0db056ad90c22d62ae8a37484db8;hb=dd51aafb08f4023151161639ff20d50ee9239bb3;hpb=a164d755a41a47cff81a643dfdd088c6a8de76a5 diff --git a/src/main.c b/src/main.c index 7bc024a..877f61b 100644 --- a/src/main.c +++ b/src/main.c @@ -37,6 +37,8 @@ #include "utils_cgi.h" #include "action_graph.h" +#include "action_instance_data_json.h" +#include "action_graph_def_json.h" #include "action_list_graphs.h" #include "action_list_hosts.h" #include "action_search.h" @@ -62,6 +64,8 @@ static int action_usage (void); static const action_t actions[] = { { "graph", action_graph }, + { "instance_data_json", action_instance_data_json }, + { "graph_def_json", action_graph_def_json }, { "list_graphs", action_list_graphs }, { "list_hosts", action_list_hosts }, { "search", action_search }, @@ -102,19 +106,34 @@ static int handle_request (void) /* {{{ */ action = param ("action"); if (action == NULL) { - return (action_usage ()); + return (action_list_graphs ()); } else { size_t i; + int status = ENOENT; + + gl_update (/* request_served = */ 0); for (i = 0; i < actions_num; i++) { if (strcmp (action, actions[i].name) == 0) - return ((*actions[i].callback) ()); + { + status = (*actions[i].callback) (); + break; + } } - return (action_usage ()); + if (i >= actions_num) + status = action_usage (); + + /* Call finish before updating the graph list, so clients don't wait for + * the update to finish. */ + FCGI_Finish (); + + gl_update (/* request_served = */ 1); + + return (status); } } /* }}} int handle_request */