diff --git a/modules/bouncedcc.cpp b/modules/bouncedcc.cpp index 51c9edfe..cf0b5093 100644 --- a/modules/bouncedcc.cpp +++ b/modules/bouncedcc.cpp @@ -163,7 +163,9 @@ class CBounceDCCMod : public CModule { bool UseClientIP() { return GetNV("UseClientIP").ToBool(); } - EModRet OnUserCTCP(CString& sTarget, CString& sMessage) override { + EModRet OnUserCTCPMessage(CCTCPMessage& Message) override { + CString sTarget = Message.GetTarget(); + CString sMessage = Message.GetText(); if (sMessage.StartsWith("DCC ")) { CString sType = sMessage.Token(1, false, " ", false, "\"", "\"", true); @@ -236,7 +238,9 @@ class CBounceDCCMod : public CModule { return CONTINUE; } - EModRet OnPrivCTCP(CNick& Nick, CString& sMessage) override { + EModRet OnPrivCTCPMessage(CCTCPMessage& Message) override { + const CNick& Nick = Message.GetNick(); + CString sMessage = Message.GetText(); CIRCNetwork* pNetwork = GetNetwork(); if (sMessage.StartsWith("DCC ") && pNetwork->IsUserAttached()) { // DCC CHAT chat 2453612361 44592 diff --git a/test/integration/tests/modules.cpp b/test/integration/tests/modules.cpp index bc023ed4..99ba6b9e 100644 --- a/test/integration/tests/modules.cpp +++ b/test/integration/tests/modules.cpp @@ -652,5 +652,28 @@ TEST_F(ZNCTest, AutoReplyModule) { ircd.Write(":thirduser!third@host PRIVMSG nick :Are you there?"); } +TEST_F(ZNCTest, BounceDCCModule) { + auto znc = Run(); + auto ircd = ConnectIRCd(); + auto client = LoginClient(); + + client.Write("znc loadmod bouncedcc"); + client.ReadUntil("Loaded module"); + + ircd.Write(":server 001 nick :Hello"); + + // OnUserCTCPMessage + client.Write("PRIVMSG friend :\001DCC CHAT chat 3232235521 12345\001"); + QByteArray line; + ircd.ReadUntilAndGet("PRIVMSG friend :\001DCC CHAT chat", line); + EXPECT_THAT(line.toStdString(), Not(HasSubstr("3232235521 12345"))); + + // OnPrivCTCPMessage + ircd.Write(":friend!user@host PRIVMSG nick :\001DCC CHAT chat 3232235521 54321\001"); + QByteArray line2; + client.ReadUntilAndGet(":friend!user@host PRIVMSG nick :\001DCC CHAT chat", line2); + EXPECT_THAT(line2.toStdString(), Not(HasSubstr("3232235521 54321"))); +} + } // namespace } // namespace znc_inttest