Add query classifier plugin.

Basic infrastructure added for being able to load query classifier
plugins using the same mechanism other plugins are loaded with.
This commit is contained in:
Johan Wikman 2016-01-26 10:38:31 +02:00
parent 42b1722e49
commit 9a8838474c
3 changed files with 13 additions and 5 deletions

View File

@ -198,6 +198,12 @@ load_module(const char *module, const char *type)
MXS_ERROR("Module '%s' does not implement the filter API.", module);
fatal = 1;
}
if (strcmp(type, MODULE_QUERY_CLASSIFIER) == 0
&& mod_info->modapi != MODULE_API_QUERY_CLASSIFIER)
{
MXS_ERROR("Module '%s' does not implement the query classifier API.", module);
fatal = 1;
}
if (fatal)
{
dlclose(dlhandle);

View File

@ -50,7 +50,8 @@ typedef enum {
MODULE_API_ROUTER,
MODULE_API_MONITOR,
MODULE_API_FILTER,
MODULE_API_AUTHENTICATION
MODULE_API_AUTHENTICATION,
MODULE_API_QUERY_CLASSIFIER,
} MODULE_API;
/**

View File

@ -56,10 +56,11 @@ typedef struct modules {
/**
* Module types
*/
#define MODULE_PROTOCOL "Protocol" /**< A protocol module type */
#define MODULE_ROUTER "Router" /**< A router module type */
#define MODULE_MONITOR "Monitor" /**< A database monitor module type */
#define MODULE_FILTER "Filter" /**< A filter module type */
#define MODULE_PROTOCOL "Protocol" /**< A protocol module type */
#define MODULE_ROUTER "Router" /**< A router module type */
#define MODULE_MONITOR "Monitor" /**< A database monitor module type */
#define MODULE_FILTER "Filter" /**< A filter module type */
#define MODULE_QUERY_CLASSIFIER "QueryClassifier" /**< A query classifier module type */
extern void *load_module(const char *module, const char *type);