summaryrefslogtreecommitdiff
path: root/modules/rpc/rpc_main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'modules/rpc/rpc_main.cpp')
-rw-r--r--modules/rpc/rpc_main.cpp40
1 files changed, 27 insertions, 13 deletions
diff --git a/modules/rpc/rpc_main.cpp b/modules/rpc/rpc_main.cpp
index b5c263be1..a634e783f 100644
--- a/modules/rpc/rpc_main.cpp
+++ b/modules/rpc/rpc_main.cpp
@@ -66,7 +66,7 @@ public:
{
}
- void Run(RPCServiceInterface *iface, HTTPClient *client, RPCRequest &request) override
+ bool Run(RPCServiceInterface *iface, HTTPClient *client, RPCRequest &request) override
{
Anope::string service = request.data.size() > 0 ? request.data[0] : "";
Anope::string user = request.data.size() > 1 ? request.data[1] : "";
@@ -75,14 +75,14 @@ public:
if (service.empty() || user.empty() || command.empty())
{
request.Error(-32602, "Invalid parameters");
- return;
+ return true;
}
BotInfo *bi = BotInfo::Find(service, true);
if (!bi)
{
request.Error(-32000, "Invalid service");
- return;
+ return true;
}
NickAlias *na = NickAlias::Find(user);
@@ -109,6 +109,8 @@ public:
if (!out.empty())
request.Reply("return", out);
+
+ return true;
}
};
@@ -121,7 +123,7 @@ public:
{
}
- void Run(RPCServiceInterface *iface, HTTPClient *client, RPCRequest &request) override
+ bool Run(RPCServiceInterface *iface, HTTPClient *client, RPCRequest &request) override
{
Anope::string username = request.data.size() > 0 ? request.data[0] : "";
Anope::string password = request.data.size() > 1 ? request.data[1] : "";
@@ -129,12 +131,13 @@ public:
if (username.empty() || password.empty())
{
request.Error(-32602, "Invalid parameters");
- return;
+ return true;
}
auto *req = new RPCIdentifyRequest(me, request, client, iface, username, password);
FOREACH_MOD(OnCheckAuthentication, (NULL, req));
req->Dispatch();
+ return false;
}
};
@@ -147,7 +150,7 @@ public:
{
}
- void Run(RPCServiceInterface *iface, HTTPClient *client, RPCRequest &request) override
+ bool Run(RPCServiceInterface *iface, HTTPClient *client, RPCRequest &request) override
{
request.Reply("uptime", Anope::ToString(Anope::CurTime - Anope::StartTime));
request.Reply("uplinkname", Me->GetLinks().front()->GetName());
@@ -162,6 +165,7 @@ public:
request.Reply("usercount", Anope::ToString(UserListByNick.size()));
request.Reply("maxusercount", Anope::ToString(MaxUserCount));
request.Reply("channelcount", Anope::ToString(ChannelList.size()));
+ return true;
}
};
@@ -174,10 +178,13 @@ public:
{
}
- void Run(RPCServiceInterface *iface, HTTPClient *client, RPCRequest &request) override
+ bool Run(RPCServiceInterface *iface, HTTPClient *client, RPCRequest &request) override
{
if (request.data.empty())
- return;
+ {
+ request.Error(-32602, "Invalid parameters");
+ return true;
+ }
Channel *c = Channel::Find(request.data[0]);
@@ -221,6 +228,7 @@ public:
request.Reply("topictime", Anope::ToString(c->topic_time));
request.Reply("topicts", Anope::ToString(c->topic_ts));
}
+ return true;
}
};
@@ -233,10 +241,13 @@ public:
{
}
- void Run(RPCServiceInterface *iface, HTTPClient *client, RPCRequest &request) override
+ bool Run(RPCServiceInterface *iface, HTTPClient *client, RPCRequest &request) override
{
if (request.data.empty())
- return;
+ {
+ request.Error(-32602, "Invalid parameters");
+ return true;
+ }
User *u = User::Find(request.data[0]);
@@ -273,6 +284,7 @@ public:
request.Reply("channels", channels);
}
}
+ return true;
}
};
@@ -285,7 +297,7 @@ public:
{
}
- void Run(RPCServiceInterface *iface, HTTPClient *client, RPCRequest &request) override
+ bool Run(RPCServiceInterface *iface, HTTPClient *client, RPCRequest &request) override
{
for (auto *ot : Config->MyOperTypes)
{
@@ -296,6 +308,7 @@ public:
perms += " " + command;
request.Reply(ot->GetName(), perms);
}
+ return true;
}
};
@@ -308,7 +321,7 @@ public:
{
}
- void Run(RPCServiceInterface *iface, HTTPClient *client, RPCRequest &request) override
+ bool Run(RPCServiceInterface *iface, HTTPClient *client, RPCRequest &request) override
{
Anope::string from = request.data.size() > 0 ? request.data[0] : "";
Anope::string to = request.data.size() > 1 ? request.data[1] : "";
@@ -320,10 +333,11 @@ public:
if (!bi || !u || message.empty())
{
request.Error(-32602, "Invalid parameters");
- return;
+ return true;
}
u->SendMessage(bi, message);
+ return true;
}
};