diff --git a/src/Client.cpp b/src/Client.cpp index d5aa8346..38c1ffe2 100644 --- a/src/Client.cpp +++ b/src/Client.cpp @@ -808,6 +808,7 @@ void CClient::HandleCap(const CMessage& Message) { } } } else if (sSubCmd.Equals("REQ")) { + m_bInCap = true; VCString vsTokens; Message.GetParam(1).Split(" ", vsTokens, false); diff --git a/test/integration/tests/core.cpp b/test/integration/tests/core.cpp index 7c90e90c..64e93465 100644 --- a/test/integration/tests/core.cpp +++ b/test/integration/tests/core.cpp @@ -733,5 +733,17 @@ TEST_F(ZNCTest, HashUpgrade) { client.Close(); } +TEST_F(ZNCTest, CapReqWithoutLs) { + auto znc = Run(); + auto ircd = ConnectIRCd(); + + auto client = ConnectClient(); + client.Write("CAP REQ nonono"); + client.Write("PASS :hunter2"); + client.Write("NICK nick"); + client.Write("USER foo x x :x"); + ASSERT_THAT(client.ReadRemainder().toStdString(), Not(HasSubstr("Welcome"))); +} + } // namespace } // namespace znc_inttest