X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=src%2Futils_cmds.c;h=f574c6a171823fc2b0314e1edabbe1ecf3f79982;hb=96dcfa56e3e5bddb15531eb72279da1f4c551ac5;hp=f5494a4c624d8acd3b7273f8e2558792eede4014;hpb=938471bee8cc86d32615144c5037f17338b19e70;p=collectd.git diff --git a/src/utils_cmds.c b/src/utils_cmds.c index f5494a4c..f574c6a1 100644 --- a/src/utils_cmds.c +++ b/src/utils_cmds.c @@ -28,6 +28,8 @@ #include "utils_cmds.h" #include "utils_cmd_flush.h" +#include "utils_cmd_getval.h" +#include "utils_cmd_listval.h" #include "utils_cmd_putval.h" #include "utils_parse_option.h" #include "daemon/common.h" @@ -197,6 +199,7 @@ cmd_status_t cmd_parsev (size_t argc, char **argv, cmd_t *ret_cmd, cmd_error_handler_t *err) { char *command = NULL; + cmd_status_t status; if ((argc < 1) || (argv == NULL) || (ret_cmd == NULL)) { @@ -210,13 +213,25 @@ cmd_status_t cmd_parsev (size_t argc, char **argv, if (strcasecmp ("FLUSH", command) == 0) { ret_cmd->type = CMD_FLUSH; - return cmd_parse_flush (argc - 1, argv + 1, + status = cmd_parse_flush (argc - 1, argv + 1, &ret_cmd->cmd.flush, err); } + else if (strcasecmp ("GETVAL", command) == 0) + { + ret_cmd->type = CMD_GETVAL; + status = cmd_parse_getval (argc - 1, argv + 1, + &ret_cmd->cmd.getval, err); + } + else if (strcasecmp ("LISTVAL", command) == 0) + { + ret_cmd->type = CMD_LISTVAL; + status = cmd_parse_listval (argc - 1, argv + 1, + &ret_cmd->cmd.listval, err); + } else if (strcasecmp ("PUTVAL", command) == 0) { ret_cmd->type = CMD_PUTVAL; - return cmd_parse_putval (argc - 1, argv + 1, + status = cmd_parse_putval (argc - 1, argv + 1, &ret_cmd->cmd.putval, err); } else @@ -227,7 +242,9 @@ cmd_status_t cmd_parsev (size_t argc, char **argv, return (CMD_UNKNOWN_COMMAND); } - return (CMD_OK); + if (status != CMD_OK) + ret_cmd->type = CMD_UNKNOWN; + return (status); } /* cmd_status_t cmd_parsev */ cmd_status_t cmd_parse (char *buffer, @@ -258,6 +275,12 @@ void cmd_destroy (cmd_t *cmd) case CMD_FLUSH: cmd_destroy_flush (&cmd->cmd.flush); break; + case CMD_GETVAL: + cmd_destroy_getval (&cmd->cmd.getval); + break; + case CMD_LISTVAL: + cmd_destroy_listval (&cmd->cmd.listval); + break; case CMD_PUTVAL: cmd_destroy_putval (&cmd->cmd.putval); break;