projects
/
collectd.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
command parser: Set command type to UNKNOWN upon failure.
[collectd.git]
/
src
/
utils_cmds.c
diff --git
a/src/utils_cmds.c
b/src/utils_cmds.c
index
7648435
..
f574c6a
100644
(file)
--- a/
src/utils_cmds.c
+++ b/
src/utils_cmds.c
@@
-28,6
+28,7
@@
#include "utils_cmds.h"
#include "utils_cmd_flush.h"
#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 "utils_cmd_listval.h"
#include "utils_cmd_putval.h"
#include "utils_parse_option.h"
@@
-198,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_t *ret_cmd, cmd_error_handler_t *err)
{
char *command = NULL;
+ cmd_status_t status;
if ((argc < 1) || (argv == NULL) || (ret_cmd == NULL))
{
if ((argc < 1) || (argv == NULL) || (ret_cmd == NULL))
{
@@
-211,19
+213,25
@@
cmd_status_t cmd_parsev (size_t argc, char **argv,
if (strcasecmp ("FLUSH", command) == 0)
{
ret_cmd->type = CMD_FLUSH;
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);
}
&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;
else if (strcasecmp ("LISTVAL", command) == 0)
{
ret_cmd->type = CMD_LISTVAL;
-
return
cmd_parse_listval (argc - 1, argv + 1,
+
status =
cmd_parse_listval (argc - 1, argv + 1,
&ret_cmd->cmd.listval, err);
}
else if (strcasecmp ("PUTVAL", command) == 0)
{
ret_cmd->type = CMD_PUTVAL;
&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
&ret_cmd->cmd.putval, err);
}
else
@@
-234,7
+242,9
@@
cmd_status_t cmd_parsev (size_t argc, char **argv,
return (CMD_UNKNOWN_COMMAND);
}
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,
} /* cmd_status_t cmd_parsev */
cmd_status_t cmd_parse (char *buffer,
@@
-265,6
+275,9
@@
void cmd_destroy (cmd_t *cmd)
case CMD_FLUSH:
cmd_destroy_flush (&cmd->cmd.flush);
break;
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_LISTVAL:
cmd_destroy_listval (&cmd->cmd.listval);
break;