From ffa8fd1bfc882453f598c16f9e7e039873e6768d Mon Sep 17 00:00:00 2001 From: Felipe Zimmerle Date: Tue, 22 Jan 2019 13:30:57 -0300 Subject: [PATCH] Removes reference counter for RulesSet --- headers/modsecurity/rules_set.h | 10 ++------ src/rules_set.cc | 45 --------------------------------- src/transaction.cc | 4 --- 3 files changed, 2 insertions(+), 57 deletions(-) diff --git a/headers/modsecurity/rules_set.h b/headers/modsecurity/rules_set.h index 4529c886..a9395831 100644 --- a/headers/modsecurity/rules_set.h +++ b/headers/modsecurity/rules_set.h @@ -48,25 +48,20 @@ class RulesSet : public RulesSetProperties { public: RulesSet() : RulesSetProperties(new DebugLog()), - unicode_codepage(0), #ifndef NO_LOGS m_secmarker_skipped(0), #endif - m_referenceCount(0) { } + unicode_codepage(0) { } explicit RulesSet(DebugLog *customLog) : RulesSetProperties(customLog), - unicode_codepage(0), #ifndef NO_LOGS m_secmarker_skipped(0), #endif - m_referenceCount(0) { } + unicode_codepage(0) { } ~RulesSet() { } - void incrementReferenceCount(void); - void decrementReferenceCount(void); - int loadFromUri(const char *uri); int loadRemote(const char *key, const char *uri); int load(const char *rules); @@ -87,7 +82,6 @@ class RulesSet : public RulesSetProperties { RulesSetPhases m_rulesSetPhases; private: - int m_referenceCount; #ifndef NO_LOGS uint8_t m_secmarker_skipped; #endif diff --git a/src/rules_set.cc b/src/rules_set.cc index ef1d4b70..84271e3d 100644 --- a/src/rules_set.cc +++ b/src/rules_set.cc @@ -31,51 +31,6 @@ using modsecurity::Utils::HttpsClient; namespace modsecurity { -/** - * @name incrementReferenceCount - * @brief Increment the number of transactions using this class - * @ingroup ModSecCore - * - * At certain point it is expected to have two differnt - * groups of rules attached to a specific core, this happens - * for instance when a webserver is reloading its - * configurations, the old configurations/rules is available - * for the old connections and the new rules are available - * for the newest connections. - * - * @return Number of the current transactions using this rules - * - */ -void RulesSet::incrementReferenceCount(void) { - this->m_referenceCount++; -} - - -/** - * @name decrementReferenceCount - * @brief Decrement the number of transactions using this class - * @ingroup ModSecCore - * - * @return Number of the current transactions using this rules - * - */ -void RulesSet::decrementReferenceCount(void) { - this->m_referenceCount--; - if (this->m_referenceCount == 0) { - /** - * FIXME: If there are new rules loaded (new instance - * of this class) and the reference is zero, we - * can delete this instance freeing some memory. - * - */ - /* - * std::cout << "We may want to delete this rules instance" \ - * << std::endl; - */ - } -} - - /** * @name loadFromUri * @brief load rules from a give uri diff --git a/src/transaction.cc b/src/transaction.cc index 3bff0e27..1aa2db5c 100644 --- a/src/transaction.cc +++ b/src/transaction.cc @@ -134,7 +134,6 @@ Transaction::Transaction(ModSecurity *ms, RulesSet *rules, void *logCbData) TransactionAnchoredVariables(this) { m_id = std::to_string(this->m_timeStamp) + \ std::to_string(modsecurity::utils::generate_transaction_unique_id()); - m_rules->incrementReferenceCount(); m_variableUrlEncodedError.set("0", 0); @@ -177,7 +176,6 @@ Transaction::Transaction(ModSecurity *ms, RulesSet *rules, char *id, void *logCb #endif TransactionAnchoredVariables(this) { m_id = std::string(id); - m_rules->incrementReferenceCount(); m_variableUrlEncodedError.set("0", 0); @@ -196,8 +194,6 @@ Transaction::~Transaction() { m_rulesMessages.clear(); - m_rules->decrementReferenceCount(); - intervention::free(&m_it); intervention::clean(&m_it);