aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/client/Response.cxx4
-rw-r--r--src/client/Response.hxx9
-rw-r--r--src/command/AllCommands.cxx5
-rw-r--r--src/protocol/Result.cxx1
-rw-r--r--src/protocol/Result.hxx1
5 files changed, 11 insertions, 9 deletions
diff --git a/src/client/Response.cxx b/src/client/Response.cxx
index c7b25e84c..9af3c74ed 100644
--- a/src/client/Response.cxx
+++ b/src/client/Response.cxx
@@ -65,8 +65,8 @@ Response::Error(enum ack code, const char *msg)
void
Response::FormatError(enum ack code, const char *fmt, ...)
{
- Format("ACK [%i@%i] {%s} ",
- (int)code, command_list_num, current_command);
+ Format("ACK [%i@%u] {%s} ",
+ (int)code, list_index, current_command);
va_list args;
va_start(args, fmt);
diff --git a/src/client/Response.hxx b/src/client/Response.hxx
index ba53298c8..044bdf307 100644
--- a/src/client/Response.hxx
+++ b/src/client/Response.hxx
@@ -31,8 +31,15 @@ class Client;
class Response {
Client &client;
+ /**
+ * This command's index in the command list. Used to generate
+ * error messages.
+ */
+ const unsigned list_index;
+
public:
- explicit Response(Client &_client):client(_client) {}
+ Response(Client &_client, unsigned _list_index)
+ :client(_client), list_index(_list_index) {}
Response(const Response &) = delete;
Response &operator=(const Response &) = delete;
diff --git a/src/command/AllCommands.cxx b/src/command/AllCommands.cxx
index aa60736f3..f98018f88 100644
--- a/src/command/AllCommands.cxx
+++ b/src/command/AllCommands.cxx
@@ -363,11 +363,9 @@ command_checked_lookup(Response &r, unsigned permission,
CommandResult
command_process(Client &client, unsigned num, char *line)
{
- Response r(client);
+ Response r(client, num);
Error error;
- command_list_num = num;
-
/* get the command name (first word on the line) */
/* we have to set current_command because Response::Error()
expects it to be set */
@@ -427,7 +425,6 @@ command_process(Client &client, unsigned num, char *line)
: CommandResult::ERROR;
current_command = nullptr;
- command_list_num = 0;
return ret;
}
diff --git a/src/protocol/Result.cxx b/src/protocol/Result.cxx
index a8a1c2d46..7d8dfb759 100644
--- a/src/protocol/Result.cxx
+++ b/src/protocol/Result.cxx
@@ -22,7 +22,6 @@
#include "client/Client.hxx"
const char *current_command;
-int command_list_num;
void
command_success(Client &client)
diff --git a/src/protocol/Result.hxx b/src/protocol/Result.hxx
index f45e91190..7dcb969e1 100644
--- a/src/protocol/Result.hxx
+++ b/src/protocol/Result.hxx
@@ -25,7 +25,6 @@
class Client;
extern const char *current_command;
-extern int command_list_num;
void
command_success(Client &client);