summaryrefslogtreecommitdiff
path: root/modules/protocol/inspircd3.cpp
diff options
context:
space:
mode:
authorSadie Powell <sadie@witchery.services>2022-12-31 21:55:05 +0000
committerSadie Powell <sadie@witchery.services>2022-12-31 21:55:05 +0000
commitb64dc09bd2c717222ba90f6f5950b2ee3a26a9ea (patch)
tree501e46df860297691aaded0fca7619c4ac444251 /modules/protocol/inspircd3.cpp
parentfee60c8e064815847662bfce9c421fc9ad7109a0 (diff)
Fix marking services pseudoclients as an oper on InspIRCd.
The bot user needs to be marked as introduced in order to send an oper type.
Diffstat (limited to 'modules/protocol/inspircd3.cpp')
-rw-r--r--modules/protocol/inspircd3.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/modules/protocol/inspircd3.cpp b/modules/protocol/inspircd3.cpp
index e370db454..940bb8f83 100644
--- a/modules/protocol/inspircd3.cpp
+++ b/modules/protocol/inspircd3.cpp
@@ -280,8 +280,16 @@ class InspIRCd3Proto : public IRCDProto
{
Anope::string modes = "+" + u->GetModes();
UplinkSocket::Message(Me) << "UID " << u->GetUID() << " " << u->timestamp << " " << u->nick << " " << u->host << " " << u->host << " " << u->GetIdent() << " 0.0.0.0 " << u->timestamp << " " << modes << " :" << u->realname;
+
if (modes.find('o') != Anope::string::npos)
+ {
+ // Mark as introduced so we can send an oper type.
+ BotInfo *bi = BotInfo::Find(u->nick, true);
+ if (bi)
+ bi->introduced = true;
+
UplinkSocket::Message(u) << "OPERTYPE :service";
+ }
}
void SendServer(const Server *server) anope_override