Improve maxadmin error messages

The error messages now report more detailed information about the expected
number of arguments to commands.
This commit is contained in:
Markus Makela
2016-11-13 00:18:13 +02:00
parent a5bb02bd14
commit f18cf407a7

View File

@ -1553,12 +1553,29 @@ execute_cmd(CLI_SESSION *cli)
if (strcasecmp(args[1], cmds[i].options[j].arg1) == 0) if (strcasecmp(args[1], cmds[i].options[j].arg1) == 0)
{ {
found = 1; /**< command and sub-command match */ found = 1; /**< command and sub-command match */
if (argc < cmds[i].options[j].argc_min)
if (cmds[i].options[j].argc_min == cmds[i].options[j].argc_max &&
argc != cmds[i].options[j].argc_min)
{ {
/** Wrong number of arguments */
dcb_printf(dcb, "Incorrect number of arguments: %s %s expects %d arguments\n",
cmds[i].cmd, cmds[i].options[j].arg1,
cmds[i].options[j].argc_min);
}
else if (argc < cmds[i].options[j].argc_min)
{
/** Not enough arguments */
dcb_printf(dcb, "Incorrect number of arguments: %s %s expects at least %d arguments\n", dcb_printf(dcb, "Incorrect number of arguments: %s %s expects at least %d arguments\n",
cmds[i].cmd, cmds[i].options[j].arg1, cmds[i].cmd, cmds[i].options[j].arg1,
cmds[i].options[j].argc_min); cmds[i].options[j].argc_min);
} }
else if (argc > cmds[i].options[j].argc_max)
{
/** Too many arguments */
dcb_printf(dcb, "Incorrect number of arguments: %s %s expects at most %d arguments\n",
cmds[i].cmd, cmds[i].options[j].arg1,
cmds[i].options[j].argc_max);
}
else else
{ {
unsigned long arg_list[MAXARGS] = {}; unsigned long arg_list[MAXARGS] = {};