Commit 34b309b9 authored by Max Kellermann's avatar Max Kellermann

OtherCommands: merge duplicate code from handle_update(), handle_rescan()

parent c6725884
...@@ -183,8 +183,8 @@ handle_lsinfo(Client &client, int argc, char *argv[]) ...@@ -183,8 +183,8 @@ handle_lsinfo(Client &client, int argc, char *argv[])
return CommandResult::OK; return CommandResult::OK;
} }
CommandResult static CommandResult
handle_update(Client &client, gcc_unused int argc, char *argv[]) handle_update(Client &client, int argc, char *argv[], bool discard)
{ {
const char *path = ""; const char *path = "";
...@@ -208,7 +208,7 @@ handle_update(Client &client, gcc_unused int argc, char *argv[]) ...@@ -208,7 +208,7 @@ handle_update(Client &client, gcc_unused int argc, char *argv[])
return CommandResult::ERROR; return CommandResult::ERROR;
} }
unsigned ret = update->Enqueue(path, false); unsigned ret = update->Enqueue(path, discard);
if (ret > 0) { if (ret > 0) {
client_printf(client, "updating_db: %i\n", ret); client_printf(client, "updating_db: %i\n", ret);
return CommandResult::OK; return CommandResult::OK;
...@@ -220,36 +220,15 @@ handle_update(Client &client, gcc_unused int argc, char *argv[]) ...@@ -220,36 +220,15 @@ handle_update(Client &client, gcc_unused int argc, char *argv[])
} }
CommandResult CommandResult
handle_rescan(Client &client, gcc_unused int argc, char *argv[]) handle_update(Client &client, gcc_unused int argc, char *argv[])
{ {
const char *path = ""; return handle_update(client, argc, argv, false);
}
assert(argc <= 2);
if (argc == 2) {
path = argv[1];
if (!uri_safe_local(path)) {
command_error(client, ACK_ERROR_ARG,
"Malformed path");
return CommandResult::ERROR;
}
}
UpdateService *update = client.partition.instance.update;
if (update == nullptr) {
command_error(client, ACK_ERROR_NO_EXIST, "No database");
return CommandResult::ERROR;
}
unsigned ret = update->Enqueue(path, true); CommandResult
if (ret > 0) { handle_rescan(Client &client, gcc_unused int argc, char *argv[])
client_printf(client, "updating_db: %i\n", ret); {
return CommandResult::OK; return handle_update(client, argc, argv, true);
} else {
command_error(client, ACK_ERROR_UPDATE_ALREADY,
"already updating");
return CommandResult::ERROR;
}
} }
CommandResult CommandResult
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment