diff options
Diffstat (limited to 'modules/protocol/plexus.cpp')
-rw-r--r-- | modules/protocol/plexus.cpp | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/modules/protocol/plexus.cpp b/modules/protocol/plexus.cpp index f2c7142da..252134470 100644 --- a/modules/protocol/plexus.cpp +++ b/modules/protocol/plexus.cpp @@ -178,10 +178,10 @@ public: { Server *s = Server::Find(message.target.substr(0, 3)); auto target = s ? s->GetName() : message.target.substr(0, 3); - if (message.ext.empty()) - Uplink::Send("ENCAP", target, "SASL", message.source, message.target, message.type, message.data); - else - Uplink::Send("ENCAP", target, "SASL", message.source, message.target, message.type, message.data, message.ext); + + auto newparams = message.data; + newparams.insert(newparams.begin(), { target, "SASL", message.source, message.target, message.type }); + Uplink::SendInternal({}, Me, "ENCAP", newparams); } void SendSVSLogin(const Anope::string &uid, NickAlias *na) override @@ -251,9 +251,7 @@ struct IRCDMessageEncap final m.source = params[2]; m.target = params[3]; m.type = params[4]; - m.data = params[5]; - m.ext = params.size() > 6 ? params[6] : ""; - + m.data.assign(params.begin() + 5, params.end()); SASL::sasl->ProcessMessage(m); } |