diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/Handler.cpp | 9 | ||||
-rw-r--r-- | src/SimpleHandlers.cpp | 8 |
2 files changed, 14 insertions, 3 deletions
diff --git a/src/Handler.cpp b/src/Handler.cpp index 9f8bc4f..9cb1698 100644 --- a/src/Handler.cpp +++ b/src/Handler.cpp @@ -10,7 +10,10 @@ std::vector<std::string> Handler::tokenizeArguments(const std::string &arguments start = end + delimiter.length(); end = arguments.find(delimiter, start); } - tokens.emplace_back(arguments.substr(start, end)); + + // only add if there is anything to add + if (!arguments.substr(start, end).empty()) + tokens.emplace_back(arguments.substr(start, end)); return tokens; } @@ -19,9 +22,13 @@ Handler::json Handler::CommandHandler::exec(const std::string &arguments, const return func(arguments, session, payload); } +#pragma clang diagnostic push +#pragma ide diagnostic ignored "modernize-pass-by-value" +#pragma ide diagnostic ignored "performance-unnecessary-value-param" Handler::CommandHandler::CommandHandler(std::string command, Handler::handler_function func, description_function desc, void *payload) : command{std::move(command)}, func{func}, get_description{desc}, payload{payload} {} +#pragma clang diagnostic pop Handler::CommandHandler::CommandHandler(Handler::CommandHandler &&o) noexcept { command = o.command; diff --git a/src/SimpleHandlers.cpp b/src/SimpleHandlers.cpp index 408aeeb..ee801d4 100644 --- a/src/SimpleHandlers.cpp +++ b/src/SimpleHandlers.cpp @@ -61,11 +61,15 @@ Handler::json Handler::stopHandler(std::string const &arguments, std::string con auto args = tokenizeArguments(arguments); + if (args.empty()) { + return simple_response("Needs PIN!", session, true); + } + int admin_pin; std::ifstream infile("/root/.n_admin_pin"); - if (args.empty() || !(infile >> admin_pin) || admin_pin != std::stoi(args.at(0))) { - return simple_response("Needs PIN!", session, true); + if (!(infile >> admin_pin) || admin_pin != std::stoi(args.at(0))) { + return simple_response("No PIN registered on server, admin commands unavailable", session, true); } app->stop(); |