diff --git a/lib/perfdata/perfdatawriterconnection.cpp b/lib/perfdata/perfdatawriterconnection.cpp index 46000c28f..f8807c9ce 100644 --- a/lib/perfdata/perfdatawriterconnection.cpp +++ b/lib/perfdata/perfdatawriterconnection.cpp @@ -99,7 +99,7 @@ AsioTlsOrTcpStream PerfdataWriterConnection::MakeStream() const { AsioTlsOrTcpStream ret; if (m_SslContext) { - ret = Shared::Make(IoEngine::Get().GetIoContext(), *m_SslContext, m_Host); + ret = Shared::Make(IoEngine::Get().GetIoContext(), *m_SslContext); } else { ret = Shared::Make(IoEngine::Get().GetIoContext()); } diff --git a/test/perfdata-perfdatatargetfixture.hpp b/test/perfdata-perfdatatargetfixture.hpp index bac1c504d..871610ff5 100644 --- a/test/perfdata-perfdatatargetfixture.hpp +++ b/test/perfdata-perfdatatargetfixture.hpp @@ -39,24 +39,16 @@ public: explicit PerfdataWriterTargetFixture(AsioTlsOrTcpStream stream) : m_Stream(std::move(stream)), m_Acceptor( - IoEngine::Get().GetIoContext() + IoEngine::Get().GetIoContext(), + boost::asio::ip::tcp::endpoint{boost::asio::ip::address_v4::loopback(), 0} ) { - boost::asio::ip::tcp::endpoint ep{boost::asio::ip::address_v4::loopback(), 0}; - m_Acceptor.open(ep.protocol()); - m_Acceptor.bind(ep); } unsigned short GetPort() { return m_Acceptor.local_endpoint().port(); } - void Listen() - { - m_Acceptor.listen(); - } - void Accept() { - Listen(); BOOST_REQUIRE_NO_THROW( std::visit([&](auto& stream) { return m_Acceptor.accept(stream->lowest_layer()); }, m_Stream) ); @@ -90,7 +82,7 @@ public: void ResetStream() { if (std::holds_alternative::Ptr>(m_Stream)) { - m_Stream = Shared::Make(IoEngine::Get().GetIoContext(), *m_SslContext, "localhost"); + m_Stream = Shared::Make(IoEngine::Get().GetIoContext(), *m_SslContext); } else { m_Stream = Shared::Make(IoEngine::Get().GetIoContext()); } diff --git a/test/perfdata-perfdatawriterconnection.cpp b/test/perfdata-perfdatawriterconnection.cpp index 16ed299a9..21a9f7aed 100644 --- a/test/perfdata-perfdatawriterconnection.cpp +++ b/test/perfdata-perfdatawriterconnection.cpp @@ -17,7 +17,7 @@ public: { m_PdwSslContext = MakeContext("client"); - m_Conn = new PerfdataWriterConnection{"Test", "test", "localhost", std::to_string(GetPort()), m_PdwSslContext}; + m_Conn = new PerfdataWriterConnection{"Test", "test", "127.0.0.1", std::to_string(GetPort()), m_PdwSslContext}; } auto& GetConnection() { return *m_Conn; } @@ -130,9 +130,10 @@ BOOST_AUTO_TEST_CASE(finish_during_timeout) */ BOOST_AUTO_TEST_CASE(stuck_in_handshake) { + TestThread mockTargetThread{[&]() { Accept(); }}; + std::promise p; TestThread timeoutThread{[&]() { - Accept(); auto f = p.get_future(); GetConnection().CancelAfterTimeout(f, 50ms); BOOST_REQUIRE(f.wait_for(0ms) == std::future_status::timeout); @@ -143,6 +144,7 @@ BOOST_AUTO_TEST_CASE(stuck_in_handshake) ); REQUIRE_JOINS_WITHIN(timeoutThread, 1s); + REQUIRE_JOINS_WITHIN(mockTargetThread, 1s); } /* When the disconnect timeout runs out while sending something to a slow or blocking server, we diff --git a/test/remote-certificate-fixture.cpp b/test/remote-certificate-fixture.cpp index 7e02edb85..0d5a60d99 100644 --- a/test/remote-certificate-fixture.cpp +++ b/test/remote-certificate-fixture.cpp @@ -95,19 +95,19 @@ void RequiresCertificate::AddCaFixture(const String& caFixtureName) m_CaFixtures.emplace_back(caFixtureName); } -void RequiresCertificate::AddCertFixture(const String& name, const String& caFixture, const String& certFixture) +void RequiresCertificate::AddCertFixture(const String& cn, const String& caFixture, const String& certFixture) { auto& mts = boost::unit_test::framework::master_test_suite(); boost::unit_test::decorator::base_ptr certLabel{new boost::unit_test::label{"cert"}}; auto* setup = boost::unit_test::make_test_case( - [name]() { + [cn]() { CertificateFixture certFixture; auto persistentCertsPath = CertificateFixture::m_PersistentCertsDir / "certs"; - auto keyFile = persistentCertsPath / (name.GetData() + ".key"); - auto csrFile = persistentCertsPath / (name.GetData() + ".csr"); - auto crtFile = persistentCertsPath / (name.GetData() + ".crt"); - PkiUtility::NewCert("localhost", keyFile.string(), csrFile.string(), ""); + auto keyFile = persistentCertsPath / (cn.GetData() + ".key"); + auto csrFile = persistentCertsPath / (cn.GetData() + ".csr"); + auto crtFile = persistentCertsPath / (cn.GetData() + ".crt"); + PkiUtility::NewCert(cn, keyFile.string(), csrFile.string(), ""); PkiUtility::SignCsr(csrFile.string(), crtFile.string()); }, certFixture.GetData() + "_setup", diff --git a/test/remote-certificate-fixture.hpp b/test/remote-certificate-fixture.hpp index 4f854c899..f09a9b5c7 100644 --- a/test/remote-certificate-fixture.hpp +++ b/test/remote-certificate-fixture.hpp @@ -95,7 +95,7 @@ private: static inline std::vector m_CaFixtures; static void AddCaFixture(const String& caFixtureName); - static void AddCertFixture(const String& name, const String& caFixture, const String& certFixture); + static void AddCertFixture(const String& cn, const String& caFixture, const String& certFixture); }; } // namespace icinga