From c24fa23e21091a1afb89418c03692cca63e39123 Mon Sep 17 00:00:00 2001 From: Niklas Halle Date: Fri, 28 Aug 2020 21:06:23 +0200 Subject: fixing pin stuff --- src/Handler.cpp | 9 ++++++++- 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 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(); -- cgit v1.2.3-54-g00ecf