getCapabilities now get the instance as argument

Allows the capabilities to be different depending on how the
filter/router has been configured.
This commit is contained in:
Johan Wikman
2017-02-14 13:17:56 +02:00
parent 7e23789364
commit 2a49cd6451
31 changed files with 58 additions and 56 deletions

View File

@ -179,7 +179,7 @@ typedef struct mxs_filter_object
* *
* @see routing.h * @see routing.h
*/ */
uint64_t (*getCapabilities)(void); uint64_t (*getCapabilities)(MXS_FILTER *instance);
/** /**
* @brief Called for destroying a filter instance * @brief Called for destroying a filter instance

View File

@ -183,7 +183,7 @@ protected:
* MyFilterSession* newSession(MXS_SESSION* pSession); * MyFilterSession* newSession(MXS_SESSION* pSession);
* *
* void diagnostics(DCB* pDcb); * void diagnostics(DCB* pDcb);
* static uint64_t getCapabilities(); * uint64_t getCapabilities();
* }; * };
* @endcode * @endcode
* *
@ -290,11 +290,13 @@ public:
} }
} }
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_FILTER* pInstance)
{ {
uint64_t rv = 0; uint64_t rv = 0;
MXS_EXCEPTION_GUARD(rv = FilterType::getCapabilities()); FilterType* pFilter = reinterpret_cast<FilterType*>(pInstance);
MXS_EXCEPTION_GUARD(rv = pFilter->getCapabilities());
return rv; return rv;
} }

View File

@ -79,7 +79,7 @@ typedef struct mxs_router_object
DCB* backend_dcb, DCB* backend_dcb,
mxs_error_action_t action, mxs_error_action_t action,
bool* succp); bool* succp);
uint64_t (*getCapabilities)(void); uint64_t (*getCapabilities)(MXS_ROUTER *instance);
void (*destroyInstance)(MXS_ROUTER *instance); void (*destroyInstance)(MXS_ROUTER *instance);
} MXS_ROUTER_OBJECT; } MXS_ROUTER_OBJECT;

View File

@ -142,7 +142,7 @@ SERVICE* service_alloc(const char *name, const char *router)
return NULL; return NULL;
} }
service->capabilities = service->router->getCapabilities(); service->capabilities = 0;
service->client_count = 0; service->client_count = 0;
service->n_dbref = 0; service->n_dbref = 0;
service->name = my_name; service->name = my_name;
@ -485,6 +485,8 @@ int serviceInitialize(SERVICE *service)
if ((service->router_instance = service->router->createInstance(service, router_options))) if ((service->router_instance = service->router->createInstance(service, router_options)))
{ {
service->capabilities |= service->router->getCapabilities(service->router_instance);
if (!config_get_global_options()->config_check) if (!config_get_global_options()->config_check)
{ {
listeners = serviceStartAllPorts(service); listeners = serviceStartAllPorts(service);
@ -1237,7 +1239,7 @@ serviceSetFilters(SERVICE *service, char *filters)
{ {
if (filter_load(flist[n - 1])) if (filter_load(flist[n - 1]))
{ {
capabilities |= flist[n - 1]->obj->getCapabilities(); capabilities |= flist[n - 1]->obj->getCapabilities(flist[n - 1]->filter);
} }
else else
{ {

View File

@ -271,7 +271,6 @@ void CacheFilter::diagnostics(DCB* pDcb)
m_sCache->show(pDcb); m_sCache->show(pDcb);
} }
// static
uint64_t CacheFilter::getCapabilities() uint64_t CacheFilter::getCapabilities()
{ {
return RCAP_TYPE_TRANSACTION_TRACKING; return RCAP_TYPE_TRANSACTION_TRACKING;

View File

@ -39,7 +39,7 @@ public:
void diagnostics(DCB* pDcb); void diagnostics(DCB* pDcb);
static uint64_t getCapabilities(); uint64_t getCapabilities();
private: private:
CacheFilter(); CacheFilter();

View File

@ -56,7 +56,7 @@ static void freeSession(MXS_FILTER *instance, MXS_FILTER_SESSION *session);
static void setDownstream(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, MXS_DOWNSTREAM *downstream); static void setDownstream(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, MXS_DOWNSTREAM *downstream);
static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue);
static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb); static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_FILTER* instance);
#define CCR_DEFAULT_TIME "60" #define CCR_DEFAULT_TIME "60"
@ -386,7 +386,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb)
* *
* @return The capabilities of the filter. * @return The capabilities of the filter.
*/ */
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_FILTER* instance)
{ {
return RCAP_TYPE_CONTIGUOUS_INPUT; return RCAP_TYPE_CONTIGUOUS_INPUT;
} }

View File

@ -102,7 +102,7 @@ static void freeSession(MXS_FILTER *instance, MXS_FILTER_SESSION *session);
static void setDownstream(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, MXS_DOWNSTREAM *downstream); static void setDownstream(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, MXS_DOWNSTREAM *downstream);
static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue);
static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb); static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_FILTER* instance);
/** /**
* Rule types * Rule types
@ -2505,7 +2505,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb)
* *
* @return The capabilities of the filter. * @return The capabilities of the filter.
*/ */
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_FILTER* instance)
{ {
return RCAP_TYPE_STMT_INPUT; return RCAP_TYPE_STMT_INPUT;
} }

View File

@ -33,7 +33,7 @@ static void freeSession(MXS_FILTER *instance, MXS_FILTER_SESSION *session);
static void setDownstream(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, MXS_DOWNSTREAM *downstream); static void setDownstream(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, MXS_DOWNSTREAM *downstream);
static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue);
static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb); static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_FILTER* instance);
/** /**
* The module entry point routine. It is this routine that * The module entry point routine. It is this routine that
@ -238,7 +238,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb)
* *
* @return The capabilities of the filter. * @return The capabilities of the filter.
*/ */
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_FILTER* instance)
{ {
return RCAP_TYPE_CONTIGUOUS_INPUT; return RCAP_TYPE_CONTIGUOUS_INPUT;
} }

View File

@ -38,7 +38,7 @@ static void setDownstream(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, MX
static void setUpstream(MXS_FILTER *instance, MXS_FILTER_SESSION *session, MXS_UPSTREAM *upstream); static void setUpstream(MXS_FILTER *instance, MXS_FILTER_SESSION *session, MXS_UPSTREAM *upstream);
static int32_t routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); static int32_t routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue);
static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb); static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_FILTER *instance);
static int32_t clientReply(MXS_FILTER* instance, MXS_FILTER_SESSION *session, GWBUF *reply); static int32_t clientReply(MXS_FILTER* instance, MXS_FILTER_SESSION *session, GWBUF *reply);
static bool extract_insert_target(GWBUF *buffer, char* target, int len); static bool extract_insert_target(GWBUF *buffer, char* target, int len);
static GWBUF* create_load_data_command(const char *target); static GWBUF* create_load_data_command(const char *target);
@ -517,7 +517,7 @@ static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *
* *
* @return Filter capabilities * @return Filter capabilities
*/ */
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_FILTER* instance)
{ {
return RCAP_TYPE_TRANSACTION_TRACKING; return RCAP_TYPE_TRANSACTION_TRACKING;
} }

View File

@ -35,7 +35,7 @@ public:
void diagnostics(DCB* pDcb); void diagnostics(DCB* pDcb);
static uint64_t getCapabilities(); uint64_t getCapabilities();
void reload(DCB* pOut); void reload(DCB* pOut);

View File

@ -55,7 +55,7 @@ static void setUpstream(MXS_FILTER *instance, MXS_FILTER_SESSION *sdata, MXS_
static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *sdata, GWBUF *queue); static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *sdata, GWBUF *queue);
static int clientReply(MXS_FILTER *instance, MXS_FILTER_SESSION *sdata, GWBUF *queue); static int clientReply(MXS_FILTER *instance, MXS_FILTER_SESSION *sdata, GWBUF *queue);
static void diagnostics(MXS_FILTER *instance, MXS_FILTER_SESSION *sdata, DCB *dcb); static void diagnostics(MXS_FILTER *instance, MXS_FILTER_SESSION *sdata, DCB *dcb);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_FILTER *instance);
/* Global symbols of the Module */ /* Global symbols of the Module */
@ -419,7 +419,7 @@ static void diagnostics(MXS_FILTER *instance, MXS_FILTER_SESSION *sdata, DCB *dc
* *
* @return The capabilities of the filter. * @return The capabilities of the filter.
*/ */
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_FILTER* instance)
{ {
return RCAP_TYPE_STMT_INPUT | RCAP_TYPE_STMT_OUTPUT; return RCAP_TYPE_STMT_INPUT | RCAP_TYPE_STMT_OUTPUT;
} }

View File

@ -95,7 +95,7 @@ static void setUpstream(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, MXS_
static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue);
static int clientReply(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); static int clientReply(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue);
static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb); static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_FILTER *instance);
/** /**
*Structure used to store messages and their properties. *Structure used to store messages and their properties.
@ -1510,7 +1510,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb)
* *
* @return The capabilities of the filter. * @return The capabilities of the filter.
*/ */
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_FILTER* instance)
{ {
return RCAP_TYPE_CONTIGUOUS_INPUT; return RCAP_TYPE_CONTIGUOUS_INPUT;
} }

View File

@ -50,7 +50,7 @@ static void freeSession(MXS_FILTER *instance, MXS_FILTER_SESSION *session);
static void setDownstream(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, MXS_DOWNSTREAM *downstream); static void setDownstream(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, MXS_DOWNSTREAM *downstream);
static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue);
static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb); static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_FILTER* instance);
typedef struct source_host typedef struct source_host
{ {
@ -378,7 +378,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb)
* *
* @return The capabilities of the filter. * @return The capabilities of the filter.
*/ */
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_FILTER* instance)
{ {
return RCAP_TYPE_CONTIGUOUS_INPUT; return RCAP_TYPE_CONTIGUOUS_INPUT;
} }

View File

@ -121,7 +121,6 @@ void NullFilter::diagnostics(DCB* pDcb)
dcb_printf(pDcb, "Hello, World!\n"); dcb_printf(pDcb, "Hello, World!\n");
} }
// static
uint64_t NullFilter::getCapabilities() uint64_t NullFilter::getCapabilities()
{ {
if (!this_unit.capabilities_set) if (!this_unit.capabilities_set)

View File

@ -26,7 +26,7 @@ public:
void diagnostics(DCB* pDcb); void diagnostics(DCB* pDcb);
static uint64_t getCapabilities(); uint64_t getCapabilities();
private: private:
NullFilter(const char* zName); NullFilter(const char* zName);

View File

@ -82,7 +82,7 @@ static void freeSession(MXS_FILTER *instance, MXS_FILTER_SESSION *session);
static void setDownstream(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, MXS_DOWNSTREAM *downstream); static void setDownstream(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, MXS_DOWNSTREAM *downstream);
static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue);
static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb); static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_FILTER* instance);
/** /**
* A instance structure, the assumption is that the option passed * A instance structure, the assumption is that the option passed
@ -619,7 +619,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb)
* *
* @return The capabilities of the filter. * @return The capabilities of the filter.
*/ */
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_FILTER* instance)
{ {
return RCAP_TYPE_CONTIGUOUS_INPUT; return RCAP_TYPE_CONTIGUOUS_INPUT;
} }

View File

@ -49,7 +49,7 @@ static void freeSession(MXS_FILTER *instance, MXS_FILTER_SESSION *session);
static void setDownstream(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, MXS_DOWNSTREAM *downstream); static void setDownstream(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, MXS_DOWNSTREAM *downstream);
static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue);
static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb); static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_FILTER* instance);
static char *regex_replace(const char *sql, pcre2_code *re, pcre2_match_data *study, static char *regex_replace(const char *sql, pcre2_code *re, pcre2_match_data *study,
const char *replace); const char *replace);
@ -490,7 +490,7 @@ void log_nomatch(REGEX_INSTANCE* inst, char* re, char* old)
* *
* @return The capabilities of the filter. * @return The capabilities of the filter.
*/ */
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_FILTER* instance)
{ {
return RCAP_TYPE_CONTIGUOUS_INPUT; return RCAP_TYPE_CONTIGUOUS_INPUT;
} }

View File

@ -107,7 +107,7 @@ static void setUpstream(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, MXS_
static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue);
static int clientReply(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); static int clientReply(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue);
static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb); static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_FILTER* instance);
/** /**
* The instance structure for the TEE filter - this holds the configuration * The instance structure for the TEE filter - this holds the configuration
@ -753,7 +753,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb)
* *
* @return The capabilities of the filter. * @return The capabilities of the filter.
*/ */
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_FILTER* instance)
{ {
return RCAP_TYPE_CONTIGUOUS_INPUT; return RCAP_TYPE_CONTIGUOUS_INPUT;
} }

View File

@ -37,7 +37,7 @@ static void freeSession(MXS_FILTER *instance, MXS_FILTER_SESSION *session);
static void setDownstream(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, MXS_DOWNSTREAM *downstream); static void setDownstream(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, MXS_DOWNSTREAM *downstream);
static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue);
static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb); static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_FILTER* instance);
static void destroyInstance(MXS_FILTER *instance); static void destroyInstance(MXS_FILTER *instance);
@ -243,7 +243,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb)
* *
* @return The capabilities of the filter. * @return The capabilities of the filter.
*/ */
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_FILTER* instance)
{ {
return RCAP_TYPE_NONE; return RCAP_TYPE_NONE;
} }

View File

@ -59,7 +59,7 @@ static void setUpstream(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, MXS_
static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue);
static int clientReply(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); static int clientReply(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue);
static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb); static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_FILTER* instance);
/** /**
* A instance structure, the assumption is that the option passed * A instance structure, the assumption is that the option passed
@ -628,7 +628,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb)
* *
* @return The capabilities of the filter. * @return The capabilities of the filter.
*/ */
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_FILTER* instance)
{ {
return RCAP_TYPE_CONTIGUOUS_INPUT; return RCAP_TYPE_CONTIGUOUS_INPUT;
} }

View File

@ -86,7 +86,7 @@ static void setUpstream(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession,
static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); static int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue);
static int clientReply(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); static int clientReply(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue);
static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb); static void diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_FILTER* instance);
static void checkNamedPipe(void *args); static void checkNamedPipe(void *args);
/** /**
@ -602,7 +602,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb)
* *
* @return The capabilities of the filter. * @return The capabilities of the filter.
*/ */
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_FILTER* instance)
{ {
return RCAP_TYPE_CONTIGUOUS_INPUT; return RCAP_TYPE_CONTIGUOUS_INPUT;
} }

View File

@ -81,7 +81,7 @@ static void clientReply(MXS_ROUTER *instance, void *router_session, GWBUF *queue
DCB *backend_dcb); DCB *backend_dcb);
static void errorReply(MXS_ROUTER *instance, void *router_session, GWBUF *message, static void errorReply(MXS_ROUTER *instance, void *router_session, GWBUF *message,
DCB *backend_dcb, mxs_error_action_t action, bool *succp); DCB *backend_dcb, mxs_error_action_t action, bool *succp);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_ROUTER* instance);
extern int MaxScaleUptime(); extern int MaxScaleUptime();
extern void avro_get_used_tables(AVRO_INSTANCE *router, DCB *dcb); extern void avro_get_used_tables(AVRO_INSTANCE *router, DCB *dcb);
void converter_func(void* data); void converter_func(void* data);
@ -998,7 +998,7 @@ errorReply(MXS_ROUTER *instance, void *router_session, GWBUF *message, DCB *back
ss_dassert(false); ss_dassert(false);
} }
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_ROUTER* instance)
{ {
return RCAP_TYPE_NO_RSESSION; return RCAP_TYPE_NO_RSESSION;
} }

View File

@ -106,7 +106,7 @@ static void errorReply(MXS_ROUTER *instance,
mxs_error_action_t action, mxs_error_action_t action,
bool *succp); bool *succp);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_ROUTER* instance);
static int blr_handler_config(void *userdata, const char *section, const char *name, const char *value); static int blr_handler_config(void *userdata, const char *section, const char *name, const char *value);
static int blr_handle_config_item(const char *name, const char *value, ROUTER_INSTANCE *inst); static int blr_handle_config_item(const char *name, const char *value, ROUTER_INSTANCE *inst);
static int blr_load_dbusers(const ROUTER_INSTANCE *router); static int blr_load_dbusers(const ROUTER_INSTANCE *router);
@ -1900,7 +1900,7 @@ static void rses_end_locked_router_action(ROUTER_SLAVE *rses)
} }
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_ROUTER* instance)
{ {
return RCAP_TYPE_NO_RSESSION | RCAP_TYPE_CONTIGUOUS_OUTPUT | RCAP_TYPE_RESULTSET_OUTPUT; return RCAP_TYPE_NO_RSESSION | RCAP_TYPE_CONTIGUOUS_OUTPUT | RCAP_TYPE_RESULTSET_OUTPUT;
} }

View File

@ -49,7 +49,7 @@ static void closeSession(MXS_ROUTER *instance, void *router_session);
static void freeSession(MXS_ROUTER *instance, void *router_session); static void freeSession(MXS_ROUTER *instance, void *router_session);
static int execute(MXS_ROUTER *instance, void *router_session, GWBUF *queue); static int execute(MXS_ROUTER *instance, void *router_session, GWBUF *queue);
static void diagnostics(MXS_ROUTER *instance, DCB *dcb); static void diagnostics(MXS_ROUTER *instance, DCB *dcb);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_ROUTER* instance);
extern int execute_cmd(CLI_SESSION *cli); extern int execute_cmd(CLI_SESSION *cli);
@ -288,7 +288,7 @@ diagnostics(MXS_ROUTER *instance, DCB *dcb)
return; /* Nothing to do currently */ return; /* Nothing to do currently */
} }
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_ROUTER *instance)
{ {
return 0; return 0;
} }

View File

@ -48,7 +48,7 @@ static void closeSession(MXS_ROUTER *instance, void *router_session);
static void freeSession(MXS_ROUTER *instance, void *router_session); static void freeSession(MXS_ROUTER *instance, void *router_session);
static int execute(MXS_ROUTER *instance, void *router_session, GWBUF *queue); static int execute(MXS_ROUTER *instance, void *router_session, GWBUF *queue);
static void diagnostics(MXS_ROUTER *instance, DCB *dcb); static void diagnostics(MXS_ROUTER *instance, DCB *dcb);
static uint64_t getCapabilities (); static uint64_t getCapabilities(MXS_ROUTER* instance);
extern int execute_cmd(CLI_SESSION *cli); extern int execute_cmd(CLI_SESSION *cli);
@ -293,7 +293,7 @@ diagnostics(MXS_ROUTER *instance, DCB *dcb)
return; /* Nothing to do currently */ return; /* Nothing to do currently */
} }
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_ROUTER* instance)
{ {
return 0; return 0;
} }

View File

@ -70,7 +70,7 @@ static void closeSession(MXS_ROUTER *instance, void *router_session);
static void freeSession(MXS_ROUTER *instance, void *router_session); static void freeSession(MXS_ROUTER *instance, void *router_session);
static int execute(MXS_ROUTER *instance, void *router_session, GWBUF *queue); static int execute(MXS_ROUTER *instance, void *router_session, GWBUF *queue);
static void diagnostics(MXS_ROUTER *instance, DCB *dcb); static void diagnostics(MXS_ROUTER *instance, DCB *dcb);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_ROUTER* instance);
static void handleError(MXS_ROUTER *instance, static void handleError(MXS_ROUTER *instance,
void *router_session, void *router_session,
GWBUF *errbuf, GWBUF *errbuf,
@ -392,7 +392,7 @@ diagnostics(MXS_ROUTER *instance, DCB *dcb)
* Not used for the maxinfo router * Not used for the maxinfo router
*/ */
static uint64_t static uint64_t
getCapabilities(void) getCapabilities(MXS_ROUTER* instance)
{ {
return 0; return 0;
} }

View File

@ -98,7 +98,7 @@ static void clientReply(MXS_ROUTER *instance, void *router_session, GWBUF *queue
DCB *backend_dcb); DCB *backend_dcb);
static void handleError(MXS_ROUTER *instance, void *router_session, GWBUF *errbuf, static void handleError(MXS_ROUTER *instance, void *router_session, GWBUF *errbuf,
DCB *problem_dcb, mxs_error_action_t action, bool *succp); DCB *problem_dcb, mxs_error_action_t action, bool *succp);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_ROUTER* instance);
static bool rses_begin_locked_router_action(ROUTER_CLIENT_SES* rses); static bool rses_begin_locked_router_action(ROUTER_CLIENT_SES* rses);
static void rses_end_locked_router_action(ROUTER_CLIENT_SES* rses); static void rses_end_locked_router_action(ROUTER_CLIENT_SES* rses);
static SERVER_REF *get_root_master(SERVER_REF *servers); static SERVER_REF *get_root_master(SERVER_REF *servers);
@ -785,7 +785,7 @@ static void rses_end_locked_router_action(ROUTER_CLIENT_SES* rses)
spinlock_release(&rses->rses_lock); spinlock_release(&rses->rses_lock);
} }
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_ROUTER* instance)
{ {
return RCAP_TYPE_NONE; return RCAP_TYPE_NONE;
} }

View File

@ -79,7 +79,7 @@ static void clientReply(MXS_ROUTER *instance, void *router_session, GWBUF *queue
static void handleError(MXS_ROUTER *instance, void *router_session, static void handleError(MXS_ROUTER *instance, void *router_session,
GWBUF *errmsgbuf, DCB *backend_dcb, GWBUF *errmsgbuf, DCB *backend_dcb,
mxs_error_action_t action, bool *succp); mxs_error_action_t action, bool *succp);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_ROUTER* instance);
/* /*
* End of the API functions; now the module structure that links to them. * End of the API functions; now the module structure that links to them.
@ -864,7 +864,7 @@ lock_failed:
* *
* @return RCAP_TYPE_STMT_INPUT. * @return RCAP_TYPE_STMT_INPUT.
*/ */
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_ROUTER* instance)
{ {
return RCAP_TYPE_STMT_INPUT | RCAP_TYPE_TRANSACTION_TRACKING; return RCAP_TYPE_STMT_INPUT | RCAP_TYPE_TRANSACTION_TRACKING;
} }

View File

@ -81,7 +81,7 @@ static route_target_t get_shard_route_target(qc_query_type_t qtype,
bool trx_active, bool trx_active,
HINT* hint); HINT* hint);
static uint64_t getCapabilities(void); static uint64_t getCapabilities(MXS_ROUTER* instance);
static bool connect_backend_servers(backend_ref_t* backend_ref, static bool connect_backend_servers(backend_ref_t* backend_ref,
int router_nservers, int router_nservers,
@ -3320,7 +3320,7 @@ static rses_property_t* mysql_sescmd_get_property(mysql_sescmd_t* scmd)
/** /**
* Return RCAP_TYPE_STMT_INPUT. * Return RCAP_TYPE_STMT_INPUT.
*/ */
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_ROUTER* instance)
{ {
return RCAP_TYPE_STMT_INPUT; return RCAP_TYPE_STMT_INPUT;
} }

View File

@ -22,7 +22,7 @@ static void freeSession(MXS_ROUTER *instance, void *session);
static int routeQuery(MXS_ROUTER *instance, void *session, GWBUF *queue); static int routeQuery(MXS_ROUTER *instance, void *session, GWBUF *queue);
static void clientReply(MXS_ROUTER *instance, void *session, GWBUF *queue, DCB*); static void clientReply(MXS_ROUTER *instance, void *session, GWBUF *queue, DCB*);
static void diagnostic(MXS_ROUTER *instance, DCB *dcb); static void diagnostic(MXS_ROUTER *instance, DCB *dcb);
static uint64_t getCapabilities (); static uint64_t getCapabilities(MXS_ROUTER* instance);
static void handleError(MXS_ROUTER *instance, static void handleError(MXS_ROUTER *instance,
void *router_session, void *router_session,
GWBUF *errbuf, GWBUF *errbuf,
@ -150,7 +150,7 @@ diagnostic(MXS_ROUTER *instance, DCB *dcb)
{ {
} }
static uint64_t getCapabilities(void) static uint64_t getCapabilities(MXS_ROUTER* instance)
{ {
return 0; return 0;
} }