diff --git a/include/maxscale/server.h b/include/maxscale/server.h index 21f93f97f..33243be10 100644 --- a/include/maxscale/server.h +++ b/include/maxscale/server.h @@ -368,7 +368,7 @@ extern void server_set_status_nolock(SERVER *server, uint64_t bit); extern void server_clear_status_nolock(SERVER *server, uint64_t bit); extern void server_transfer_status(SERVER *dest_server, const SERVER *source_server); extern void server_add_mon_user(SERVER *server, const char *user, const char *passwd); -extern bool server_get_parameter(const SERVER *server, const char *name, char* out, size_t size); +extern size_t server_get_parameter(const SERVER *server, const char *name, char* out, size_t size); extern void server_update_credentials(SERVER *server, const char *user, const char *passwd); extern DCB* server_get_persistent(SERVER *server, const char *user, const char* ip, const char *protocol, int id); extern void server_update_address(SERVER *server, const char *address); diff --git a/maxctrl/lib/core.js b/maxctrl/lib/core.js index 74868a16f..8d7dd6c40 100644 --- a/maxctrl/lib/core.js +++ b/maxctrl/lib/core.js @@ -105,7 +105,8 @@ program .demandCommand(1, 'At least one command is required') .command('*', 'the default command', {}, function(argv) { maxctrl(argv, function() { - return error('Unknown command ' + JSON.stringify(argv._) + '. See output of `help` for a list of commands.') + msg = argv._.length == 0 ? 'No command given' : 'Unknown command ' + JSON.stringify(argv._) + return error(msg + '. See output of `help` for a list of commands.') }) }) diff --git a/server/core/server.cc b/server/core/server.cc index 4267f20cb..1863bb06f 100644 --- a/server/core/server.cc +++ b/server/core/server.cc @@ -964,11 +964,11 @@ static void server_parameter_free(SERVER_PARAM *tofree) * @param out Buffer where value is stored, use NULL to check if the parameter exists * @param size Size of @c out, ignored if @c out is NULL * - * @return True if parameter was found + * @return Length of the parameter value or 0 if parameter was not found */ -bool server_get_parameter(const SERVER *server, const char *name, char* out, size_t size) +size_t server_get_parameter(const SERVER *server, const char *name, char* out, size_t size) { - bool found = false; + int len = 0; SERVER_PARAM *param = server->parameters; spinlock_acquire(&server->lock); @@ -976,18 +976,14 @@ bool server_get_parameter(const SERVER *server, const char *name, char* out, siz { if (strcmp(param->name, name) == 0 && param->active) { - if (out) - { - snprintf(out, size, "%s", param->value); - } - found = true; + len = snprintf(out, out ? size : 0, "%s", param->value); break; } param = param->next; } spinlock_release(&server->lock); - return found; + return len; } /**