From dce289a5d459092e54bf1dac1cf15d64dd3407c0 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Tue, 4 Aug 2015 16:08:19 +0200 Subject: [PATCH 1/4] CUser: add API for removing and clearing allowed hosts --- include/znc/User.h | 2 ++ src/User.cpp | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/include/znc/User.h b/include/znc/User.h index de7b7a5b..84018e45 100644 --- a/include/znc/User.h +++ b/include/znc/User.h @@ -63,6 +63,8 @@ public: CConfig ToConfig() const; bool CheckPass(const CString& sPass) const; bool AddAllowedHost(const CString& sHostMask); + bool RemAllowedHost(const CString& sHostMask); + void ClearAllowedHosts(); bool IsHostAllowed(const CString& sHostMask) const; bool IsValid(CString& sErrMsg, bool bSkipPass = false) const; static bool IsValidUserName(const CString& sUserName); diff --git a/src/User.cpp b/src/User.cpp index b1e2b9d9..f3b5b91a 100644 --- a/src/User.cpp +++ b/src/User.cpp @@ -791,6 +791,12 @@ bool CUser::AddAllowedHost(const CString& sHostMask) { m_ssAllowedHosts.insert(sHostMask); return true; } +bool CUser::RemAllowedHost(const CString& sHostMask) { + return m_ssAllowedHosts.erase(sHostMask) > 0; +} +void CUser::ClearAllowedHosts() { + m_ssAllowedHosts.clear(); +} bool CUser::IsHostAllowed(const CString& sHostMask) const { if (m_ssAllowedHosts.empty()) { From 66413ae5161f76420f9f1b49924b3f89231c6b13 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Wed, 5 Aug 2015 00:24:28 +0200 Subject: [PATCH 2/4] Add CIRCNetwork::ClearTrustedFingerPrints() --- include/znc/IRCNetwork.h | 1 + 1 file changed, 1 insertion(+) diff --git a/include/znc/IRCNetwork.h b/include/znc/IRCNetwork.h index 77ddec1c..9f8ce63a 100644 --- a/include/znc/IRCNetwork.h +++ b/include/znc/IRCNetwork.h @@ -127,6 +127,7 @@ public: const SCString& GetTrustedFingerprints() const { return m_ssTrustedFingerprints; } void AddTrustedFingerprint(const CString& sFP) { m_ssTrustedFingerprints.insert(sFP.Escape_n(CString::EHEXCOLON, CString::EHEXCOLON)); } void DelTrustedFingerprint(const CString& sFP) { m_ssTrustedFingerprints.erase(sFP); } + void ClearTrustedFingerPrints() { m_ssTrustedFingerprints.clear(); } void SetIRCConnectEnabled(bool b); bool GetIRCConnectEnabled() const { return m_bIRCConnectEnabled; } From f266b54e6e344fae842a4fbb1d7baedd13645042 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Wed, 5 Aug 2015 00:44:27 +0200 Subject: [PATCH 3/4] Fix ClearTrustedFingerprints() casing --- include/znc/IRCNetwork.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/znc/IRCNetwork.h b/include/znc/IRCNetwork.h index 9f8ce63a..d5016af4 100644 --- a/include/znc/IRCNetwork.h +++ b/include/znc/IRCNetwork.h @@ -127,7 +127,7 @@ public: const SCString& GetTrustedFingerprints() const { return m_ssTrustedFingerprints; } void AddTrustedFingerprint(const CString& sFP) { m_ssTrustedFingerprints.insert(sFP.Escape_n(CString::EHEXCOLON, CString::EHEXCOLON)); } void DelTrustedFingerprint(const CString& sFP) { m_ssTrustedFingerprints.erase(sFP); } - void ClearTrustedFingerPrints() { m_ssTrustedFingerprints.clear(); } + void ClearTrustedFingerprints() { m_ssTrustedFingerprints.clear(); } void SetIRCConnectEnabled(bool b); bool GetIRCConnectEnabled() const { return m_bIRCConnectEnabled; } From 23fb93d1c6cecef09c9f56dc483c3fe8cd50a398 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Wed, 5 Aug 2015 00:41:30 +0200 Subject: [PATCH 4/4] webadmin: use CIRCNetwork::ClearTrustedFingerprints() --- modules/webadmin.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/modules/webadmin.cpp b/modules/webadmin.cpp index 8bd3043f..dc1a6170 100644 --- a/modules/webadmin.cpp +++ b/modules/webadmin.cpp @@ -1049,9 +1049,7 @@ public: } WebSock.GetRawParam("fingerprints").Split("\n", vsArgs); - while (!pNetwork->GetTrustedFingerprints().empty()) { - pNetwork->DelTrustedFingerprint(*pNetwork->GetTrustedFingerprints().begin()); - } + pNetwork->ClearTrustedFingerprints(); for (const CString& sFP : vsArgs) { pNetwork->AddTrustedFingerprint(sFP); }