From 3a3b31ebb48e10c6e311a0ef58b883de7e7e8a66 Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Tue, 14 Feb 2017 13:43:48 +0200 Subject: [PATCH] NullFilter capabilities are now instance specific There can now in one configuration be multiple Null filters, each with its own set of capabilities. --- .../modules/filter/nullfilter/nullfilter.cc | 31 +++---------------- .../modules/filter/nullfilter/nullfilter.hh | 5 ++- 2 files changed, 8 insertions(+), 28 deletions(-) diff --git a/server/modules/filter/nullfilter/nullfilter.cc b/server/modules/filter/nullfilter/nullfilter.cc index b51b4f95f..33aec2605 100644 --- a/server/modules/filter/nullfilter/nullfilter.cc +++ b/server/modules/filter/nullfilter/nullfilter.cc @@ -36,16 +36,6 @@ MXS_ENUM_VALUE capability_values[] = { NULL, 0 } }; -struct unit_variables -{ - uint64_t capabilities; - bool capabilities_set; -} this_unit = -{ - 0, - false -}; - } // @@ -81,7 +71,8 @@ extern "C" MXS_MODULE* MXS_CREATE_MODULE() // NullFilter // -NullFilter::NullFilter(const char* zName) +NullFilter::NullFilter(const char* zName, uint64_t capabilities) + : m_capabilities(capabilities) { MXS_NOTICE("Null filter [%s] created.", zName); } @@ -97,16 +88,7 @@ NullFilter* NullFilter::create(const char* zName, char**, MXS_CONFIG_PARAMETER* uint64_t capabilities = config_get_enum(pParams, CAPABILITIES_PARAM, capability_values); - if (this_unit.capabilities_set) - { - MXS_WARNING("The capabilities reported by NullFilter are currently global, " - "and not specific for a particular NullFilter instance."); - } - - this_unit.capabilities = capabilities; - this_unit.capabilities_set = true; - - return new NullFilter(zName); + return new NullFilter(zName, capabilities); } @@ -123,10 +105,5 @@ void NullFilter::diagnostics(DCB* pDcb) uint64_t NullFilter::getCapabilities() { - if (!this_unit.capabilities_set) - { - MXS_ERROR("getCapabilities() called before they have been set."); - } - - return this_unit.capabilities; + return m_capabilities; } diff --git a/server/modules/filter/nullfilter/nullfilter.hh b/server/modules/filter/nullfilter/nullfilter.hh index ceb7baf60..6bb909379 100644 --- a/server/modules/filter/nullfilter/nullfilter.hh +++ b/server/modules/filter/nullfilter/nullfilter.hh @@ -29,8 +29,11 @@ public: uint64_t getCapabilities(); private: - NullFilter(const char* zName); + NullFilter(const char* zName, uint64_t m_capabilities); NullFilter(const NullFilter&); NullFilter& operator = (const NullFilter&); + +private: + uint64_t m_capabilities; };