CTCP sent to *status shouldn't reach server

This commit is contained in:
Alexey Sokolov
2025-04-11 21:45:45 +01:00
parent f93829e3b3
commit ef4b59005c
2 changed files with 25 additions and 5 deletions

View File

@@ -1175,6 +1175,11 @@ bool CClient::OnActionMessage(CActionMessage& Message) {
this, &bContinue);
if (bContinue) continue;
if (sTarget.TrimPrefix(m_pUser->GetStatusPrefix())) {
EchoMessage(Message);
continue;
}
if (m_pNetwork) {
AddBuffer(Message);
EchoMessage(Message);
@@ -1385,6 +1390,10 @@ bool CClient::OnCTCPMessage(CCTCPMessage& Message) {
}
if (bContinue) continue;
if (sTarget.TrimPrefix(m_pUser->GetStatusPrefix())) {
continue;
}
if (!GetIRCSock()) {
// Some lagmeters do a NOTICE to their own nick, ignore those.
if (!sTarget.Equals(m_sNick))
@@ -1610,16 +1619,16 @@ bool CClient::OnTagMessage(CTargetMessage& Message) {
Message.SetChan(m_pNetwork->FindChan(sTarget));
}
if (sTarget.TrimPrefix(m_pUser->GetStatusPrefix())) {
EchoMessage(Message);
continue;
}
bool bContinue = false;
NETWORKMODULECALL(OnUserTagMessage(Message), m_pUser, m_pNetwork,
this, &bContinue);
if (bContinue) continue;
if (sTarget.TrimPrefix(m_pUser->GetStatusPrefix())) {
EchoMessage(Message);
continue;
}
if (m_pNetwork) {
AddBuffer(Message);
EchoMessage(Message);

View File

@@ -1029,5 +1029,16 @@ TEST_F(ZNCTest, TagMsg) {
client.ReadUntil("@bar TAGMSG #bar");
}
TEST_F(ZNCTest, StatusAction) {
auto znc = Run();
auto ircd = ConnectIRCd();
auto client = LoginClient();
ircd.Write("001 nick Welcome");
client.Write("PRIVMSG *status :\1ACTION waves\1");
client.Write("PRIVMSG *status :\1VERSION\1");
ASSERT_THAT(ircd.ReadRemainder().toStdString(), Not(HasSubstr("PRIVMSG")));
}
} // namespace
} // namespace znc_inttest