diff --git a/examples/roundrobinrouter.cpp b/examples/roundrobinrouter.cpp index 733601565..d96909aa1 100644 --- a/examples/roundrobinrouter.cpp +++ b/examples/roundrobinrouter.cpp @@ -363,7 +363,7 @@ void RRRouter::handle_error(RRRouterSession* rses, /* If the erroneous dcb is a client handler, close it. Setting succp to * false will cause the entire attached session to be closed. */ - if (problem_dcb->dcb_role == DCB_ROLE_CLIENT_HANDLER) + if (problem_dcb->role == DCB::Role::CLIENT) { dcb_close(problem_dcb); *succp = false; @@ -391,7 +391,7 @@ void RRRouter::handle_error(RRRouterSession* rses, case ERRACT_NEW_CONNECTION: { /* React to a failed backend */ - if (problem_dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER) + if (problem_dcb->role == DCB::Role::BACKEND) { if (problem_dcb == rses->m_write_dcb) { diff --git a/include/maxscale/dcb.hh b/include/maxscale/dcb.hh index ba9abba9d..31de1408f 100644 --- a/include/maxscale/dcb.hh +++ b/include/maxscale/dcb.hh @@ -91,13 +91,6 @@ typedef enum : \ "DCB_STATE_UNKNOWN")))))) -typedef enum -{ - DCB_ROLE_CLIENT_HANDLER, /*< Serves dedicated client */ - DCB_ROLE_BACKEND_HANDLER, /*< Serves back end connection */ - DCB_ROLE_INTERNAL /*< Internal DCB not connected to the outside */ -} dcb_role_t; - /** * Callback reasons for the DCB callback mechanism. */ @@ -151,7 +144,14 @@ typedef enum */ struct DCB : public MXB_POLL_DATA { - DCB(dcb_role_t role, MXS_SESSION*); + enum class Role + { + CLIENT, /*< Serves dedicated client */ + BACKEND, /*< Serves back end connection */ + INTERNAL /*< Internal DCB not connected to the outside */ + }; + + DCB(Role role, MXS_SESSION*); ~DCB(); /** @@ -160,7 +160,7 @@ struct DCB : public MXB_POLL_DATA const char* type(); bool dcb_errhandle_called = false; /**< this can be called only once */ - dcb_role_t dcb_role; + Role role; int fd = DCBFD_CLOSED; /**< The descriptor */ dcb_state_t state = DCB_STATE_ALLOC; /**< Current descriptor state */ SSL_STATE ssl_state = SSL_HANDSHAKE_UNKNOWN; /**< Current state of SSL if in use */ @@ -239,8 +239,8 @@ typedef enum */ void dcb_global_init(); -int dcb_write(DCB*, GWBUF*); -DCB* dcb_alloc(dcb_role_t, MXS_SESSION*); +int dcb_write(DCB*, GWBUF*); +DCB* dcb_alloc(DCB::Role, MXS_SESSION*); DCB* dcb_connect(struct server*, MXS_SESSION*, const char*); int dcb_read(DCB*, GWBUF**, int); int dcb_drain_writeq(DCB*); diff --git a/server/core/dcb.cc b/server/core/dcb.cc index 3e43f0716..ba5ba3162 100644 --- a/server/core/dcb.cc +++ b/server/core/dcb.cc @@ -140,23 +140,23 @@ uint64_t dcb_get_session_id(DCB* dcb) return (dcb && dcb->session) ? dcb->session->ses_id : 0; } -static MXB_WORKER* get_dcb_owner(dcb_role_t role) +static MXB_WORKER* get_dcb_owner() { /** The DCB is owned by the thread that allocates it */ mxb_assert(RoutingWorker::get_current_id() != -1); return RoutingWorker::get_current(); } -DCB::DCB(dcb_role_t role, MXS_SESSION* session) - : MXB_POLL_DATA{dcb_poll_handler, get_dcb_owner(role)} - , dcb_role(role) +DCB::DCB(Role role, MXS_SESSION* session) + : MXB_POLL_DATA{dcb_poll_handler, get_dcb_owner()} + , role(role) , session(session) , high_water(config_writeq_high_water()) , low_water(config_writeq_low_water()) , service(session->service) , last_read(mxs_clock()) { - // TODO: Remove DCB_ROLE_INTERNAL to always have a valid listener + // TODO: Remove DCB::Role::INTERNAL to always have a valid listener if (session->listener) { func = session->listener->protocol_func(); @@ -220,7 +220,7 @@ DCB::~DCB() * * @return An available DCB or NULL if none could be allocated. */ -DCB* dcb_alloc(dcb_role_t role, MXS_SESSION* session) +DCB* dcb_alloc(DCB::Role role, MXS_SESSION* session) { return new(std::nothrow) DCB(role, session); } @@ -232,8 +232,7 @@ DCB* dcb_alloc(dcb_role_t role, MXS_SESSION* session) */ static void dcb_final_free(DCB* dcb) { - mxb_assert_message(dcb->state == DCB_STATE_DISCONNECTED - || dcb->state == DCB_STATE_ALLOC, + mxb_assert_message(dcb->state == DCB_STATE_DISCONNECTED || dcb->state == DCB_STATE_ALLOC, "dcb not in DCB_STATE_DISCONNECTED not in DCB_STATE_ALLOC state."); if (dcb->session) @@ -243,7 +242,7 @@ static void dcb_final_free(DCB* dcb) */ MXS_SESSION* local_session = dcb->session; dcb->session = NULL; - if (dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER) + if (dcb->role == DCB::Role::BACKEND) { session_unlink_backend_dcb(local_session, dcb); } @@ -256,7 +255,7 @@ static void dcb_final_free(DCB* dcb) * been closed. */ - mxb_assert(dcb->dcb_role == DCB_ROLE_CLIENT_HANDLER || dcb->dcb_role == DCB_ROLE_INTERNAL); + mxb_assert(dcb->role == DCB::Role::CLIENT || dcb->role == DCB::Role::INTERNAL); session_put_ref(local_session); return; } @@ -350,7 +349,7 @@ DCB* dcb_connect(SERVER* server, MXS_SESSION* session, const char* protocol) } } - if ((dcb = dcb_alloc(DCB_ROLE_BACKEND_HANDLER, session)) == NULL) + if ((dcb = dcb_alloc(DCB::Role::BACKEND, session)) == NULL) { return NULL; } @@ -599,7 +598,7 @@ static int dcb_bytes_readable(DCB* dcb) static int dcb_read_no_bytes_available(DCB* dcb, int nreadtotal) { /** Handle closed client socket */ - if (nreadtotal == 0 && DCB_ROLE_CLIENT_HANDLER == dcb->dcb_role) + if (nreadtotal == 0 && DCB::Role::CLIENT == dcb->role) { char c; int l_errno = 0; @@ -998,17 +997,17 @@ static void log_illegal_dcb(DCB* dcb) { const char* connected_to; - switch (dcb->dcb_role) + switch (dcb->role) { - case DCB_ROLE_BACKEND_HANDLER: + case DCB::Role::BACKEND: connected_to = dcb->server->name; break; - case DCB_ROLE_CLIENT_HANDLER: + case DCB::Role::CLIENT: connected_to = dcb->remote; break; - case DCB_ROLE_INTERNAL: + case DCB::Role::INTERNAL: connected_to = "Internal DCB"; break; @@ -1138,11 +1137,11 @@ void dcb_final_close(DCB* dcb) #endif mxb_assert(dcb->n_close != 0); - if (dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER // Backend DCB - && dcb->state == DCB_STATE_POLLING // Being polled - && dcb->persistentstart == 0 /** Not already in (> 0) or being evicted from (-1) - * the persistent pool. */ - && dcb->server) // And has a server + if (dcb->role == DCB::Role::BACKEND // Backend DCB + && dcb->state == DCB_STATE_POLLING // Being polled + && dcb->persistentstart == 0 /** Not already in (> 0) or being evicted from (-1) + * the persistent pool. */ + && dcb->server) // And has a server { /* May be a candidate for persistence, so save user name */ const char* user; @@ -1167,7 +1166,7 @@ void dcb_final_close(DCB* dcb) if (dcb->server) { - // This is now a DCB_ROLE_BACKEND_HANDLER. + // This is now a DCB::Role::BACKEND_HANDLER. // TODO: Make decisions according to the role and assert // TODO: that what the role implies is preset. mxb::atomic::add(&dcb->server->stats.n_current, -1, mxb::atomic::RELAXED); @@ -1197,7 +1196,7 @@ void dcb_final_close(DCB* dcb) else { // Only internal DCBs are closed with a fd of -1 - mxb_assert(dcb->dcb_role == DCB_ROLE_INTERNAL); + mxb_assert(dcb->role == DCB::Role::INTERNAL); } dcb->state = DCB_STATE_DISCONNECTED; @@ -1483,7 +1482,7 @@ static bool dlist_clients_cb(DCB* dcb, void* data) { DCB* pdcb = (DCB*)data; - if (dcb->dcb_role == DCB_ROLE_CLIENT_HANDLER) + if (dcb->role == DCB::Role::CLIENT) { dcb_printf(pdcb, " %-15s | %16p | %-20s | %10p\n", @@ -2031,7 +2030,7 @@ bool count_by_usage_cb(DCB* dcb, void* data) switch (d->type) { case DCB_USAGE_CLIENT: - if (DCB_ROLE_CLIENT_HANDLER == dcb->dcb_role) + if (DCB::Role::CLIENT == dcb->role) { d->count++; } @@ -2045,15 +2044,15 @@ bool count_by_usage_cb(DCB* dcb, void* data) break; case DCB_USAGE_BACKEND: - if (dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER) + if (dcb->role == DCB::Role::BACKEND) { d->count++; } break; case DCB_USAGE_INTERNAL: - if (dcb->dcb_role == DCB_ROLE_CLIENT_HANDLER - || dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER) + if (dcb->role == DCB::Role::CLIENT + || dcb->role == DCB::Role::BACKEND) { d->count++; } @@ -2305,15 +2304,15 @@ char* dcb_role_name(DCB* dcb) if (name) { name[0] = 0; - if (DCB_ROLE_CLIENT_HANDLER == dcb->dcb_role) + if (DCB::Role::CLIENT == dcb->role) { strcat(name, "Client Request Handler"); } - else if (DCB_ROLE_BACKEND_HANDLER == dcb->dcb_role) + else if (DCB::Role::BACKEND == dcb->role) { strcat(name, "Backend Request Handler"); } - else if (DCB_ROLE_INTERNAL == dcb->dcb_role) + else if (DCB::Role::INTERNAL == dcb->role) { strcat(name, "Internal"); } @@ -2432,7 +2431,7 @@ void dcb_process_idle_sessions(int thr) for (DCB* dcb = this_unit.all_dcbs[thr]; dcb; dcb = dcb->thread.next) { - if (dcb->dcb_role == DCB_ROLE_CLIENT_HANDLER) + if (dcb->role == DCB::Role::CLIENT) { SERVICE* service = dcb->session->service; @@ -2621,7 +2620,7 @@ static uint32_t dcb_process_poll_events(DCB* dcb, uint32_t events) * until it return 1 for success or -1 for error */ if (dcb->ssl_state == SSL_HANDSHAKE_REQUIRED) { - return_code = (DCB_ROLE_CLIENT_HANDLER == dcb->dcb_role) ? + return_code = (DCB::Role::CLIENT == dcb->role) ? dcb_accept_SSL(dcb) : dcb_connect_SSL(dcb); } @@ -3046,7 +3045,7 @@ int poll_add_dcb(DCB* dcb) dcb_state_t new_state; RoutingWorker* owner = nullptr; - if (dcb->dcb_role == DCB_ROLE_CLIENT_HANDLER) + if (dcb->role == DCB::Role::CLIENT) { if (strcasecmp(dcb->service->routerModule, "cli") == 0 || strcasecmp(dcb->service->routerModule, "maxinfo") == 0) @@ -3074,7 +3073,7 @@ int poll_add_dcb(DCB* dcb) } else { - mxb_assert(dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER); + mxb_assert(dcb->role == DCB::Role::BACKEND); mxb_assert(RoutingWorker::get_current_id() != -1); mxb_assert(RoutingWorker::get_current() == dcb->owner); @@ -3135,7 +3134,7 @@ int poll_remove_dcb(DCB* dcb) * Only positive fds can be removed from epoll set. */ dcbfd = dcb->fd; - mxb_assert(dcbfd > 0 || dcb->dcb_role == DCB_ROLE_INTERNAL); + mxb_assert(dcbfd > 0 || dcb->role == DCB::Role::INTERNAL); if (dcbfd > 0) { @@ -3188,7 +3187,7 @@ bool backend_dcb_remove_func(DCB* dcb, void* data) { MXS_SESSION* session = (MXS_SESSION*)data; - if (dcb->session == session && dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER) + if (dcb->session == session && dcb->role == DCB::Role::BACKEND) { poll_remove_dcb(dcb); } @@ -3200,7 +3199,7 @@ bool backend_dcb_add_func(DCB* dcb, void* data) { MXS_SESSION* session = (MXS_SESSION*)data; - if (dcb->session == session && dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER) + if (dcb->session == session && dcb->role == DCB::Role::BACKEND) { poll_add_dcb(dcb); } @@ -3255,14 +3254,17 @@ json_t* dcb_to_json(DCB* dcb) const char* DCB::type() { - switch (dcb_role) + switch (role) { - case DCB_ROLE_CLIENT_HANDLER: + case DCB::Role::CLIENT: return "Client DCB"; - case DCB_ROLE_BACKEND_HANDLER: + + case DCB::Role::BACKEND: return "Backend DCB"; - case DCB_ROLE_INTERNAL: + + case DCB::Role::INTERNAL: return "Internal DCB"; + default: mxb_assert(!true); return "Unknown DCB"; diff --git a/server/core/listener.cc b/server/core/listener.cc index 0c1f7dc5d..453cff952 100644 --- a/server/core/listener.cc +++ b/server/core/listener.cc @@ -852,7 +852,6 @@ static int accept_one_connection(int fd, struct sockaddr* client_conn) return client_fd; } - } DCB* Listener::accept_one_dcb() @@ -866,7 +865,7 @@ DCB* Listener::accept_one_dcb() configure_network_socket(c_sock, client_conn.ss_family); mxs::Session* session = new(std::nothrow) mxs::Session(m_self); - client_dcb = dcb_alloc(DCB_ROLE_CLIENT_HANDLER, session); + client_dcb = dcb_alloc(DCB::Role::CLIENT, session); if (!session || !client_dcb) { diff --git a/server/core/session.cc b/server/core/session.cc index d020637d5..125d8e25f 100644 --- a/server/core/session.cc +++ b/server/core/session.cc @@ -59,8 +59,8 @@ struct /* Global session id counter. Must be updated atomically. Value 0 is reserved for * dummy/unused sessions. */ - uint64_t next_session_id; - uint32_t retain_last_statements; + uint64_t next_session_id; + uint32_t retain_last_statements; session_dump_statements_t dump_statements; } this_unit = { @@ -68,7 +68,6 @@ struct 0, SESSION_DUMP_STATEMENTS_NEVER }; - } static void session_initialize(void* session); @@ -171,7 +170,7 @@ bool session_start(MXS_SESSION* session) void session_link_backend_dcb(MXS_SESSION* session, DCB* dcb) { - mxb_assert(dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER); + mxb_assert(dcb->role == DCB::Role::BACKEND); mxb::atomic::add(&session->refcount, 1); dcb->session = session; @@ -329,7 +328,7 @@ void printSession(MXS_SESSION* session) bool printAllSessions_cb(DCB* dcb, void* data) { - if (dcb->dcb_role == DCB_ROLE_CLIENT_HANDLER) + if (dcb->role == DCB::Role::CLIENT) { printSession(dcb->session); } @@ -351,7 +350,7 @@ void printAllSessions() /** Callback for dprintAllSessions */ bool dprintAllSessions_cb(DCB* dcb, void* data) { - if (dcb->dcb_role == DCB_ROLE_CLIENT_HANDLER) + if (dcb->role == DCB::Role::CLIENT) { DCB* out_dcb = (DCB*)data; dprintSession(out_dcb, dcb->session); @@ -420,7 +419,7 @@ void dprintSession(DCB* dcb, MXS_SESSION* print_session) bool dListSessions_cb(DCB* dcb, void* data) { - if (dcb->dcb_role == DCB_ROLE_CLIENT_HANDLER) + if (dcb->role == DCB::Role::CLIENT) { DCB* out_dcb = (DCB*)data; MXS_SESSION* session = dcb->session; @@ -605,7 +604,7 @@ const char* session_get_user(const MXS_SESSION* session) bool dcb_iter_cb(DCB* dcb, void* data) { - if (dcb->dcb_role == DCB_ROLE_CLIENT_HANDLER) + if (dcb->role == DCB::Role::CLIENT) { ResultSet* set = static_cast(data); MXS_SESSION* ses = dcb->session; @@ -825,7 +824,7 @@ struct SessionListData bool seslist_cb(DCB* dcb, void* data) { - if (dcb->dcb_role == DCB_ROLE_CLIENT_HANDLER) + if (dcb->role == DCB::Role::CLIENT) { SessionListData* d = (SessionListData*)data; Session* session = static_cast(dcb->session); @@ -1122,7 +1121,7 @@ Session::~Session() void Session::set_client_dcb(DCB* dcb) { mxb_assert(client_dcb == nullptr); - mxb_assert(dcb->dcb_role == DCB_ROLE_CLIENT_HANDLER); + mxb_assert(dcb->role == DCB::Role::CLIENT); client_dcb = dcb; } @@ -1187,7 +1186,7 @@ void Session::dump_statements() const if ((id != 0) && (id != ses_id)) { MXS_WARNING("Current session is %" PRIu64 ", yet statements are dumped for %" PRIu64 ". " - "The session id in the subsequent dumped statements is the wrong one.", + "The session id in the subsequent dumped statements is the wrong one.", id, ses_id); } @@ -1502,7 +1501,6 @@ void timespec_to_iso(char* zIso, const timespec& ts) i = sprintf(zIso + i, ".%03ld", ts.tv_nsec / 1000000); mxb_assert(i == 4); } - } json_t* Session::QueryInfo::as_json() const @@ -1570,8 +1568,8 @@ void Session::QueryInfo::book_server_response(SERVER* pServer, bool final_respon mxb_assert(!m_complete); // A particular server may be reported only exactly once. mxb_assert(find_if(m_server_infos.begin(), m_server_infos.end(), [pServer](const ServerInfo& info) { - return info.pServer == pServer; - }) == m_server_infos.end()); + return info.pServer == pServer; + }) == m_server_infos.end()); timespec now; clock_gettime(CLOCK_REALTIME_COARSE, &now); diff --git a/server/core/test/test_dcb.cc b/server/core/test/test_dcb.cc index cf30d4f82..1da99a2f2 100644 --- a/server/core/test/test_dcb.cc +++ b/server/core/test/test_dcb.cc @@ -49,11 +49,11 @@ static int test1() { DCB* dcb; /* Single buffer tests */ - fprintf(stderr, "testdcb : creating buffer with type DCB_ROLE_INTERNAL"); + fprintf(stderr, "testdcb : creating buffer with type DCB::Role::INTERNAL"); auto service = service_alloc("service", "readconnroute", nullptr); auto listener = Listener::create(service, "listener", "mariadbclient", "0.0.0.0", 3306, "", "", nullptr); auto session = new mxs::Session(listener); - dcb = dcb_alloc(DCB_ROLE_INTERNAL, session); + dcb = dcb_alloc(DCB::Role::INTERNAL, session); printDCB(dcb); fprintf(stderr, "\t..done\nAllocated dcb."); // TODO: Without running workers, the following will hang. As it does not diff --git a/server/core/test/test_poll.cc b/server/core/test/test_poll.cc index 085b811e5..5d43cb476 100644 --- a/server/core/test/test_poll.cc +++ b/server/core/test/test_poll.cc @@ -60,7 +60,7 @@ static int test1() auto service = service_alloc("service", "readconnroute", nullptr); auto listener = Listener::create(service, "listener", "mariadbclient", "0.0.0.0", 3306, "", "", nullptr); auto session = new mxs::Session(listener); - dcb = dcb_alloc(DCB_ROLE_CLIENT_HANDLER, session); + dcb = dcb_alloc(DCB::Role::CLIENT, session); if (dcb == NULL) { diff --git a/server/modules/filter/test/mock_backend.cc b/server/modules/filter/test/mock_backend.cc index 221a0becd..a63f8f88b 100644 --- a/server/modules/filter/test/mock_backend.cc +++ b/server/modules/filter/test/mock_backend.cc @@ -174,7 +174,7 @@ class ResultSetDCB : public DCB { public: ResultSetDCB(MXS_SESSION* session) - : DCB(DCB_ROLE_CLIENT_HANDLER, session) + : DCB(DCB::Role::CLIENT, session) { DCB* pDcb = this; diff --git a/server/modules/filter/test/mock_dcb.cc b/server/modules/filter/test/mock_dcb.cc index 7b2d86ad5..ee445bb16 100644 --- a/server/modules/filter/test/mock_dcb.cc +++ b/server/modules/filter/test/mock_dcb.cc @@ -34,7 +34,7 @@ Dcb::Dcb(MXS_SESSION* pSession, const char* zUser, const char* zHost, Handler* pHandler) - : DCB(DCB_ROLE_CLIENT_HANDLER, pSession) + : DCB(DCB::Role::CLIENT, pSession) , m_user(zUser) , m_host(zHost) , m_pHandler(pHandler) diff --git a/server/modules/protocol/MySQL/mariadbbackend/mysql_backend.cc b/server/modules/protocol/MySQL/mariadbbackend/mysql_backend.cc index 9aac6bf7b..3cc95cd9f 100644 --- a/server/modules/protocol/MySQL/mariadbbackend/mysql_backend.cc +++ b/server/modules/protocol/MySQL/mariadbbackend/mysql_backend.cc @@ -401,7 +401,7 @@ static inline void prepare_for_write(DCB* dcb, GWBUF* buffer) { MySQLProtocol* proto = (MySQLProtocol*)dcb->protocol; - // The DCB's session is set to null when it is put into the persistent connection pool. + // The DCB's session is set to null when it is put into the persistent connection pool. if (dcb->session) { uint64_t capabilities = service_get_capabilities(dcb->session->service); @@ -645,7 +645,7 @@ static inline bool session_ok_to_route(DCB* dcb) rval = true; } } - else if (dcb->session->client_dcb->dcb_role == DCB_ROLE_INTERNAL) + else if (dcb->session->client_dcb->role == DCB::Role::INTERNAL) { rval = true; } @@ -1351,7 +1351,7 @@ static int gw_backend_hangup(DCB* dcb) if (error != 0 && session->state != SESSION_STATE_STOPPING) { MXS_ERROR("Hangup in session that is not ready for routing, " - "Error reported is '%s'.", + "Error reported is '%s'.", mxs_strerror(errno)); } } diff --git a/server/modules/protocol/MySQL/mariadbclient/mysql_client.cc b/server/modules/protocol/MySQL/mariadbclient/mysql_client.cc index 05200586c..ae61793fb 100644 --- a/server/modules/protocol/MySQL/mariadbclient/mysql_client.cc +++ b/server/modules/protocol/MySQL/mariadbclient/mysql_client.cc @@ -456,7 +456,7 @@ int gw_read_client_event(DCB* dcb) uint32_t nbytes_read = 0; uint32_t max_bytes = 0; - if (dcb->dcb_role != DCB_ROLE_CLIENT_HANDLER) + if (dcb->role != DCB::Role::CLIENT) { MXS_ERROR("DCB must be a client handler for MySQL client protocol."); return 1; diff --git a/server/modules/protocol/MySQL/mysql_common.cc b/server/modules/protocol/MySQL/mysql_common.cc index 6bb81aa1b..9f815266e 100644 --- a/server/modules/protocol/MySQL/mysql_common.cc +++ b/server/modules/protocol/MySQL/mysql_common.cc @@ -590,7 +590,7 @@ bool gw_get_shared_session_auth_info(DCB* dcb, MYSQL_session* session) { bool rval = true; - if (dcb->dcb_role == DCB_ROLE_CLIENT_HANDLER) + if (dcb->role == DCB::Role::CLIENT) { // The shared session data can be extracted at any time if the client DCB is used. mxb_assert(dcb->data); @@ -1385,7 +1385,7 @@ static bool kill_func(DCB* dcb, void* data) { ConnKillInfo* info = static_cast(data); - if (dcb->session->ses_id == info->target_id && dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER) + if (dcb->session->ses_id == info->target_id && dcb->role == DCB::Role::BACKEND) { MySQLProtocol* proto = (MySQLProtocol*)dcb->protocol; @@ -1411,7 +1411,7 @@ static bool kill_user_func(DCB* dcb, void* data) { UserKillInfo* info = (UserKillInfo*)data; - if (dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER + if (dcb->role == DCB::Role::BACKEND && strcasecmp(dcb->session->client_dcb->user, info->user.c_str()) == 0) { info->targets[dcb->server] = info->query_base; diff --git a/server/modules/routing/avrorouter/avro_file.cc b/server/modules/routing/avrorouter/avro_file.cc index 201ed8e0a..aeee78618 100644 --- a/server/modules/routing/avrorouter/avro_file.cc +++ b/server/modules/routing/avrorouter/avro_file.cc @@ -375,7 +375,7 @@ bool notify_cb(DCB* dcb, void* data) { SERVICE* service = static_cast(data); - if (dcb->service == service && dcb->dcb_role == DCB_ROLE_CLIENT_HANDLER) + if (dcb->service == service && dcb->role == DCB::Role::CLIENT) { poll_fake_write_event(dcb); } diff --git a/server/modules/routing/binlogrouter/blr.cc b/server/modules/routing/binlogrouter/blr.cc index a032b7cc1..9d8d945bb 100644 --- a/server/modules/routing/binlogrouter/blr.cc +++ b/server/modules/routing/binlogrouter/blr.cc @@ -2374,7 +2374,7 @@ static void errorReply(MXS_ROUTER* instance, mxs_error_action_t action, bool* succp) { - mxb_assert(backend_dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER); + mxb_assert(backend_dcb->role == DCB::Role::BACKEND); ROUTER_INSTANCE* router = (ROUTER_INSTANCE*)instance; int error; socklen_t len; diff --git a/server/modules/routing/binlogrouter/blr_master.cc b/server/modules/routing/binlogrouter/blr_master.cc index 77bdb4261..b16755235 100644 --- a/server/modules/routing/binlogrouter/blr_master.cc +++ b/server/modules/routing/binlogrouter/blr_master.cc @@ -189,7 +189,7 @@ static void blr_start_master(void* data) pthread_mutex_unlock(&router->lock); // TODO: Fix this - DCB* client = dcb_alloc(DCB_ROLE_INTERNAL, NULL); + DCB* client = dcb_alloc(DCB::Role::INTERNAL, NULL); /* Create fake 'client' DCB */ if (client == NULL) diff --git a/server/modules/routing/hintrouter/hintroutersession.cc b/server/modules/routing/hintrouter/hintroutersession.cc index 7b222a0b0..75c202f20 100644 --- a/server/modules/routing/hintrouter/hintroutersession.cc +++ b/server/modules/routing/hintrouter/hintroutersession.cc @@ -158,7 +158,7 @@ void HintRouterSession::handleError(GWBUF* pMessage, { HR_ENTRY(); - mxb_assert(pProblem->dcb_role == DCB_ROLE_BACKEND_HANDLER); + mxb_assert(pProblem->role == DCB::Role::BACKEND); MXS_SESSION* pSession = pProblem->session; mxs_session_state_t sesstate = pSession->state; diff --git a/server/modules/routing/maxinfo/maxinfo.cc b/server/modules/routing/maxinfo/maxinfo.cc index f7e2b66fc..b951bc066 100644 --- a/server/modules/routing/maxinfo/maxinfo.cc +++ b/server/modules/routing/maxinfo/maxinfo.cc @@ -269,7 +269,7 @@ static void handleError(MXS_ROUTER* instance, bool* succp) { - mxb_assert(backend_dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER); + mxb_assert(backend_dcb->role == DCB::Role::BACKEND); DCB* client_dcb; MXS_SESSION* session = backend_dcb->session; diff --git a/server/modules/routing/readconnroute/readconnroute.cc b/server/modules/routing/readconnroute/readconnroute.cc index 0c9fb1c93..07f9d36cb 100644 --- a/server/modules/routing/readconnroute/readconnroute.cc +++ b/server/modules/routing/readconnroute/readconnroute.cc @@ -710,7 +710,7 @@ static void handleError(MXS_ROUTER* instance, bool* succp) { - mxb_assert(problem_dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER); + mxb_assert(problem_dcb->role == DCB::Role::BACKEND); mxb_assert(problem_dcb->session->state == SESSION_STATE_ROUTER_READY); DCB* client_dcb = problem_dcb->session->client_dcb; client_dcb->func.write(client_dcb, gwbuf_clone(errbuf)); diff --git a/server/modules/routing/readwritesplit/rwsplit_route_stmt.cc b/server/modules/routing/readwritesplit/rwsplit_route_stmt.cc index c3b73863c..a3365a25f 100644 --- a/server/modules/routing/readwritesplit/rwsplit_route_stmt.cc +++ b/server/modules/routing/readwritesplit/rwsplit_route_stmt.cc @@ -858,9 +858,9 @@ void RWSplitSession::log_master_routing_failure(bool found, /** Both backends should either be empty, not connected or the DCB should * be a backend (the last check is slightly redundant). */ mxb_assert(!old_master || !old_master->in_use() - || old_master->dcb()->dcb_role == DCB_ROLE_BACKEND_HANDLER); + || old_master->dcb()->role == DCB::Role::BACKEND); mxb_assert(!curr_master || !curr_master->in_use() - || curr_master->dcb()->dcb_role == DCB_ROLE_BACKEND_HANDLER); + || curr_master->dcb()->role == DCB::Role::BACKEND); char errmsg[MAX_SERVER_ADDRESS_LEN * 2 + 100]; // Extra space for error message if (m_config.delayed_retry && m_retry_duration >= m_config.delayed_retry_timeout) diff --git a/server/modules/routing/readwritesplit/rwsplitsession.cc b/server/modules/routing/readwritesplit/rwsplitsession.cc index 9fdb8c706..49e3cce99 100644 --- a/server/modules/routing/readwritesplit/rwsplitsession.cc +++ b/server/modules/routing/readwritesplit/rwsplitsession.cc @@ -311,7 +311,7 @@ GWBUF* RWSplitSession::discard_master_wait_gtid_result(GWBUF* buffer) */ RWBackend* RWSplitSession::get_backend_from_dcb(DCB* dcb) { - mxb_assert(dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER); + mxb_assert(dcb->role == DCB::Role::BACKEND); for (auto it = m_raw_backends.begin(); it != m_raw_backends.end(); it++) { @@ -866,7 +866,7 @@ void RWSplitSession::handleError(GWBUF* errmsgbuf, mxs_error_action_t action, bool* succp) { - mxb_assert(problem_dcb->dcb_role == DCB_ROLE_BACKEND_HANDLER); + mxb_assert(problem_dcb->role == DCB::Role::BACKEND); MXS_SESSION* session = problem_dcb->session; mxb_assert(session); diff --git a/server/modules/routing/schemarouter/schemaroutersession.cc b/server/modules/routing/schemarouter/schemaroutersession.cc index b45f5e7ef..4aebd25f8 100644 --- a/server/modules/routing/schemarouter/schemaroutersession.cc +++ b/server/modules/routing/schemarouter/schemaroutersession.cc @@ -616,7 +616,7 @@ void SchemaRouterSession::handleError(GWBUF* pMessage, mxs_error_action_t action, bool* pSuccess) { - mxb_assert(pProblem->dcb_role == DCB_ROLE_BACKEND_HANDLER); + mxb_assert(pProblem->role == DCB::Role::BACKEND); SSRBackend bref = get_bref_from_dcb(pProblem); if (bref.get() == NULL) // Should never happen