Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion lib/perfdata/perfdatawriterconnection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ AsioTlsOrTcpStream PerfdataWriterConnection::MakeStream() const
{
AsioTlsOrTcpStream ret;
if (m_SslContext) {
ret = Shared<AsioTlsStream>::Make(IoEngine::Get().GetIoContext(), *m_SslContext);
ret = Shared<AsioTlsStream>::Make(IoEngine::Get().GetIoContext(), *m_SslContext, m_Host);
} else {
ret = Shared<AsioTcpStream>::Make(IoEngine::Get().GetIoContext());
}
Expand Down
14 changes: 11 additions & 3 deletions test/perfdata-perfdatatargetfixture.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -39,16 +39,24 @@ class PerfdataWriterTargetFixture
explicit PerfdataWriterTargetFixture(AsioTlsOrTcpStream stream)
: m_Stream(std::move(stream)),
m_Acceptor(
IoEngine::Get().GetIoContext(),
boost::asio::ip::tcp::endpoint{boost::asio::ip::address_v4::loopback(), 0}
IoEngine::Get().GetIoContext()
)
{
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)
);
Expand Down Expand Up @@ -82,7 +90,7 @@ class PerfdataWriterTargetFixture
void ResetStream()
{
if (std::holds_alternative<Shared<AsioTlsStream>::Ptr>(m_Stream)) {
m_Stream = Shared<AsioTlsStream>::Make(IoEngine::Get().GetIoContext(), *m_SslContext);
m_Stream = Shared<AsioTlsStream>::Make(IoEngine::Get().GetIoContext(), *m_SslContext, "localhost");
} else {
m_Stream = Shared<AsioTcpStream>::Make(IoEngine::Get().GetIoContext());
}
Expand Down
6 changes: 2 additions & 4 deletions test/perfdata-perfdatawriterconnection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ class TlsPerfdataWriterFixture : public CertificateFixture, public PerfdataWrite
{
m_PdwSslContext = MakeContext("client");

m_Conn = new PerfdataWriterConnection{"Test", "test", "127.0.0.1", std::to_string(GetPort()), m_PdwSslContext};
m_Conn = new PerfdataWriterConnection{"Test", "test", "localhost", std::to_string(GetPort()), m_PdwSslContext};
}

auto& GetConnection() { return *m_Conn; }
Expand Down Expand Up @@ -130,10 +130,9 @@ BOOST_AUTO_TEST_CASE(finish_during_timeout)
*/
BOOST_AUTO_TEST_CASE(stuck_in_handshake)
{
TestThread mockTargetThread{[&]() { Accept(); }};

std::promise<void> p;
TestThread timeoutThread{[&]() {
Accept();
auto f = p.get_future();
GetConnection().CancelAfterTimeout(f, 50ms);
BOOST_REQUIRE(f.wait_for(0ms) == std::future_status::timeout);
Expand All @@ -144,7 +143,6 @@ 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
Expand Down
12 changes: 6 additions & 6 deletions test/remote-certificate-fixture.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -95,19 +95,19 @@ void RequiresCertificate::AddCaFixture(const String& caFixtureName)
m_CaFixtures.emplace_back(caFixtureName);
}

void RequiresCertificate::AddCertFixture(const String& cn, const String& caFixture, const String& certFixture)
void RequiresCertificate::AddCertFixture(const String& name, 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(
[cn]() {
[name]() {
CertificateFixture certFixture;
auto persistentCertsPath = CertificateFixture::m_PersistentCertsDir / "certs";
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(), "");
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(), "");
PkiUtility::SignCsr(csrFile.string(), crtFile.string());
},
certFixture.GetData() + "_setup",
Expand Down
2 changes: 1 addition & 1 deletion test/remote-certificate-fixture.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,7 @@ class RequiresCertificate : public CTestPropertiesBase
static inline std::vector<String> m_CaFixtures;

static void AddCaFixture(const String& caFixtureName);
static void AddCertFixture(const String& cn, const String& caFixture, const String& certFixture);
static void AddCertFixture(const String& name, const String& caFixture, const String& certFixture);
};

} // namespace icinga
Loading