Null filter no long requires 'capabilities' argument
- If no capabilities are provided, then the filter will have none. - Now logs its capabilities as startup (useful for debugging).
This commit is contained in:
@ -25,8 +25,12 @@ namespace
|
|||||||
|
|
||||||
const char CAPABILITIES_PARAM[] = "capabilities";
|
const char CAPABILITIES_PARAM[] = "capabilities";
|
||||||
|
|
||||||
MXS_ENUM_VALUE capability_values[] =
|
const char* DEFAULT_RCAP_TYPE_NAME = "RCAP_TYPE_NONE";
|
||||||
|
const uint64_t DEFAULT_RCAP_TYPE_VALUE = 0;
|
||||||
|
|
||||||
|
const MXS_ENUM_VALUE capability_values[] =
|
||||||
{
|
{
|
||||||
|
{ DEFAULT_RCAP_TYPE_NAME, DEFAULT_RCAP_TYPE_VALUE },
|
||||||
{ "RCAP_TYPE_STMT_INPUT", RCAP_TYPE_STMT_INPUT },
|
{ "RCAP_TYPE_STMT_INPUT", RCAP_TYPE_STMT_INPUT },
|
||||||
{ "RCAP_TYPE_CONTIGUOUS_INPUT", RCAP_TYPE_CONTIGUOUS_INPUT },
|
{ "RCAP_TYPE_CONTIGUOUS_INPUT", RCAP_TYPE_CONTIGUOUS_INPUT },
|
||||||
{ "RCAP_TYPE_TRANSACTION_TRACKING", RCAP_TYPE_TRANSACTION_TRACKING },
|
{ "RCAP_TYPE_TRANSACTION_TRACKING", RCAP_TYPE_TRANSACTION_TRACKING },
|
||||||
@ -36,6 +40,9 @@ MXS_ENUM_VALUE capability_values[] =
|
|||||||
{ NULL, 0 }
|
{ NULL, 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
size_t RCAP_TYPE_NAME_MAXLEN = 30; // strlen(RCAP_TYPE_TRANSACTION_TRACKING)
|
||||||
|
size_t RCAP_TYPE_COUNT = sizeof(capability_values)/sizeof(capability_values[0]);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
@ -59,7 +66,13 @@ extern "C" MXS_MODULE* MXS_CREATE_MODULE()
|
|||||||
NULL, /* Thread init. */
|
NULL, /* Thread init. */
|
||||||
NULL, /* Thread finish. */
|
NULL, /* Thread finish. */
|
||||||
{
|
{
|
||||||
{ CAPABILITIES_PARAM, MXS_MODULE_PARAM_ENUM, NULL, MXS_MODULE_OPT_REQUIRED, capability_values },
|
{
|
||||||
|
CAPABILITIES_PARAM,
|
||||||
|
MXS_MODULE_PARAM_ENUM,
|
||||||
|
DEFAULT_RCAP_TYPE_NAME,
|
||||||
|
MXS_MODULE_OPT_NONE,
|
||||||
|
capability_values
|
||||||
|
},
|
||||||
{ MXS_END_MODULE_PARAMS }
|
{ MXS_END_MODULE_PARAMS }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@ -74,7 +87,37 @@ extern "C" MXS_MODULE* MXS_CREATE_MODULE()
|
|||||||
NullFilter::NullFilter(const char* zName, uint64_t capabilities)
|
NullFilter::NullFilter(const char* zName, uint64_t capabilities)
|
||||||
: m_capabilities(capabilities)
|
: m_capabilities(capabilities)
|
||||||
{
|
{
|
||||||
MXS_NOTICE("Null filter [%s] created.", zName);
|
const char format[] = "Null filter [%s] created, capabilities: ";
|
||||||
|
|
||||||
|
char message[sizeof(format) + strlen(zName) + (RCAP_TYPE_NAME_MAXLEN + 1) * RCAP_TYPE_COUNT + 1];
|
||||||
|
|
||||||
|
sprintf(message, format, zName);
|
||||||
|
|
||||||
|
if (m_capabilities)
|
||||||
|
{
|
||||||
|
const MXS_ENUM_VALUE* i = capability_values;
|
||||||
|
const MXS_ENUM_VALUE* end = i + RCAP_TYPE_COUNT;
|
||||||
|
|
||||||
|
while (i != end)
|
||||||
|
{
|
||||||
|
if (i->enum_value != 0)
|
||||||
|
{
|
||||||
|
if ((m_capabilities & i->enum_value) == i->enum_value)
|
||||||
|
{
|
||||||
|
strcat(message, " ");
|
||||||
|
strcat(message, i->name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
strcat(message, " (none)");
|
||||||
|
}
|
||||||
|
|
||||||
|
MXS_NOTICE("%s", message);
|
||||||
}
|
}
|
||||||
|
|
||||||
NullFilter::~NullFilter()
|
NullFilter::~NullFilter()
|
||||||
|
|||||||
Reference in New Issue
Block a user