Addition of extra check in debugcli

This commit is contained in:
Mark Riddoch
2013-07-24 18:22:32 +02:00
parent d2b5f3f8b5
commit 7262e8245a
3 changed files with 41 additions and 19 deletions

View File

@ -195,5 +195,8 @@ admin_test_user(char *user)
void void
dcb_PrintAdminUsers(DCB *dcb) dcb_PrintAdminUsers(DCB *dcb)
{ {
if (users)
dcb_usersPrint(dcb, users); dcb_usersPrint(dcb, users);
else
dcb_printf(dcb, "No administrtion users have been defined.\n");
} }

View File

@ -67,7 +67,7 @@ CONFIG_CONTEXT *cntxt = (CONFIG_CONTEXT *)userdata;
CONFIG_CONTEXT *ptr = cntxt; CONFIG_CONTEXT *ptr = cntxt;
CONFIG_PARAMETER *param; CONFIG_PARAMETER *param;
if (strcmp(section, "gateway") == 0) if (strcmp(section, "gateway") == 0 || strcasecmp(section, "MaxScale") == 0)
{ {
return handle_global_item(name, value); return handle_global_item(name, value);
} }

View File

@ -242,6 +242,7 @@ DCB *dcb = cli->session->client;
int argc, i, j, found = 0; int argc, i, j, found = 0;
char *args[MAXARGS]; char *args[MAXARGS];
char *saveptr, *delim = " \t\r\n"; char *saveptr, *delim = " \t\r\n";
unsigned long arg1, arg2, arg3;
/* Tokenize the input string */ /* Tokenize the input string */
args[0] = strtok_r(cli->cmdbuf, delim, &saveptr); args[0] = strtok_r(cli->cmdbuf, delim, &saveptr);
@ -321,22 +322,40 @@ char *saveptr, *delim = " \t\r\n";
cmds[i].options[j].fn(dcb); cmds[i].options[j].fn(dcb);
break; break;
case 1: case 1:
cmds[i].options[j].fn(dcb, convert_arg(args[2], arg1 = convert_arg(args[2],cmds[i].options[j].arg_types[0]);
cmds[i].options[j].arg_types[0])); if (arg1)
cmds[i].options[j].fn(dcb, arg1);
else
dcb_printf(dcb, "Invalid argument: %s\n",
args[2]);
break; break;
case 2: case 2:
cmds[i].options[j].fn(dcb, convert_arg(args[2], arg1 = convert_arg(args[2],cmds[i].options[j].arg_types[0]);
cmds[i].options[j].arg_types[0]), arg2 = convert_arg(args[3],cmds[i].options[j].arg_types[1]);
convert_arg(args[3], if (arg1 && arg2)
cmds[i].options[j].arg_types[1])); cmds[i].options[j].fn(dcb, arg1, arg2);
else if (arg1 == 0)
dcb_printf(dcb, "Invalid argument: %s\n",
args[2]);
else
dcb_printf(dcb, "Invalid argument: %s\n",
args[3]);
break; break;
case 3: case 3:
cmds[i].options[j].fn(dcb, convert_arg(args[2], arg1 = convert_arg(args[2],cmds[i].options[j].arg_types[0]);
cmds[i].options[j].arg_types[0]), arg2 = convert_arg(args[3],cmds[i].options[j].arg_types[1]);
convert_arg(args[3], arg3 = convert_arg(args[4],cmds[i].options[j].arg_types[2]);
cmds[i].options[j].arg_types[1]), if (arg1 && arg2 && arg3)
convert_arg(args[4], cmds[i].options[j].fn(dcb, arg1, arg2, arg3);
cmds[i].options[j].arg_types[2])); else if (arg1 == 0)
dcb_printf(dcb, "Invalid argument: %s\n",
args[2]);
else if (arg2 == 0)
dcb_printf(dcb, "Invalid argument: %s\n",
args[3]);
else if (arg3 == 0)
dcb_printf(dcb, "Invalid argument: %s\n",
args[4]);
} }
found = 1; found = 1;
} }
@ -502,7 +521,7 @@ char *err;
return; return;
} }
if ((err = admin_add_user(user, passwd)) == NULL) if ((err = admin_add_user(user, passwd)) == NULL)
dcb_printf(dcb, "User %s has been succesfully added.\n", user); dcb_printf(dcb, "User %s has been successfully added.\n", user);
else else
dcb_printf(dcb, "Failed to add new user. %s\n", err); dcb_printf(dcb, "Failed to add new user. %s\n", err);
} }