From 9109587ed29d2d7e22a6e1cc376e1bc65e5b5231 Mon Sep 17 00:00:00 2001 From: Sadie Powell Date: Sun, 15 Jan 2023 21:11:43 +0000 Subject: Fix cloaking users with a non-IP hostname when using hmac-sha256-ip. --- src/modules/m_cloak.cpp | 4 ++++ src/modules/m_cloak_sha256.cpp | 7 ++----- 2 files changed, 6 insertions(+), 5 deletions(-) (limited to 'src/modules') diff --git a/src/modules/m_cloak.cpp b/src/modules/m_cloak.cpp index 670c02f82..69907498d 100644 --- a/src/modules/m_cloak.cpp +++ b/src/modules/m_cloak.cpp @@ -136,6 +136,10 @@ public: const std::string cloak = cloakmethod->Generate(user); if (!cloak.empty()) cloaks->push_back(cloak); + + ServerInstance->Logs.Debug(MODNAME, "Cloaked %s (%s/%s) as %s using the %s method.", + user->uuid.c_str(), user->GetIPString().c_str(), user->GetRealHost().c_str(), + cloak.c_str(), cloakmethod->GetName()); } ext.Set(user, cloaks); } diff --git a/src/modules/m_cloak_sha256.cpp b/src/modules/m_cloak_sha256.cpp index 65c210843..e60e89521 100644 --- a/src/modules/m_cloak_sha256.cpp +++ b/src/modules/m_cloak_sha256.cpp @@ -214,13 +214,10 @@ public: return {}; irc::sockets::sockaddrs sa(false); - if (sa.from(user->GetRealHost()) && sa.addr() == user->client_sa.addr()) + if (!cloakhost || (sa.from(user->GetRealHost()) && sa.addr() == user->client_sa.addr())) return CloakAddress(user->client_sa); - if (cloakhost) - return CloakHost(user->GetRealHost(), '.'); - - return {}; // Only reachable on hmac-sha256-ip. + return CloakHost(user->GetRealHost(), '.'); } std::string Generate(const std::string& hostip) override -- cgit v1.3.1-10-gc9f91