diff --git a/core/adminusers.c b/core/adminusers.c index ea8412317..5fcb3d221 100644 --- a/core/adminusers.c +++ b/core/adminusers.c @@ -195,5 +195,8 @@ admin_test_user(char *user) void dcb_PrintAdminUsers(DCB *dcb) { - dcb_usersPrint(dcb, users); + if (users) + dcb_usersPrint(dcb, users); + else + dcb_printf(dcb, "No administrtion users have been defined.\n"); } diff --git a/core/config.c b/core/config.c index 005c02281..8b8b2e9c3 100644 --- a/core/config.c +++ b/core/config.c @@ -67,7 +67,7 @@ CONFIG_CONTEXT *cntxt = (CONFIG_CONTEXT *)userdata; CONFIG_CONTEXT *ptr = cntxt; CONFIG_PARAMETER *param; - if (strcmp(section, "gateway") == 0) + if (strcmp(section, "gateway") == 0 || strcasecmp(section, "MaxScale") == 0) { return handle_global_item(name, value); } diff --git a/modules/routing/debugcmd.c b/modules/routing/debugcmd.c index de460c0d5..94708d19c 100644 --- a/modules/routing/debugcmd.c +++ b/modules/routing/debugcmd.c @@ -238,10 +238,11 @@ convert_arg(char *arg, int arg_type) int execute_cmd(CLI_SESSION *cli) { -DCB *dcb = cli->session->client; -int argc, i, j, found = 0; -char *args[MAXARGS]; -char *saveptr, *delim = " \t\r\n"; +DCB *dcb = cli->session->client; +int argc, i, j, found = 0; +char *args[MAXARGS]; +char *saveptr, *delim = " \t\r\n"; +unsigned long arg1, arg2, arg3; /* Tokenize the input string */ args[0] = strtok_r(cli->cmdbuf, delim, &saveptr); @@ -321,22 +322,40 @@ char *saveptr, *delim = " \t\r\n"; cmds[i].options[j].fn(dcb); break; case 1: - cmds[i].options[j].fn(dcb, convert_arg(args[2], - cmds[i].options[j].arg_types[0])); + arg1 = convert_arg(args[2],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; case 2: - cmds[i].options[j].fn(dcb, convert_arg(args[2], - cmds[i].options[j].arg_types[0]), - convert_arg(args[3], - cmds[i].options[j].arg_types[1])); + arg1 = convert_arg(args[2],cmds[i].options[j].arg_types[0]); + arg2 = convert_arg(args[3],cmds[i].options[j].arg_types[1]); + if (arg1 && arg2) + 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; case 3: - cmds[i].options[j].fn(dcb, convert_arg(args[2], - cmds[i].options[j].arg_types[0]), - convert_arg(args[3], - cmds[i].options[j].arg_types[1]), - convert_arg(args[4], - cmds[i].options[j].arg_types[2])); + arg1 = convert_arg(args[2],cmds[i].options[j].arg_types[0]); + arg2 = convert_arg(args[3],cmds[i].options[j].arg_types[1]); + arg3 = convert_arg(args[4],cmds[i].options[j].arg_types[2]); + if (arg1 && arg2 && arg3) + cmds[i].options[j].fn(dcb, arg1, arg2, arg3); + 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; } @@ -502,7 +521,7 @@ char *err; return; } 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 dcb_printf(dcb, "Failed to add new user. %s\n", err); }