From 2a49cd6451bb608c0a063a881f28d357f62ceec2 Mon Sep 17 00:00:00 2001 From: Johan Wikman Date: Tue, 14 Feb 2017 13:17:56 +0200 Subject: [PATCH] getCapabilities now get the instance as argument Allows the capabilities to be different depending on how the filter/router has been configured. --- include/maxscale/filter.h | 2 +- include/maxscale/filter.hh | 8 +++++--- include/maxscale/router.h | 2 +- server/core/service.c | 6 ++++-- server/modules/filter/cache/cachefilter.cc | 1 - server/modules/filter/cache/cachefilter.hh | 2 +- server/modules/filter/ccrfilter/ccrfilter.c | 4 ++-- server/modules/filter/dbfwfilter/dbfwfilter.c | 4 ++-- server/modules/filter/hintfilter/hintfilter.c | 4 ++-- server/modules/filter/insertstream/insertstream.c | 4 ++-- server/modules/filter/masking/maskingfilter.hh | 2 +- server/modules/filter/maxrows/maxrows.c | 4 ++-- server/modules/filter/mqfilter/mqfilter.c | 4 ++-- .../modules/filter/namedserverfilter/namedserverfilter.c | 4 ++-- server/modules/filter/nullfilter/nullfilter.cc | 1 - server/modules/filter/nullfilter/nullfilter.hh | 2 +- server/modules/filter/qlafilter/qlafilter.c | 4 ++-- server/modules/filter/regexfilter/regexfilter.c | 4 ++-- server/modules/filter/tee/tee.c | 4 ++-- server/modules/filter/testfilter/testfilter.c | 4 ++-- server/modules/filter/topfilter/topfilter.c | 4 ++-- server/modules/filter/tpmfilter/tpmfilter.c | 4 ++-- server/modules/routing/avrorouter/avro.c | 4 ++-- server/modules/routing/binlogrouter/blr.c | 4 ++-- server/modules/routing/cli/cli.c | 4 ++-- server/modules/routing/debugcli/debugcli.c | 4 ++-- server/modules/routing/maxinfo/maxinfo.c | 4 ++-- server/modules/routing/readconnroute/readconnroute.c | 4 ++-- server/modules/routing/readwritesplit/readwritesplit.c | 4 ++-- server/modules/routing/schemarouter/schemarouter.c | 4 ++-- server/modules/routing/testroute/testroute.c | 4 ++-- 31 files changed, 58 insertions(+), 56 deletions(-) diff --git a/include/maxscale/filter.h b/include/maxscale/filter.h index 9ae004622..a211db7e0 100644 --- a/include/maxscale/filter.h +++ b/include/maxscale/filter.h @@ -179,7 +179,7 @@ typedef struct mxs_filter_object * * @see routing.h */ - uint64_t (*getCapabilities)(void); + uint64_t (*getCapabilities)(MXS_FILTER *instance); /** * @brief Called for destroying a filter instance diff --git a/include/maxscale/filter.hh b/include/maxscale/filter.hh index de9890c3b..95214991d 100644 --- a/include/maxscale/filter.hh +++ b/include/maxscale/filter.hh @@ -183,7 +183,7 @@ protected: * MyFilterSession* newSession(MXS_SESSION* pSession); * * void diagnostics(DCB* pDcb); - * static uint64_t getCapabilities(); + * uint64_t getCapabilities(); * }; * @endcode * @@ -290,11 +290,13 @@ public: } } - static uint64_t getCapabilities(void) + static uint64_t getCapabilities(MXS_FILTER* pInstance) { uint64_t rv = 0; - MXS_EXCEPTION_GUARD(rv = FilterType::getCapabilities()); + FilterType* pFilter = reinterpret_cast(pInstance); + + MXS_EXCEPTION_GUARD(rv = pFilter->getCapabilities()); return rv; } diff --git a/include/maxscale/router.h b/include/maxscale/router.h index fbfa0aaed..7e5398271 100644 --- a/include/maxscale/router.h +++ b/include/maxscale/router.h @@ -79,7 +79,7 @@ typedef struct mxs_router_object DCB* backend_dcb, mxs_error_action_t action, bool* succp); - uint64_t (*getCapabilities)(void); + uint64_t (*getCapabilities)(MXS_ROUTER *instance); void (*destroyInstance)(MXS_ROUTER *instance); } MXS_ROUTER_OBJECT; diff --git a/server/core/service.c b/server/core/service.c index b80ec8843..fd60479aa 100644 --- a/server/core/service.c +++ b/server/core/service.c @@ -142,7 +142,7 @@ SERVICE* service_alloc(const char *name, const char *router) return NULL; } - service->capabilities = service->router->getCapabilities(); + service->capabilities = 0; service->client_count = 0; service->n_dbref = 0; service->name = my_name; @@ -485,6 +485,8 @@ int serviceInitialize(SERVICE *service) 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) { listeners = serviceStartAllPorts(service); @@ -1237,7 +1239,7 @@ serviceSetFilters(SERVICE *service, char *filters) { if (filter_load(flist[n - 1])) { - capabilities |= flist[n - 1]->obj->getCapabilities(); + capabilities |= flist[n - 1]->obj->getCapabilities(flist[n - 1]->filter); } else { diff --git a/server/modules/filter/cache/cachefilter.cc b/server/modules/filter/cache/cachefilter.cc index 5d795c9f4..031cf5f70 100644 --- a/server/modules/filter/cache/cachefilter.cc +++ b/server/modules/filter/cache/cachefilter.cc @@ -271,7 +271,6 @@ void CacheFilter::diagnostics(DCB* pDcb) m_sCache->show(pDcb); } -// static uint64_t CacheFilter::getCapabilities() { return RCAP_TYPE_TRANSACTION_TRACKING; diff --git a/server/modules/filter/cache/cachefilter.hh b/server/modules/filter/cache/cachefilter.hh index 06394e70b..c314facba 100644 --- a/server/modules/filter/cache/cachefilter.hh +++ b/server/modules/filter/cache/cachefilter.hh @@ -39,7 +39,7 @@ public: void diagnostics(DCB* pDcb); - static uint64_t getCapabilities(); + uint64_t getCapabilities(); private: CacheFilter(); diff --git a/server/modules/filter/ccrfilter/ccrfilter.c b/server/modules/filter/ccrfilter/ccrfilter.c index 73e2892f2..64d0855a2 100644 --- a/server/modules/filter/ccrfilter/ccrfilter.c +++ b/server/modules/filter/ccrfilter/ccrfilter.c @@ -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 int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); 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" @@ -386,7 +386,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb) * * @return The capabilities of the filter. */ -static uint64_t getCapabilities(void) +static uint64_t getCapabilities(MXS_FILTER* instance) { return RCAP_TYPE_CONTIGUOUS_INPUT; } diff --git a/server/modules/filter/dbfwfilter/dbfwfilter.c b/server/modules/filter/dbfwfilter/dbfwfilter.c index fba24b945..6b640595a 100644 --- a/server/modules/filter/dbfwfilter/dbfwfilter.c +++ b/server/modules/filter/dbfwfilter/dbfwfilter.c @@ -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 int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); 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 @@ -2505,7 +2505,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb) * * @return The capabilities of the filter. */ -static uint64_t getCapabilities(void) +static uint64_t getCapabilities(MXS_FILTER* instance) { return RCAP_TYPE_STMT_INPUT; } diff --git a/server/modules/filter/hintfilter/hintfilter.c b/server/modules/filter/hintfilter/hintfilter.c index 65ad7c755..07536d6ce 100644 --- a/server/modules/filter/hintfilter/hintfilter.c +++ b/server/modules/filter/hintfilter/hintfilter.c @@ -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 int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); 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 @@ -238,7 +238,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb) * * @return The capabilities of the filter. */ -static uint64_t getCapabilities(void) +static uint64_t getCapabilities(MXS_FILTER* instance) { return RCAP_TYPE_CONTIGUOUS_INPUT; } diff --git a/server/modules/filter/insertstream/insertstream.c b/server/modules/filter/insertstream/insertstream.c index 8620dd483..ea2eb8605 100644 --- a/server/modules/filter/insertstream/insertstream.c +++ b/server/modules/filter/insertstream/insertstream.c @@ -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 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 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 bool extract_insert_target(GWBUF *buffer, char* target, int len); 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 */ -static uint64_t getCapabilities(void) +static uint64_t getCapabilities(MXS_FILTER* instance) { return RCAP_TYPE_TRANSACTION_TRACKING; } diff --git a/server/modules/filter/masking/maskingfilter.hh b/server/modules/filter/masking/maskingfilter.hh index 9281e085e..8d4b4f9eb 100644 --- a/server/modules/filter/masking/maskingfilter.hh +++ b/server/modules/filter/masking/maskingfilter.hh @@ -35,7 +35,7 @@ public: void diagnostics(DCB* pDcb); - static uint64_t getCapabilities(); + uint64_t getCapabilities(); void reload(DCB* pOut); diff --git a/server/modules/filter/maxrows/maxrows.c b/server/modules/filter/maxrows/maxrows.c index 92076797b..f88163af5 100644 --- a/server/modules/filter/maxrows/maxrows.c +++ b/server/modules/filter/maxrows/maxrows.c @@ -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 clientReply(MXS_FILTER *instance, MXS_FILTER_SESSION *sdata, GWBUF *queue); 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 */ @@ -419,7 +419,7 @@ static void diagnostics(MXS_FILTER *instance, MXS_FILTER_SESSION *sdata, DCB *dc * * @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; } diff --git a/server/modules/filter/mqfilter/mqfilter.c b/server/modules/filter/mqfilter/mqfilter.c index 19e5c24cb..234810a6b 100644 --- a/server/modules/filter/mqfilter/mqfilter.c +++ b/server/modules/filter/mqfilter/mqfilter.c @@ -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 clientReply(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); 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. @@ -1510,7 +1510,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb) * * @return The capabilities of the filter. */ -static uint64_t getCapabilities(void) +static uint64_t getCapabilities(MXS_FILTER* instance) { return RCAP_TYPE_CONTIGUOUS_INPUT; } diff --git a/server/modules/filter/namedserverfilter/namedserverfilter.c b/server/modules/filter/namedserverfilter/namedserverfilter.c index f54ee3302..862abeeac 100644 --- a/server/modules/filter/namedserverfilter/namedserverfilter.c +++ b/server/modules/filter/namedserverfilter/namedserverfilter.c @@ -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 int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); 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 { @@ -378,7 +378,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb) * * @return The capabilities of the filter. */ -static uint64_t getCapabilities(void) +static uint64_t getCapabilities(MXS_FILTER* instance) { return RCAP_TYPE_CONTIGUOUS_INPUT; } diff --git a/server/modules/filter/nullfilter/nullfilter.cc b/server/modules/filter/nullfilter/nullfilter.cc index 07e2b662f..b51b4f95f 100644 --- a/server/modules/filter/nullfilter/nullfilter.cc +++ b/server/modules/filter/nullfilter/nullfilter.cc @@ -121,7 +121,6 @@ void NullFilter::diagnostics(DCB* pDcb) dcb_printf(pDcb, "Hello, World!\n"); } -// static uint64_t NullFilter::getCapabilities() { if (!this_unit.capabilities_set) diff --git a/server/modules/filter/nullfilter/nullfilter.hh b/server/modules/filter/nullfilter/nullfilter.hh index 459a1bcff..ceb7baf60 100644 --- a/server/modules/filter/nullfilter/nullfilter.hh +++ b/server/modules/filter/nullfilter/nullfilter.hh @@ -26,7 +26,7 @@ public: void diagnostics(DCB* pDcb); - static uint64_t getCapabilities(); + uint64_t getCapabilities(); private: NullFilter(const char* zName); diff --git a/server/modules/filter/qlafilter/qlafilter.c b/server/modules/filter/qlafilter/qlafilter.c index ab8c8f525..ae45d52be 100644 --- a/server/modules/filter/qlafilter/qlafilter.c +++ b/server/modules/filter/qlafilter/qlafilter.c @@ -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 int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); 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 @@ -619,7 +619,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb) * * @return The capabilities of the filter. */ -static uint64_t getCapabilities(void) +static uint64_t getCapabilities(MXS_FILTER* instance) { return RCAP_TYPE_CONTIGUOUS_INPUT; } diff --git a/server/modules/filter/regexfilter/regexfilter.c b/server/modules/filter/regexfilter/regexfilter.c index 05044dfe4..b06103edf 100644 --- a/server/modules/filter/regexfilter/regexfilter.c +++ b/server/modules/filter/regexfilter/regexfilter.c @@ -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 int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); 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, const char *replace); @@ -490,7 +490,7 @@ void log_nomatch(REGEX_INSTANCE* inst, char* re, char* old) * * @return The capabilities of the filter. */ -static uint64_t getCapabilities(void) +static uint64_t getCapabilities(MXS_FILTER* instance) { return RCAP_TYPE_CONTIGUOUS_INPUT; } diff --git a/server/modules/filter/tee/tee.c b/server/modules/filter/tee/tee.c index 3bcb6cc25..e53e4ee3c 100644 --- a/server/modules/filter/tee/tee.c +++ b/server/modules/filter/tee/tee.c @@ -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 clientReply(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); 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 @@ -753,7 +753,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb) * * @return The capabilities of the filter. */ -static uint64_t getCapabilities(void) +static uint64_t getCapabilities(MXS_FILTER* instance) { return RCAP_TYPE_CONTIGUOUS_INPUT; } diff --git a/server/modules/filter/testfilter/testfilter.c b/server/modules/filter/testfilter/testfilter.c index 0cf525d36..c7e3429c9 100644 --- a/server/modules/filter/testfilter/testfilter.c +++ b/server/modules/filter/testfilter/testfilter.c @@ -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 int routeQuery(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); 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); @@ -243,7 +243,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb) * * @return The capabilities of the filter. */ -static uint64_t getCapabilities(void) +static uint64_t getCapabilities(MXS_FILTER* instance) { return RCAP_TYPE_NONE; } diff --git a/server/modules/filter/topfilter/topfilter.c b/server/modules/filter/topfilter/topfilter.c index 0ca5a2468..6478f57ac 100644 --- a/server/modules/filter/topfilter/topfilter.c +++ b/server/modules/filter/topfilter/topfilter.c @@ -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 clientReply(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); 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 @@ -628,7 +628,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb) * * @return The capabilities of the filter. */ -static uint64_t getCapabilities(void) +static uint64_t getCapabilities(MXS_FILTER* instance) { return RCAP_TYPE_CONTIGUOUS_INPUT; } diff --git a/server/modules/filter/tpmfilter/tpmfilter.c b/server/modules/filter/tpmfilter/tpmfilter.c index 3fa1ff0b2..07ecffa68 100644 --- a/server/modules/filter/tpmfilter/tpmfilter.c +++ b/server/modules/filter/tpmfilter/tpmfilter.c @@ -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 clientReply(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, GWBUF *queue); 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); /** @@ -602,7 +602,7 @@ diagnostic(MXS_FILTER *instance, MXS_FILTER_SESSION *fsession, DCB *dcb) * * @return The capabilities of the filter. */ -static uint64_t getCapabilities(void) +static uint64_t getCapabilities(MXS_FILTER* instance) { return RCAP_TYPE_CONTIGUOUS_INPUT; } diff --git a/server/modules/routing/avrorouter/avro.c b/server/modules/routing/avrorouter/avro.c index 0104c8b58..58b28a972 100644 --- a/server/modules/routing/avrorouter/avro.c +++ b/server/modules/routing/avrorouter/avro.c @@ -81,7 +81,7 @@ static void clientReply(MXS_ROUTER *instance, void *router_session, GWBUF *queue DCB *backend_dcb); static void errorReply(MXS_ROUTER *instance, void *router_session, GWBUF *message, 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 void avro_get_used_tables(AVRO_INSTANCE *router, DCB *dcb); void converter_func(void* data); @@ -998,7 +998,7 @@ errorReply(MXS_ROUTER *instance, void *router_session, GWBUF *message, DCB *back ss_dassert(false); } -static uint64_t getCapabilities(void) +static uint64_t getCapabilities(MXS_ROUTER* instance) { return RCAP_TYPE_NO_RSESSION; } diff --git a/server/modules/routing/binlogrouter/blr.c b/server/modules/routing/binlogrouter/blr.c index 5cc5f90bd..cf7d3d09d 100644 --- a/server/modules/routing/binlogrouter/blr.c +++ b/server/modules/routing/binlogrouter/blr.c @@ -106,7 +106,7 @@ static void errorReply(MXS_ROUTER *instance, mxs_error_action_t action, 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_handle_config_item(const char *name, const char *value, ROUTER_INSTANCE *inst); 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; } diff --git a/server/modules/routing/cli/cli.c b/server/modules/routing/cli/cli.c index e24154a67..ec02d96ee 100644 --- a/server/modules/routing/cli/cli.c +++ b/server/modules/routing/cli/cli.c @@ -49,7 +49,7 @@ static void closeSession(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 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); @@ -288,7 +288,7 @@ diagnostics(MXS_ROUTER *instance, DCB *dcb) return; /* Nothing to do currently */ } -static uint64_t getCapabilities(void) +static uint64_t getCapabilities(MXS_ROUTER *instance) { return 0; } diff --git a/server/modules/routing/debugcli/debugcli.c b/server/modules/routing/debugcli/debugcli.c index bbcec1786..962647e92 100644 --- a/server/modules/routing/debugcli/debugcli.c +++ b/server/modules/routing/debugcli/debugcli.c @@ -48,7 +48,7 @@ static void closeSession(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 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); @@ -293,7 +293,7 @@ diagnostics(MXS_ROUTER *instance, DCB *dcb) return; /* Nothing to do currently */ } -static uint64_t getCapabilities(void) +static uint64_t getCapabilities(MXS_ROUTER* instance) { return 0; } diff --git a/server/modules/routing/maxinfo/maxinfo.c b/server/modules/routing/maxinfo/maxinfo.c index c4c18a3f6..889d3dfc6 100644 --- a/server/modules/routing/maxinfo/maxinfo.c +++ b/server/modules/routing/maxinfo/maxinfo.c @@ -70,7 +70,7 @@ static void closeSession(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 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, void *router_session, GWBUF *errbuf, @@ -392,7 +392,7 @@ diagnostics(MXS_ROUTER *instance, DCB *dcb) * Not used for the maxinfo router */ static uint64_t -getCapabilities(void) +getCapabilities(MXS_ROUTER* instance) { return 0; } diff --git a/server/modules/routing/readconnroute/readconnroute.c b/server/modules/routing/readconnroute/readconnroute.c index 77ca1e23f..70f4ed516 100644 --- a/server/modules/routing/readconnroute/readconnroute.c +++ b/server/modules/routing/readconnroute/readconnroute.c @@ -98,7 +98,7 @@ static void clientReply(MXS_ROUTER *instance, void *router_session, GWBUF *queue DCB *backend_dcb); static void handleError(MXS_ROUTER *instance, void *router_session, GWBUF *errbuf, 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 void rses_end_locked_router_action(ROUTER_CLIENT_SES* rses); 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); } -static uint64_t getCapabilities(void) +static uint64_t getCapabilities(MXS_ROUTER* instance) { return RCAP_TYPE_NONE; } diff --git a/server/modules/routing/readwritesplit/readwritesplit.c b/server/modules/routing/readwritesplit/readwritesplit.c index 5f700c5e8..48b925644 100644 --- a/server/modules/routing/readwritesplit/readwritesplit.c +++ b/server/modules/routing/readwritesplit/readwritesplit.c @@ -79,7 +79,7 @@ static void clientReply(MXS_ROUTER *instance, void *router_session, GWBUF *queue static void handleError(MXS_ROUTER *instance, void *router_session, GWBUF *errmsgbuf, DCB *backend_dcb, 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. @@ -864,7 +864,7 @@ lock_failed: * * @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; } diff --git a/server/modules/routing/schemarouter/schemarouter.c b/server/modules/routing/schemarouter/schemarouter.c index 809251d69..2a6a54bf5 100644 --- a/server/modules/routing/schemarouter/schemarouter.c +++ b/server/modules/routing/schemarouter/schemarouter.c @@ -81,7 +81,7 @@ static route_target_t get_shard_route_target(qc_query_type_t qtype, bool trx_active, HINT* hint); -static uint64_t getCapabilities(void); +static uint64_t getCapabilities(MXS_ROUTER* instance); static bool connect_backend_servers(backend_ref_t* backend_ref, int router_nservers, @@ -3320,7 +3320,7 @@ static rses_property_t* mysql_sescmd_get_property(mysql_sescmd_t* scmd) /** * Return RCAP_TYPE_STMT_INPUT. */ -static uint64_t getCapabilities(void) +static uint64_t getCapabilities(MXS_ROUTER* instance) { return RCAP_TYPE_STMT_INPUT; } diff --git a/server/modules/routing/testroute/testroute.c b/server/modules/routing/testroute/testroute.c index faac7e4ca..14b35c725 100644 --- a/server/modules/routing/testroute/testroute.c +++ b/server/modules/routing/testroute/testroute.c @@ -22,7 +22,7 @@ static void freeSession(MXS_ROUTER *instance, void *session); static int routeQuery(MXS_ROUTER *instance, void *session, GWBUF *queue); static void clientReply(MXS_ROUTER *instance, void *session, GWBUF *queue, 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, void *router_session, 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; }