aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/Handler.cpp9
-rw-r--r--src/SimpleHandlers.cpp8
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();