Remove CLI service modes

The modes weren't used and provided access to raw memory which is not
safe.
This commit is contained in:
Markus Mäkelä
2016-12-22 11:05:29 +02:00
parent 7cbd62db52
commit 2bdda586f7
4 changed files with 1 additions and 36 deletions

View File

@ -44,7 +44,6 @@ typedef struct cli_instance
{
SPINLOCK lock; /*< The instance spinlock */
SERVICE *service; /*< The debug cli service */
int mode; /*< CLI interface mode */
struct cli_session
*sessions; /*< Linked list of sessions within this instance */
struct cli_instance
@ -60,16 +59,11 @@ typedef struct cli_instance
typedef struct cli_session
{
char cmdbuf[CMDBUFLEN]; /*< The command buffer used to build up user commands */
int mode; /*< The CLI Mode for this session */
SESSION *session; /*< The gateway session */
struct cli_session
*next; /*< The next pointer for the list of sessions */
} CLI_SESSION;
/* Command line interface modes */
#define CLIM_USER 1
#define CLIM_DEVELOPER 2
MXS_END_DECLS
#endif

View File

@ -140,7 +140,6 @@ createInstance(SERVICE *service, char **options)
inst->service = service;
spinlock_init(&inst->lock);
inst->sessions = NULL;
inst->mode = CLIM_USER;
if (options)
{
@ -190,7 +189,6 @@ newSession(ROUTER *instance, SESSION *session)
spinlock_release(&inst->lock);
session->state = SESSION_STATE_READY;
client->mode = inst->mode;
return (void *)client;
}

View File

@ -139,26 +139,6 @@ createInstance(SERVICE *service, char **options)
inst->service = service;
spinlock_init(&inst->lock);
inst->sessions = NULL;
inst->mode = CLIM_USER;
if (options)
{
for (i = 0; options[i]; i++)
{
if (!strcasecmp(options[i], "developer"))
{
inst->mode = CLIM_DEVELOPER;
}
else if (!strcasecmp(options[i], "user"))
{
inst->mode = CLIM_USER;
}
else
{
MXS_ERROR("Unknown option for CLI '%s'", options[i]);
}
}
}
/*
* We have completed the creation of the instance data, so now
@ -200,16 +180,9 @@ newSession(ROUTER *instance, SESSION *session)
spinlock_release(&inst->lock);
session->state = SESSION_STATE_READY;
client->mode = inst->mode;
dcb_printf(session->client_dcb, "Welcome to the MariaDB Corporation MaxScale Debug Interface (%s).\n",
version_str);
if (client->mode == CLIM_DEVELOPER)
{
dcb_printf(session->client_dcb, "WARNING: This interface is meant for developer usage,\n");
dcb_printf(session->client_dcb,
"passing incorrect addresses to commands can endanger your MaxScale server.\n\n");
}
dcb_printf(session->client_dcb, "Type help for a list of available commands.\n\n");
return (void *)client;

View File

@ -1784,7 +1784,7 @@ execute_cmd(CLI_SESSION *cli)
for (int k = 0; k < cmds[i].options[j].argc_max && k < argc; k++)
{
arg_list[k] = convert_arg(cli->mode, args[k + 2], cmds[i].options[j].arg_types[k]);
arg_list[k] = convert_arg(args[k + 2], cmds[i].options[j].arg_types[k]);
if (arg_list[k] == 0)
{
dcb_printf(dcb, "Invalid argument: %s\n", args[k + 2]);