diff --git a/examples/roundrobinrouter.cpp b/examples/roundrobinrouter.cpp index e22717071..f3e2dc76b 100644 --- a/examples/roundrobinrouter.cpp +++ b/examples/roundrobinrouter.cpp @@ -264,7 +264,7 @@ int RRRouter::route_query(RRRouterSession* rses, GWBUF* querybuf) if (print) { MXS_NOTICE("Routing statement of length %du to backend '%s'.", - gwbuf_length(querybuf), target->server->unique_name); + gwbuf_length(querybuf), target->server->name); } /* Do not use dcb_write() to output to a dcb. dcb_write() is used only * for raw write in the procol modules. */ diff --git a/include/maxscale/backend.hh b/include/maxscale/backend.hh index d3e8d6167..7bb035268 100644 --- a/include/maxscale/backend.hh +++ b/include/maxscale/backend.hh @@ -309,7 +309,7 @@ public: */ inline const char* name() const { - return m_backend->server->unique_name; + return m_backend->server->name; } /** diff --git a/include/maxscale/server.h b/include/maxscale/server.h index 61718dbbe..6ddae515f 100644 --- a/include/maxscale/server.h +++ b/include/maxscale/server.h @@ -108,47 +108,51 @@ typedef struct server #if defined(SS_DEBUG) skygw_chk_t server_chk_top; #endif - SPINLOCK lock; /**< Common access lock */ - char *unique_name; /**< Unique name for the server */ - char name[MAX_SERVER_ADDRESS_LEN]; /**< Server name/IP address*/ - unsigned short port; /**< Port to listen on */ - char *protocol; /**< Protocol module to use */ + // Base settings + char *name; /**< Server config name */ + char address[MAX_SERVER_ADDRESS_LEN]; /**< Server hostname/IP-address */ + unsigned short port; /**< Server port */ + char *protocol; /**< Backend protocol module name */ char *authenticator; /**< Authenticator module name */ - void *auth_instance; /**< Authenticator instance */ - char *auth_options; /**< Authenticator options */ - SSL_LISTENER *server_ssl; /**< SSL data structure for server, if any */ - uint64_t status; /**< Status flag bitmap for the server */ - uint64_t status_pending; /**< Pending status flag bitmap for the server */ - char monuser[MAX_SERVER_MONUSER_LEN]; /**< User name to use to monitor the db */ - char monpw[MAX_SERVER_MONPW_LEN]; /**< Password to use to monitor the db */ - SERVER_STATS stats; /**< The server statistics */ - struct server *next; /**< Next server */ - struct server *nextdb; /**< Next server in list attached to a service */ - char version_string[MAX_SERVER_VERSION_LEN]; /**< Server version string, i.e. MySQL server version */ - uint64_t version; /**< Server version */ - server_type_t server_type; /**< Server type */ + // Other settings + char monuser[MAX_SERVER_MONUSER_LEN]; /**< Monitor username, overrides monitor setting */ + char monpw[MAX_SERVER_MONPW_LEN]; /**< Monitor password, overrides monitor setting */ + long persistpoolmax; /**< Maximum size of persistent connections pool */ + long persistmaxtime; /**< Maximum number of seconds connection can live */ + bool proxy_protocol; /**< Send proxy-protocol header to backends when connecting + * routing sessions. */ + SERVER_PARAM *parameters; /**< Additional custom parameters which may affect routing decisions. */ + // Base variables + SPINLOCK lock; /**< Access lock. Required when modifying server status or settings. */ + struct server *next; /**< Next server in global server list */ + bool is_active; /**< Server is active and has not been "destroyed" */ + void *auth_instance; /**< Authenticator instance data */ + SSL_LISTENER *server_ssl; /**< SSL data */ + DCB **persistent; /**< List of unused persistent connections to the server */ + uint8_t charset; /**< Server character set. Read from backend and sent to client. */ + // Statistics and events + SERVER_STATS stats; /**< The server statistics, e.g. number of connections */ + int persistmax; /**< Maximum pool size actually achieved since startup */ + int last_event; /**< The last event that occurred on this server */ + int64_t triggered_at; /**< Time when the last event was triggered */ + bool active_event; /**< Was MaxScale active when last event was observed */ + // Values updated mainly by monitor + uint64_t status; /**< Current status flag bitmap */ + uint64_t status_pending; /**< Temporary status, usually written to current status once ready */ + char version_string[MAX_SERVER_VERSION_LEN]; /**< Server version string as given by backend */ + uint64_t version; /**< Server version numeric representation */ + server_type_t server_type; /**< Server type (MariaDB or MySQL), deduced from version string */ long node_id; /**< Node id, server_id for M/S or local_index for Galera */ - int rlag; /**< Replication Lag for Master / Slave replication */ + int rlag; /**< Replication Lag for Master/Slave replication */ unsigned long node_ts; /**< Last timestamp set from M/S monitor module */ - SERVER_PARAM *parameters; /**< Parameters of a server that may be used to weight routing decisions */ long master_id; /**< Master server id of this node */ int depth; /**< Replication level in the tree */ long slaves[MAX_NUM_SLAVES]; /**< Slaves of this node */ - bool master_err_is_logged; /*< If node failed, this indicates whether it is logged */ - DCB **persistent; /**< List of unused persistent connections to the server */ - long persistpoolmax; /**< Maximum size of persistent connections pool */ - long persistmaxtime; /**< Maximum number of seconds connection can live */ - int persistmax; /**< Maximum pool size actually achieved since startup */ - uint8_t charset; /**< Default server character set */ - bool is_active; /**< Server is active and has not been "destroyed" */ - bool proxy_protocol; /**< Send proxy-protocol header to backend when connecting client sessions. */ - int last_event; /**< The last event that occurred on this server */ - bool active_event; /**< Event observed when MaxScale was active */ - int64_t triggered_at; /**< Time when the last event was triggered */ - struct - { - bool ssl_not_enabled; /**< SSL not used for an SSL enabled server */ - } log_warning; /**< Whether a specific warning was logged */ + // Misc fields + char *auth_options; /**< Authenticator options, not used. TODO: Remove. */ + bool master_err_is_logged; /**< If node failed, this indicates whether it is logged. Only used + * by rwsplit. TODO: Move to rwsplit */ + bool warn_ssl_not_enabled; /**< SSL not used for an SSL enabled server */ #if defined(SS_DEBUG) skygw_chk_t server_chk_tail; #endif diff --git a/server/core/backend.cc b/server/core/backend.cc index d83f84106..32c3f2183 100644 --- a/server/core/backend.cc +++ b/server/core/backend.cc @@ -27,7 +27,7 @@ Backend::Backend(SERVER_REF *ref): m_state(0) { std::stringstream ss; - ss << "[" << server()->name << "]:" << server()->port; + ss << "[" << server()->address << "]:" << server()->port; m_uri = ss.str(); } diff --git a/server/core/config.cc b/server/core/config.cc index 522be53f7..41323107f 100644 --- a/server/core/config.cc +++ b/server/core/config.cc @@ -3176,7 +3176,7 @@ int create_new_server(CONFIG_CONTEXT *obj) if (*endptr != '\0' || persistpoolmax < 0) { MXS_ERROR("Invalid value for 'persistpoolmax' for server %s: %s", - server->unique_name, poolmax); + server->name, poolmax); error_count++; } else @@ -3192,7 +3192,7 @@ int create_new_server(CONFIG_CONTEXT *obj) if (*endptr != '\0' || persistmaxtime < 0) { MXS_ERROR("Invalid value for 'persistmaxtime' for server %s: %s", - server->unique_name, persistmax); + server->name, persistmax); error_count++; } else @@ -3216,7 +3216,7 @@ int create_new_server(CONFIG_CONTEXT *obj) else { MXS_ERROR("Invalid value for '%s' for server %s: %s", - CN_PROXY_PROTOCOL, server->unique_name, proxy_protocol); + CN_PROXY_PROTOCOL, server->name, proxy_protocol); error_count++; } } diff --git a/server/core/config_runtime.cc b/server/core/config_runtime.cc index d5254e2c1..a8725ba8d 100644 --- a/server/core/config_runtime.cc +++ b/server/core/config_runtime.cc @@ -79,7 +79,7 @@ bool runtime_link_server(SERVER *server, const char *target) else { runtime_error("Service '%s' already uses server '%s'", - service->name, server->unique_name); + service->name, server->name); } } else if (monitor) @@ -91,14 +91,14 @@ bool runtime_link_server(SERVER *server, const char *target) } else { - runtime_error("Server '%s' is already monitored", server->unique_name); + runtime_error("Server '%s' is already monitored", server->name); } } if (rval) { const char *type = service ? "service" : "monitor"; - MXS_NOTICE("Added server '%s' to %s '%s'", server->unique_name, type, target); + MXS_NOTICE("Added server '%s' to %s '%s'", server->name, type, target); } spinlock_release(&crt_lock); @@ -129,7 +129,7 @@ bool runtime_unlink_server(SERVER *server, const char *target) } const char *type = service ? "service" : "monitor"; - MXS_NOTICE("Removed server '%s' from %s '%s'", server->unique_name, type, target); + MXS_NOTICE("Removed server '%s' from %s '%s'", server->name, type, target); } spinlock_release(&crt_lock); @@ -181,8 +181,8 @@ bool runtime_create_server(const char *name, const char *address, const char *po if (server && server_serialize(server)) { rval = true; - MXS_NOTICE("Created server '%s' at %s:%u", server->unique_name, - server->name, server->port); + MXS_NOTICE("Created server '%s' at %s:%u", server->name, + server->address, server->port); } else { @@ -207,14 +207,14 @@ bool runtime_destroy_server(SERVER *server) { const char* err = "Cannot destroy server '%s' as it is used by at least " "one service or monitor"; - runtime_error(err, server->unique_name); - MXS_ERROR(err, server->unique_name); + runtime_error(err, server->name); + MXS_ERROR(err, server->name); } else { char filename[PATH_MAX]; snprintf(filename, sizeof(filename), "%s/%s.cnf", get_config_persistdir(), - server->unique_name); + server->name); if (unlink(filename) == -1) { @@ -228,7 +228,7 @@ bool runtime_destroy_server(SERVER *server) rval = true; MXS_WARNING("Server '%s' was not created at runtime. Remove the " "server manually from the correct configuration file.", - server->unique_name); + server->name); } } else @@ -238,8 +238,8 @@ bool runtime_destroy_server(SERVER *server) if (rval) { - MXS_NOTICE("Destroyed server '%s' at %s:%u", server->unique_name, - server->name, server->port); + MXS_NOTICE("Destroyed server '%s' at %s:%u", server->name, + server->address, server->port); server->is_active = false; } } @@ -286,7 +286,7 @@ bool runtime_enable_server_ssl(SERVER *server, const char *key, const char *cert if (key && cert && ca) { spinlock_acquire(&crt_lock); - SSL_LISTENER *ssl = create_ssl(server->unique_name, key, cert, ca, version, depth); + SSL_LISTENER *ssl = create_ssl(server->name, key, cert, ca, version, depth); if (ssl) { @@ -300,7 +300,7 @@ bool runtime_enable_server_ssl(SERVER *server, const char *key, const char *cert if (server_serialize(server)) { - MXS_NOTICE("Enabled SSL for server '%s'", server->unique_name); + MXS_NOTICE("Enabled SSL for server '%s'", server->name); rval = true; } } @@ -406,7 +406,7 @@ bool runtime_alter_server(SERVER *server, const char *key, const char *value) { if (server_serialize(server)) { - MXS_NOTICE("Updated server '%s': %s=%s", server->unique_name, key, value); + MXS_NOTICE("Updated server '%s': %s=%s", server->name, key, value); } } else @@ -1286,7 +1286,7 @@ static bool process_ssl_parameters(SERVER* server, json_t* params) if (!runtime_enable_server_ssl(server, key, cert, ca, version, depth)) { runtime_error("Failed to initialize SSL for server '%s'. See " - "error log for more details.", server->unique_name); + "error log for more details.", server->name); rval = false; } } diff --git a/server/core/dcb.cc b/server/core/dcb.cc index 24dd96f9d..7c604b47d 100644 --- a/server/core/dcb.cc +++ b/server/core/dcb.cc @@ -460,7 +460,7 @@ dcb_connect(SERVER *server, MXS_SESSION *session, const char *protocol) if (fd == DCBFD_CLOSED) { MXS_DEBUG("Failed to connect to server [%s]:%d, from backend dcb %p, client dcp %p fd %d", - server->name, server->port, dcb, session->client_dcb, session->client_dcb->fd); + server->address, server->port, dcb, session->client_dcb, session->client_dcb->fd); // Remove the inc ref that was done in session_link_backend_dcb(). session_put_ref(dcb->session); dcb->session = NULL; @@ -470,7 +470,7 @@ dcb_connect(SERVER *server, MXS_SESSION *session, const char *protocol) else { MXS_DEBUG("Connected to server [%s]:%d, from backend dcb %p, client dcp %p fd %d.", - server->name, server->port, dcb, session->client_dcb, session->client_dcb->fd); + server->address, server->port, dcb, session->client_dcb, session->client_dcb->fd); } /** * Successfully connected to backend. Assign file descriptor to dcb @@ -1063,7 +1063,7 @@ static void log_illegal_dcb(DCB *dcb) switch (dcb->dcb_role) { case DCB_ROLE_BACKEND_HANDLER: - connected_to = dcb->server->unique_name; + connected_to = dcb->server->name; break; case DCB_ROLE_CLIENT_HANDLER: @@ -1470,10 +1470,10 @@ dprintOneDCB(DCB *pdcb, DCB *dcb) } if (dcb->server) { - if (dcb->server->name) + if (dcb->server->address) { dcb_printf(pdcb, "\tServer name/IP: %s\n", - dcb->server->name); + dcb->server->address); } if (dcb->server->port) { diff --git a/server/core/monitor.cc b/server/core/monitor.cc index d8d0fc414..a0f17a267 100644 --- a/server/core/monitor.cc +++ b/server/core/monitor.cc @@ -311,7 +311,7 @@ bool monitorAddServer(MXS_MONITOR *mon, SERVER *server) if (monitor_server_in_use(server)) { - MXS_ERROR("Server '%s' is already monitored.", server->unique_name); + MXS_ERROR("Server '%s' is already monitored.", server->name); } else { @@ -529,7 +529,7 @@ monitorShow(DCB *dcb, MXS_MONITOR *monitor) for (MXS_MONITORED_SERVER *db = monitor->monitored_servers; db; db = db->next) { - dcb_printf(dcb, "%s[%s]:%d", sep, db->server->name, db->server->port); + dcb_printf(dcb, "%s[%s]:%d", sep, db->server->address, db->server->port); sep = ", "; } @@ -798,7 +798,7 @@ bool check_monitor_permissions(MXS_MONITOR* monitor, const char* query) { MXS_ERROR("[%s] Failed to connect to server '%s' ([%s]:%d) when" " checking monitor user credentials and permissions: %s", - monitor->name, mondb->server->unique_name, mondb->server->name, + monitor->name, mondb->server->name, mondb->server->address, mondb->server->port, mysql_error(mondb->con)); switch (mysql_errno(mondb->con)) { @@ -1135,7 +1135,7 @@ static void mon_append_node_names(MXS_MONITOR* mon, { if (approach == CREDENTIALS_EXCLUDE) { - snprintf(arr, sizeof(arr), "%s[%s]:%d", separator, servers->server->name, + snprintf(arr, sizeof(arr), "%s[%s]:%d", separator, servers->server->address, servers->server->port); } else @@ -1157,7 +1157,7 @@ static void mon_append_node_names(MXS_MONITOR* mon, separator, user, password, - servers->server->name, + servers->server->address, servers->server->port); } @@ -1257,7 +1257,7 @@ static std::string child_nodes(MXS_MONITORED_SERVER* servers, ss << ","; } - ss << "[" << node->server->name << "]:" << node->server->port; + ss << "[" << node->server->address << "]:" << node->server->port; have_content = true; } } @@ -1270,8 +1270,8 @@ int monitor_launch_command(MXS_MONITOR* mon, MXS_MONITORED_SERVER* ptr, EXTERNCM { if (externcmd_matches(cmd, "$INITIATOR")) { - char initiator[strlen(ptr->server->name) + 24]; // Extra space for port - snprintf(initiator, sizeof(initiator), "[%s]:%d", ptr->server->name, ptr->server->port); + char initiator[strlen(ptr->server->address) + 24]; // Extra space for port + snprintf(initiator, sizeof(initiator), "[%s]:%d", ptr->server->address, ptr->server->port); externcmd_substitute_arg(cmd, "[$]INITIATOR", initiator); } @@ -1282,7 +1282,7 @@ int monitor_launch_command(MXS_MONITOR* mon, MXS_MONITORED_SERVER* ptr, EXTERNCM if (parent) { - ss << "[" << parent->server->name << "]:" << parent->server->port; + ss << "[" << parent->server->address << "]:" << parent->server->port; } externcmd_substitute_arg(cmd, "[$]PARENT", ss.str().c_str()); } @@ -1505,7 +1505,7 @@ mon_log_connect_error(MXS_MONITORED_SERVER* database, mxs_connect_result_t rval) MXS_ERROR(rval == MONITOR_CONN_TIMEOUT ? "Monitor timed out when connecting to server [%s]:%d : \"%s\"" : "Monitor was unable to connect to server [%s]:%d : \"%s\"", - database->server->name, database->server->port, + database->server->address, database->server->port, mysql_error(database->con)); } @@ -1516,7 +1516,7 @@ static void mon_log_state_change(MXS_MONITORED_SERVER *ptr) char *prev = server_status(&srv); char *next = server_status(ptr->server); MXS_NOTICE("Server changed state: %s[%s:%u]: %s. [%s] -> [%s]", - ptr->server->unique_name, ptr->server->name, ptr->server->port, + ptr->server->name, ptr->server->address, ptr->server->port, mon_get_event_name(ptr), prev, next); MXS_FREE(prev); MXS_FREE(next); @@ -1586,7 +1586,7 @@ static bool create_monitor_config(const MXS_MONITOR *monitor, const char *filena { dprintf(file, ","); } - dprintf(file, "%s", db->server->unique_name); + dprintf(file, "%s", db->server->name); } dprintf(file, "\n"); } @@ -1676,7 +1676,7 @@ void mon_hangup_failed_servers(MXS_MONITOR *monitor) void mon_report_query_error(MXS_MONITORED_SERVER* db) { MXS_ERROR("Failed to execute query on server '%s' ([%s]:%d): %s", - db->server->unique_name, db->server->name, + db->server->name, db->server->address, db->server->port, mysql_error(db->con)); } @@ -1871,7 +1871,7 @@ json_t* monitor_json_data(const MXS_MONITOR* monitor, const char* host) for (MXS_MONITORED_SERVER *db = monitor->monitored_servers; db; db = db->next) { - mxs_json_add_relation(mon_rel, db->server->unique_name, CN_SERVERS); + mxs_json_add_relation(mon_rel, db->server->name, CN_SERVERS); } json_object_set_new(rel, CN_SERVERS, mon_rel); @@ -2044,8 +2044,8 @@ static void store_data(MXS_MONITOR *monitor, MXS_MONITORED_SERVER *master, uint8 for (MXS_MONITORED_SERVER* db = monitor->monitored_servers; db; db = db->next) { *ptr++ = (char)SVT_SERVER; // Value type - memcpy(ptr, db->server->unique_name, strlen(db->server->unique_name)); // Name of the server - ptr += strlen(db->server->unique_name); + memcpy(ptr, db->server->name, strlen(db->server->name)); // Name of the server + ptr += strlen(db->server->name); *ptr++ = '\0'; // Null-terminate the string uint32_t status = db->server->status; // Server status as 4 byte integer @@ -2057,8 +2057,8 @@ static void store_data(MXS_MONITOR *monitor, MXS_MONITORED_SERVER *master, uint8 if (master) { *ptr++ = (char)SVT_MASTER; - memcpy(ptr, master->server->unique_name, strlen(master->server->unique_name)); - ptr += strlen(master->server->unique_name); + memcpy(ptr, master->server->name, strlen(master->server->name)); + ptr += strlen(master->server->name); *ptr++ = '\0'; // Null-terminate the string } @@ -2129,7 +2129,7 @@ static const char* process_server(MXS_MONITOR *monitor, const char *data, const { for (MXS_MONITORED_SERVER* db = monitor->monitored_servers; db; db = db->next) { - if (strcmp(db->server->unique_name, data) == 0) + if (strcmp(db->server->name, data) == 0) { const unsigned char *sptr = (unsigned char*)strchr(data, '\0'); ss_dassert(sptr); @@ -2159,7 +2159,7 @@ static const char* process_master(MXS_MONITOR *monitor, MXS_MONITORED_SERVER **m { for (MXS_MONITORED_SERVER* db = monitor->monitored_servers; db; db = db->next) { - if (strcmp(db->server->unique_name, data) == 0) + if (strcmp(db->server->name, data) == 0) { *master = db; break; @@ -2235,13 +2235,13 @@ void store_server_journal(MXS_MONITOR *monitor, MXS_MONITORED_SERVER *master) { /** Each server is stored as a type byte and a null-terminated string * followed by eight byte server status. */ - size += MMB_LEN_VALUE_TYPE + strlen(db->server->unique_name) + 1 + MMB_LEN_SERVER_STATUS; + size += MMB_LEN_VALUE_TYPE + strlen(db->server->name) + 1 + MMB_LEN_SERVER_STATUS; } if (master) { /** The master server name is stored as a null terminated string */ - size += MMB_LEN_VALUE_TYPE + strlen(master->server->unique_name) + 1; + size += MMB_LEN_VALUE_TYPE + strlen(master->server->name) + 1; } /** 4 bytes for file length, 1 byte for schema version and 4 bytes for CRC32 */ @@ -2451,7 +2451,7 @@ int mon_config_get_servers(const MXS_CONFIG_PARAMETER* params, const char* key, else { MXS_WARNING("Server '%s' is not monitored by monitor '%s'.", - servers[i]->unique_name, mon->name); + servers[i]->name, mon->name); } } MXS_FREE(servers); diff --git a/server/core/mysql_utils.cc b/server/core/mysql_utils.cc index 060b0b713..f09e5ed89 100644 --- a/server/core/mysql_utils.cc +++ b/server/core/mysql_utils.cc @@ -191,7 +191,7 @@ MYSQL *mxs_mysql_real_connect(MYSQL *con, SERVER *server, const char *user, cons } } - MYSQL* mysql = mysql_real_connect(con, server->name, user, passwd, NULL, server->port, NULL, 0); + MYSQL* mysql = mysql_real_connect(con, server->address, user, passwd, NULL, server->port, NULL, 0); if (mysql) { @@ -202,12 +202,12 @@ MYSQL *mxs_mysql_real_connect(MYSQL *con, SERVER *server, const char *user, cons if (listener && mysql_get_ssl_cipher(con) == NULL) { - if (server->log_warning.ssl_not_enabled) + if (server->warn_ssl_not_enabled) { - server->log_warning.ssl_not_enabled = false; + server->warn_ssl_not_enabled = false; MXS_ERROR("An encrypted connection to '%s' could not be created, " "ensure that TLS is enabled on the target server.", - server->unique_name); + server->name); } // Don't close the connection as it is closed elsewhere, just set to NULL mysql = NULL; diff --git a/server/core/server.cc b/server/core/server.cc index fe752f8f6..308132569 100644 --- a/server/core/server.cc +++ b/server/core/server.cc @@ -111,17 +111,17 @@ SERVER* server_alloc(const char *name, const char *address, unsigned short port, return NULL; } - if (snprintf(server->name, sizeof(server->name), "%s", address) > (int)sizeof(server->name)) + if (snprintf(server->address, sizeof(server->address), "%s", address) > (int)sizeof(server->address)) { MXS_WARNING("Truncated server address '%s' to the maximum size of %lu characters.", - address, sizeof(server->name)); + address, sizeof(server->address)); } #if defined(SS_DEBUG) server->server_chk_top = CHK_NUM_SERVER; server->server_chk_tail = CHK_NUM_SERVER; #endif - server->unique_name = my_name; + server->name = my_name; server->protocol = my_protocol; server->authenticator = my_authenticator; server->auth_instance = auth_instance; @@ -150,7 +150,7 @@ SERVER* server_alloc(const char *name, const char *address, unsigned short port, server->triggered_at = 0; // Log all warnings once - memset(&server->log_warning, 1, sizeof(server->log_warning)); + server->warn_ssl_not_enabled = true; spinlock_acquire(&server_spin); server->next = allServers; @@ -194,7 +194,7 @@ server_free(SERVER *tofreeserver) /* Clean up session and free the memory */ MXS_FREE(tofreeserver->protocol); - MXS_FREE(tofreeserver->unique_name); + MXS_FREE(tofreeserver->name); server_parameter_free(tofreeserver->parameters); if (tofreeserver->persistent) @@ -301,7 +301,7 @@ SERVER * server_find_by_unique_name(const char *name) while (server) { - if (server->unique_name && strcmp(server->unique_name, name) == 0) + if (server->name && strcmp(server->name, name) == 0) { break; } @@ -369,7 +369,7 @@ server_find(const char *servname, unsigned short port) while (server) { - if (strcmp(server->name, servname) == 0 && server->port == port) + if (strcmp(server->address, servname) == 0 && server->port == port) { break; } @@ -390,7 +390,7 @@ void printServer(const SERVER *server) { printf("Server %p\n", server); - printf("\tServer: %s\n", server->name); + printf("\tServer: %s\n", server->address); printf("\tProtocol: %s\n", server->protocol); printf("\tPort: %d\n", server->port); printf("\tTotal connections: %d\n", server->stats.n_connections); @@ -502,8 +502,8 @@ dprintServer(DCB *dcb, const SERVER *server) return; } - dcb_printf(dcb, "Server %p (%s)\n", server, server->unique_name); - dcb_printf(dcb, "\tServer: %s\n", server->name); + dcb_printf(dcb, "Server %p (%s)\n", server, server->name); + dcb_printf(dcb, "\tServer: %s\n", server->address); char* stat = server_status(server); dcb_printf(dcb, "\tStatus: %s\n", stat); MXS_FREE(stat); @@ -651,7 +651,7 @@ dListServers(DCB *dcb) { char *stat = server_status(server); dcb_printf(dcb, "%-18s | %-15s | %5d | %11d | %s\n", - server->unique_name, server->name, + server->name, server->address, server->port, server->stats.n_current, stat); MXS_FREE(stat); @@ -814,14 +814,14 @@ server_add_mon_user(SERVER *server, const char *user, const char *passwd) snprintf(server->monuser, sizeof(server->monuser), "%s", user) > (int)sizeof(server->monuser)) { MXS_WARNING("Truncated monitor user for server '%s', maximum username " - "length is %lu characters.", server->unique_name, sizeof(server->monuser)); + "length is %lu characters.", server->name, sizeof(server->monuser)); } if (passwd != server->monpw && snprintf(server->monpw, sizeof(server->monpw), "%s", passwd) > (int)sizeof(server->monpw)) { MXS_WARNING("Truncated monitor password for server '%s', maximum password " - "length is %lu characters.", server->unique_name, sizeof(server->monpw)); + "length is %lu characters.", server->name, sizeof(server->monpw)); } } @@ -976,8 +976,8 @@ serverRowCallback(RESULTSET *set, void *data) if (SERVER_IS_ACTIVE(server)) { row = resultset_make_row(set); - resultset_row_set(row, 0, server->unique_name); - resultset_row_set(row, 1, server->name); + resultset_row_set(row, 0, server->name); + resultset_row_set(row, 1, server->address); sprintf(buf, "%d", server->port); resultset_row_set(row, 2, buf); sprintf(buf, "%d", server->stats.n_current); @@ -1033,7 +1033,7 @@ server_update_address(SERVER *server, const char *address) spinlock_acquire(&server_spin); if (server && address) { - strcpy(server->name, address); + strcpy(server->address, address); } spinlock_release(&server_spin); } @@ -1161,15 +1161,15 @@ static bool create_server_config(const SERVER *server, const char *filename) if (file == -1) { MXS_ERROR("Failed to open file '%s' when serializing server '%s': %d, %s", - filename, server->unique_name, errno, mxs_strerror(errno)); + filename, server->name, errno, mxs_strerror(errno)); return false; } // TODO: Check for return values on all of the dprintf calls - dprintf(file, "[%s]\n", server->unique_name); + dprintf(file, "[%s]\n", server->name); dprintf(file, "%s=server\n", CN_TYPE); dprintf(file, "%s=%s\n", CN_PROTOCOL, server->protocol); - dprintf(file, "%s=%s\n", CN_ADDRESS, server->name); + dprintf(file, "%s=%s\n", CN_ADDRESS, server->address); dprintf(file, "%s=%u\n", CN_PORT, server->port); dprintf(file, "%s=%s\n", CN_AUTHENTICATOR, server->authenticator); @@ -1222,7 +1222,7 @@ bool server_serialize(const SERVER *server) bool rval = false; char filename[PATH_MAX]; snprintf(filename, sizeof(filename), "%s/%s.cnf.tmp", get_config_persistdir(), - server->unique_name); + server->name); if (unlink(filename) == -1 && errno != ENOENT) { @@ -1261,7 +1261,7 @@ SERVER* server_repurpose_destroyed(const char *name, const char *protocol, while (server) { CHK_SERVER(server); - if (strcmp(server->unique_name, name) == 0 && + if (strcmp(server->name, name) == 0 && strcmp(server->protocol, protocol) == 0 && strcmp(server->authenticator, authenticator) == 0) { @@ -1269,7 +1269,7 @@ SERVER* server_repurpose_destroyed(const char *name, const char *protocol, (auth_options && server->auth_options && strcmp(server->auth_options, auth_options) == 0)) { - snprintf(server->name, sizeof(server->name), "%s", address); + snprintf(server->address, sizeof(server->address), "%s", address); server->port = atoi(port); server->is_active = true; break; @@ -1345,10 +1345,10 @@ bool server_is_mxs_service(const SERVER *server) bool rval = false; /** Do a coarse check for local server pointing to a MaxScale service */ - if (strcmp(server->name, "127.0.0.1") == 0 || - strcmp(server->name, "::1") == 0 || - strcmp(server->name, "localhost") == 0 || - strcmp(server->name, "localhost.localdomain") == 0) + if (strcmp(server->address, "127.0.0.1") == 0 || + strcmp(server->address, "::1") == 0 || + strcmp(server->address, "localhost") == 0 || + strcmp(server->address, "localhost.localdomain") == 0) { if (service_port_is_used(server->port)) { @@ -1367,7 +1367,7 @@ static json_t* server_json_attributes(const SERVER* server) /** Store server parameters in attributes */ json_t* params = json_object(); - json_object_set_new(params, CN_ADDRESS, json_string(server->name)); + json_object_set_new(params, CN_ADDRESS, json_string(server->address)); json_object_set_new(params, CN_PORT, json_integer(server->port)); json_object_set_new(params, CN_PROTOCOL, json_string(server->protocol)); @@ -1470,7 +1470,7 @@ static json_t* server_to_json_data(const SERVER* server, const char* host) json_t* rval = json_object(); /** Add resource identifiers */ - json_object_set_new(rval, CN_ID, json_string(server->unique_name)); + json_object_set_new(rval, CN_ID, json_string(server->name)); json_object_set_new(rval, CN_TYPE, json_string(CN_SERVERS)); /** Relationships */ @@ -1491,7 +1491,7 @@ static json_t* server_to_json_data(const SERVER* server, const char* host) json_object_set_new(rval, CN_RELATIONSHIPS, rel); /** Attributes */ json_object_set_new(rval, CN_ATTRIBUTES, server_json_attributes(server)); - json_object_set_new(rval, CN_LINKS, mxs_json_self_link(host, CN_SERVERS, server->unique_name)); + json_object_set_new(rval, CN_LINKS, mxs_json_self_link(host, CN_SERVERS, server->name)); return rval; } @@ -1499,7 +1499,7 @@ static json_t* server_to_json_data(const SERVER* server, const char* host) json_t* server_to_json(const SERVER* server, const char* host) { string self = MXS_JSON_API_SERVERS; - self += server->unique_name; + self += server->name; return mxs_json_resource(host, self.c_str(), server_to_json_data(server, host)); } diff --git a/server/core/service.cc b/server/core/service.cc index 98ca5c0a9..d7c6c777b 100644 --- a/server/core/service.cc +++ b/server/core/service.cc @@ -1403,7 +1403,7 @@ printService(SERVICE *service) printf("\tBackend databases\n"); while (ptr) { - printf("\t\t[%s]:%d Protocol: %s\n", ptr->server->name, ptr->server->port, ptr->server->protocol); + printf("\t\t[%s]:%d Protocol: %s\n", ptr->server->address, ptr->server->port, ptr->server->protocol); ptr = ptr->next; } if (service->n_filters) @@ -1517,8 +1517,8 @@ void dprintService(DCB *dcb, SERVICE *service) if (SERVER_REF_IS_ACTIVE(server)) { dcb_printf(dcb, "\t\t[%s]:%d Protocol: %s Name: %s\n", - server->server->name, server->server->port, - server->server->protocol, server->server->unique_name); + server->server->address, server->server->port, + server->server->protocol, server->server->name); } server = server->next; } @@ -1570,11 +1570,11 @@ dListServices(DCB *dcb) { if (first) { - dcb_printf(dcb, "%s", server_ref->server->unique_name); + dcb_printf(dcb, "%s", server_ref->server->name); } else { - dcb_printf(dcb, ", %s", server_ref->server->unique_name); + dcb_printf(dcb, ", %s", server_ref->server->name); } first = false; } @@ -2291,14 +2291,14 @@ static void service_calculate_weights(SERVICE *service) " of %d for service '%s'. No queries will be " "routed to this server as long as a server with" " positive weight is available.", - weightby, wght, server->server->unique_name, + weightby, wght, server->server->name, total, service->name); } else if (perc < 0) { MXS_ERROR("Weighting parameter '%s' for server '%s' is too large, " "maximum value is %d. No weighting will be used for this " - "server.", weightby, server->server->unique_name, + "server.", weightby, server->server->name, INT_MAX / SERVICE_BASE_SERVER_WEIGHT); perc = SERVICE_BASE_SERVER_WEIGHT; } @@ -2307,7 +2307,7 @@ static void service_calculate_weights(SERVICE *service) else { MXS_WARNING("Server '%s' has no parameter '%s' used for weighting" - " for service '%s'.", server->server->unique_name, + " for service '%s'.", server->server->name, weightby, service->name); } } @@ -2408,7 +2408,7 @@ static bool create_service_config(const SERVICE *service, const char *filename) { if (SERVER_REF_IS_ACTIVE(db)) { - dprintf(file, "%s%s", sep, db->server->unique_name); + dprintf(file, "%s%s", sep, db->server->name); sep = ","; } } @@ -2708,7 +2708,7 @@ json_t* service_relationships(const SERVICE* service, const char* host) { if (SERVER_REF_IS_ACTIVE(ref)) { - mxs_json_add_relation(servers, ref->server->unique_name, CN_SERVERS); + mxs_json_add_relation(servers, ref->server->name, CN_SERVERS); } } diff --git a/server/core/test/test_local_address.cc b/server/core/test/test_local_address.cc index b3d03a125..5b24c1317 100644 --- a/server/core/test/test_local_address.cc +++ b/server/core/test/test_local_address.cc @@ -81,7 +81,7 @@ int test(bool success, const char* zHost, const char* zUser, const char* zPasswo SERVER server; memset(&server, 0, sizeof(server)); - strcpy(server.name, zHost); + strcpy(server.address, zHost); server.port = 3306; MYSQL* pMysql = mysql_init(NULL); diff --git a/server/core/test/test_server.cc b/server/core/test/test_server.cc index 4a49df488..24290a143 100644 --- a/server/core/test/test_server.cc +++ b/server/core/test/test_server.cc @@ -123,8 +123,8 @@ bool test_load_config(const char *input, SERVER *server) CONFIG_CONTEXT *obj = ccontext.next; MXS_CONFIG_PARAMETER *param = obj->parameters; - TEST(strcmp(obj->object, server->unique_name) == 0, "Server names differ"); - TEST(strcmp(server->name, config_get_param(param, "address")->value) == 0, "Server addresses differ"); + TEST(strcmp(obj->object, server->name) == 0, "Server names differ"); + TEST(strcmp(server->address, config_get_param(param, "address")->value) == 0, "Server addresses differ"); TEST(strcmp(server->protocol, config_get_param(param, "protocol")->value) == 0, "Server protocols differ"); TEST(strcmp(server->authenticator, config_get_param(param, "authenticator")->value) == 0, "Server authenticators differ"); diff --git a/server/modules/authenticator/GSSAPI/GSSAPIAuth/gssapi_auth.c b/server/modules/authenticator/GSSAPI/GSSAPIAuth/gssapi_auth.c index 1ffcce7aa..2fb3f9a3a 100644 --- a/server/modules/authenticator/GSSAPI/GSSAPIAuth/gssapi_auth.c +++ b/server/modules/authenticator/GSSAPI/GSSAPIAuth/gssapi_auth.c @@ -622,7 +622,7 @@ int gssapi_auth_load_users(SERV_LISTENER *listener) if (mxs_mysql_query(mysql, gssapi_users_query)) { MXS_ERROR("Failed to query server '%s' for GSSAPI users: %s", - servers->server->unique_name, mysql_error(mysql)); + servers->server->name, mysql_error(mysql)); } else { diff --git a/server/modules/authenticator/GSSAPI/GSSAPIBackendAuth/gssapi_backend_auth.c b/server/modules/authenticator/GSSAPI/GSSAPIBackendAuth/gssapi_backend_auth.c index bce684ba7..a2340277c 100644 --- a/server/modules/authenticator/GSSAPI/GSSAPIBackendAuth/gssapi_backend_auth.c +++ b/server/modules/authenticator/GSSAPI/GSSAPIBackendAuth/gssapi_backend_auth.c @@ -150,7 +150,7 @@ bool extract_principal_name(DCB *dcb, GWBUF *buffer) * it's possible that the server authenticated us as the anonymous user. This * means that the server is not secure. */ MXS_ERROR("Server '%s' returned an unexpected authentication response.%s", - dcb->server->unique_name, databuf[0] == MYSQL_REPLY_OK ? + dcb->server->name, databuf[0] == MYSQL_REPLY_OK ? " Authentication was complete before it even started, " "anonymous users might not be disabled." : ""); return false; diff --git a/server/modules/authenticator/MySQLAuth/dbusers.c b/server/modules/authenticator/MySQLAuth/dbusers.c index 8b79c7b3d..66288f887 100644 --- a/server/modules/authenticator/MySQLAuth/dbusers.c +++ b/server/modules/authenticator/MySQLAuth/dbusers.c @@ -519,7 +519,7 @@ static bool check_server_permissions(SERVICE *service, SERVER* server, MXS_ERROR("[%s] Failed to connect to server '%s' ([%s]:%d) when" " checking authentication user credentials and permissions: %d %s", - service->name, server->unique_name, server->name, server->port, + service->name, server->name, server->address, server->port, my_errno, mysql_error(mysql)); mysql_close(mysql); @@ -869,7 +869,7 @@ static int get_users(SERV_LISTENER *listener, bool skip_local) { MXS_ERROR("Failure loading users data from backend " "[%s:%i] for service [%s]. MySQL error %i, %s", - server->server->name, server->server->port, + server->server->address, server->server->port, service->name, mysql_errno(con), mysql_error(con)); mysql_close(con); } diff --git a/server/modules/authenticator/PAM/PAMAuth/pam_instance.cc b/server/modules/authenticator/PAM/PAMAuth/pam_instance.cc index 9a41fe013..b119583ca 100644 --- a/server/modules/authenticator/PAM/PAMAuth/pam_instance.cc +++ b/server/modules/authenticator/PAM/PAMAuth/pam_instance.cc @@ -198,7 +198,7 @@ int PamInstance::load_users(SERVICE* service) if (mysql_query(mysql, PAM_USERS_QUERY)) { MXS_ERROR("Failed to query server '%s' for PAM users: '%s'.", - servers->server->unique_name, mysql_error(mysql)); + servers->server->name, mysql_error(mysql)); } else { @@ -305,7 +305,7 @@ bool PamInstance::query_anon_proxy_user(SERVER* server, MYSQL* conn) if (mysql_query(conn, ANON_USER_QUERY)) { MXS_ERROR("Failed to query server '%s' for the anonymous PAM user: '%s'.", - server->unique_name, mysql_error(conn)); + server->name, mysql_error(conn)); success = false; } else @@ -331,7 +331,7 @@ bool PamInstance::query_anon_proxy_user(SERVER* server, MYSQL* conn) if (mysql_query(conn, ANON_GRANT_QUERY)) { MXS_ERROR("Failed to query server '%s' for the grants of the anonymous PAM user: '%s'.", - server->unique_name, mysql_error(conn)); + server->name, mysql_error(conn)); success = false; } else diff --git a/server/modules/authenticator/PAM/PAMBackendAuth/pam_backend_session.cc b/server/modules/authenticator/PAM/PAMBackendAuth/pam_backend_session.cc index a1128b08c..3463b9515 100644 --- a/server/modules/authenticator/PAM/PAMBackendAuth/pam_backend_session.cc +++ b/server/modules/authenticator/PAM/PAMBackendAuth/pam_backend_session.cc @@ -48,7 +48,7 @@ bool check_auth_switch_request(DCB *dcb, GWBUF *buffer) bool was_ok_packet = copied > MYSQL_HEADER_LEN && data[MYSQL_HEADER_LEN + 1] == MYSQL_REPLY_OK; MXS_ERROR("Server '%s' returned an unexpected authentication response.%s", - dcb->server->unique_name, was_ok_packet ? + dcb->server->name, was_ok_packet ? " Authentication was complete before it even started, " "anonymous users might not be disabled." : ""); return false; @@ -121,7 +121,7 @@ bool PamBackendSession::extract(DCB *dcb, GWBUF *buffer) if (mxs_mysql_is_ok_packet(buffer)) { MXS_DEBUG("pam_backend_auth_extract received ok packet from '%s'.", - dcb->server->unique_name); + dcb->server->name); m_state = PAM_AUTH_OK; rval = true; } @@ -135,7 +135,7 @@ bool PamBackendSession::extract(DCB *dcb, GWBUF *buffer) if (!rval) { MXS_DEBUG("pam_backend_auth_extract to backend '%s' failed for user '%s'.", - dcb->server->unique_name, dcb->user); + dcb->server->name, dcb->user); } return rval; } @@ -147,7 +147,7 @@ int PamBackendSession::authenticate(DCB *dcb) if (m_state == PAM_AUTH_INIT) { MXS_DEBUG("pam_backend_auth_authenticate sending password to '%s'.", - dcb->server->unique_name); + dcb->server->name); if (send_client_password(dcb)) { rval = MXS_AUTH_INCOMPLETE; diff --git a/server/modules/filter/tpmfilter/tpmfilter.c b/server/modules/filter/tpmfilter/tpmfilter.c index c54d02eea..5bfa61113 100644 --- a/server/modules/filter/tpmfilter/tpmfilter.c +++ b/server/modules/filter/tpmfilter/tpmfilter.c @@ -578,7 +578,7 @@ clientReply(MXS_FILTER *instance, MXS_FILTER_SESSION *session, GWBUF *reply) fprintf(my_instance->fp, "%ld%s%s%s%s%s%ld%s%s%s%s\n", timestamp, my_instance->delimiter, - reply->server->unique_name, + reply->server->name, my_instance->delimiter, my_session->userName, my_instance->delimiter, diff --git a/server/modules/monitor/galeramon/galeramon.c b/server/modules/monitor/galeramon/galeramon.c index a03e4f28a..504e9eedd 100644 --- a/server/modules/monitor/galeramon/galeramon.c +++ b/server/modules/monitor/galeramon/galeramon.c @@ -387,7 +387,7 @@ monitorDatabase(MXS_MONITOR *mon, MXS_MONITORED_SERVER *database) if (warn_erange_on_local_index) { MXS_WARNING("Invalid 'wsrep_local_index' on server '%s': %s", - database->server->unique_name, row[1]); + database->server->name, row[1]); warn_erange_on_local_index = false; } local_index = -1; @@ -431,7 +431,7 @@ monitorDatabase(MXS_MONITOR *mon, MXS_MONITORED_SERVER *database) if (row[1] == NULL || !strlen(row[1])) { MXS_DEBUG("Node %s is not running Galera Cluster", - database->server->unique_name); + database->server->name); info.cluster_uuid = NULL; info.joined = 0; } @@ -449,11 +449,11 @@ monitorDatabase(MXS_MONITOR *mon, MXS_MONITORED_SERVER *database) /* Galera Cluster vars fetch */ HASHTABLE *table = handle->galera_nodes_info; - GALERA_NODE_INFO *node = hashtable_fetch(table, database->server->unique_name); + GALERA_NODE_INFO *node = hashtable_fetch(table, database->server->name); if (node) { MXS_DEBUG("Node %s is present in galera_nodes_info, updtating info", - database->server->unique_name); + database->server->name); MXS_FREE(node->cluster_uuid); /* Update node data */ @@ -461,17 +461,17 @@ monitorDatabase(MXS_MONITOR *mon, MXS_MONITORED_SERVER *database) } else { - if (hashtable_add(table, database->server->unique_name, &info)) + if (hashtable_add(table, database->server->name, &info)) { MXS_DEBUG("Added %s to galera_nodes_info", - database->server->unique_name); + database->server->name); } /* Free the info.cluster_uuid as it's been added to the table */ MXS_FREE(info.cluster_uuid); } MXS_DEBUG("Server %s: local_state %d, local_index %d, UUID %s, size %d, possible member %d", - database->server->unique_name, + database->server->name, info.local_state, info.local_index, info.cluster_uuid ? info.cluster_uuid : "_none_", @@ -558,7 +558,7 @@ monitorMain(void *arg) if (mon_status_changed(ptr)) { MXS_DEBUG("Backend server [%s]:%d state : %s", - ptr->server->name, + ptr->server->address, ptr->server->port, STRSRVSTATUS(ptr->server)); } @@ -890,7 +890,7 @@ static void update_sst_donor_nodes(MXS_MONITOR *mon, int is_cluster) while ((row = mysql_fetch_row(result))) { MXS_DEBUG("wsrep_node_name name for %s is [%s]", - ptr->server->unique_name, + ptr->server->name, row[1]); strncat(donor_list, row[1], DONOR_NODE_NAME_MAX_LEN); @@ -924,7 +924,7 @@ static void update_sst_donor_nodes(MXS_MONITOR *mon, int is_cluster) if (mxs_mysql_query(ptr->con, donor_list) == 0) { MXS_DEBUG("SET GLOBAL rep_sst_donor OK in node %s", - ptr->server->unique_name); + ptr->server->name); } else { @@ -992,20 +992,20 @@ static int compare_node_priority (const void *a, const void *b) if (!pri_a && pri_b) { MXS_DEBUG("Server %s has no given priority. It will be at the beginning of the list", - s_a->server->unique_name); + s_a->server->name); return -(INT_MAX - 1); } else if (pri_a && !pri_b) { MXS_DEBUG("Server %s has no given priority. It will be at the beginning of the list", - s_b->server->unique_name); + s_b->server->name); return INT_MAX - 1; } else if (!pri_a && !pri_b) { MXS_DEBUG("Servers %s and %s have no given priority. They be at the beginning of the list", - s_a->server->unique_name, - s_b->server->unique_name); + s_a->server->name, + s_b->server->name); return 0; } @@ -1156,7 +1156,7 @@ static void set_galera_cluster(MXS_MONITOR *mon) } MXS_DEBUG("Candidate cluster member %s: UUID %s, joined nodes %d", - value->node->unique_name, + value->node->name, value->cluster_uuid, value->cluster_size); } @@ -1216,7 +1216,7 @@ static void set_cluster_members(MXS_MONITOR *mon) while (ptr) { /* Fetch cluster info for this server, if any */ - value = hashtable_fetch(handle->galera_nodes_info, ptr->server->unique_name); + value = hashtable_fetch(handle->galera_nodes_info, ptr->server->name); if (value && handle->cluster_info.c_uuid) { diff --git a/server/modules/monitor/mariadbmon/cluster_discovery.cc b/server/modules/monitor/mariadbmon/cluster_discovery.cc index 7134832f0..d4513f585 100644 --- a/server/modules/monitor/mariadbmon/cluster_discovery.cc +++ b/server/modules/monitor/mariadbmon/cluster_discovery.cc @@ -658,7 +658,7 @@ static bool check_replicate_ignore_table(MXS_MONITORED_SERVER* database) { MXS_WARNING("'replicate_ignore_table' is " "defined on server '%s' and '%s' was found in it. ", - database->server->unique_name, HB_TABLE_NAME); + database->server->name, HB_TABLE_NAME); rval = false; } } @@ -669,7 +669,7 @@ static bool check_replicate_ignore_table(MXS_MONITORED_SERVER* database) { MXS_ERROR("Failed to query server %s for " "'replicate_ignore_table': %s", - database->server->unique_name, + database->server->name, mysql_error(database->con)); rval = false; } @@ -702,7 +702,7 @@ static bool check_replicate_do_table(MXS_MONITORED_SERVER* database) { MXS_WARNING("'replicate_do_table' is " "defined on server '%s' and '%s' was not found in it. ", - database->server->unique_name, HB_TABLE_NAME); + database->server->name, HB_TABLE_NAME); rval = false; } } @@ -712,7 +712,7 @@ static bool check_replicate_do_table(MXS_MONITORED_SERVER* database) { MXS_ERROR("Failed to query server %s for " "'replicate_do_table': %s", - database->server->unique_name, + database->server->name, mysql_error(database->con)); rval = false; } @@ -747,7 +747,7 @@ static bool check_replicate_wild_do_table(MXS_MONITORED_SERVER* database) { MXS_WARNING("'replicate_wild_do_table' is " "defined on server '%s' and '%s' does not match it. ", - database->server->unique_name, + database->server->name, HB_TABLE_NAME); rval = false; } @@ -759,7 +759,7 @@ static bool check_replicate_wild_do_table(MXS_MONITORED_SERVER* database) { MXS_ERROR("Failed to query server %s for " "'replicate_wild_do_table': %s", - database->server->unique_name, + database->server->name, mysql_error(database->con)); rval = false; } @@ -794,7 +794,7 @@ static bool check_replicate_wild_ignore_table(MXS_MONITORED_SERVER* database) { MXS_WARNING("'replicate_wild_ignore_table' is " "defined on server '%s' and '%s' matches it. ", - database->server->unique_name, + database->server->name, HB_TABLE_NAME); rval = false; } @@ -806,7 +806,7 @@ static bool check_replicate_wild_ignore_table(MXS_MONITORED_SERVER* database) { MXS_ERROR("Failed to query server %s for " "'replicate_wild_do_table': %s", - database->server->unique_name, + database->server->name, mysql_error(database->con)); rval = false; } @@ -912,7 +912,7 @@ void MariaDBMonitor::monitor_one_server(MariaDBServer& server) { /** Master failed, can't recover */ MXS_NOTICE("Server [%s]:%d lost the master status.", - ptr->server->name, + ptr->server->address, ptr->server->port); } } @@ -921,12 +921,12 @@ void MariaDBMonitor::monitor_one_server(MariaDBServer& server) { #if defined(SS_DEBUG) MXS_INFO("Backend server [%s]:%d state : %s", - ptr->server->name, + ptr->server->address, ptr->server->port, STRSRVSTATUS(ptr->server)); #else MXS_DEBUG("Backend server [%s]:%d state : %s", - ptr->server->name, + ptr->server->address, ptr->server->port, STRSRVSTATUS(ptr->server)); #endif @@ -1029,7 +1029,7 @@ void MariaDBMonitor::update_server_states(MariaDBServer& db_server, MariaDBServe * the stale master as a real master if it is the last running server. */ if (m_detect_stale_master && root_master && !m_detect_multimaster && - (strcmp(ptr->server->name, root_master->server->name) == 0 && + (strcmp(ptr->server->address, root_master->server->address) == 0 && ptr->server->port == root_master->server->port) && (ptr->server->status & SERVER_MASTER) && !(ptr->pending_status & SERVER_MASTER) && @@ -1049,7 +1049,7 @@ void MariaDBMonitor::update_server_states(MariaDBServer& db_server, MariaDBServe MXS_WARNING("All slave servers under the current master " "server have been lost. Assigning Stale Master" " status to the old master server '%s' (%s:%i).", - ptr->server->unique_name, ptr->server->name, + ptr->server->name, ptr->server->address, ptr->server->port); } } diff --git a/server/modules/monitor/mariadbmon/cluster_manipulation.cc b/server/modules/monitor/mariadbmon/cluster_manipulation.cc index 701bda7ed..9bf363fa4 100644 --- a/server/modules/monitor/mariadbmon/cluster_manipulation.cc +++ b/server/modules/monitor/mariadbmon/cluster_manipulation.cc @@ -125,7 +125,7 @@ bool MariaDBMonitor::manual_rejoin(SERVER* rejoin_server, json_t** output) bool rval = false; if (cluster_can_be_joined()) { - const char* rejoin_serv_name = rejoin_server->unique_name; + const char* rejoin_serv_name = rejoin_server->name; MXS_MONITORED_SERVER* mon_slave_cand = mon_get_monitored_server(m_monitor_base, rejoin_server); if (mon_slave_cand) { @@ -222,7 +222,7 @@ int MariaDBMonitor::redirect_slaves(MariaDBServer* new_master, const ServerArray { ss_dassert(redirected_slaves != NULL); MXS_NOTICE("Redirecting slaves to new master."); - string change_cmd = generate_change_master_cmd(new_master->m_server_base->server->name, + string change_cmd = generate_change_master_cmd(new_master->m_server_base->server->address, new_master->m_server_base->server->port); int successes = 0; for (auto iter = slaves.begin(); iter != slaves.end(); iter++) @@ -277,7 +277,7 @@ bool MariaDBMonitor::switchover_start_slave(MariaDBServer* old_master, MariaDBSe MYSQL* old_master_con = old_master->m_server_base->con; SERVER* new_master_server = new_master->m_server_base->server; - string change_cmd = generate_change_master_cmd(new_master_server->name, new_master_server->port); + string change_cmd = generate_change_master_cmd(new_master_server->address, new_master_server->port); if (mxs_mysql_query(old_master_con, change_cmd.c_str()) == 0 && mxs_mysql_query(old_master_con, "START SLAVE;") == 0) { @@ -304,11 +304,11 @@ bool MariaDBMonitor::switchover_start_slave(MariaDBServer* old_master, MariaDBSe uint32_t MariaDBMonitor::do_rejoin(const ServerArray& joinable_servers, json_t** output) { SERVER* master_server = m_master->m_server_base->server; - const char* master_name = master_server->unique_name; + const char* master_name = master_server->name; uint32_t servers_joined = 0; if (!joinable_servers.empty()) { - string change_cmd = generate_change_master_cmd(master_server->name, master_server->port); + string change_cmd = generate_change_master_cmd(master_server->address, master_server->port); for (auto iter = joinable_servers.begin(); iter != joinable_servers.end(); iter++) { MariaDBServer* joinable = *iter; @@ -431,7 +431,7 @@ bool MariaDBMonitor::server_is_rejoin_suspect(MariaDBServer* rejoin_cand, json_t // or is disconnected but master host or port is wrong. else if (slave_status->slave_io_running == SlaveStatus::SLAVE_IO_CONNECTING && slave_status->slave_sql_running && - (slave_status->master_host != m_master->m_server_base->server->name || + (slave_status->master_host != m_master->m_server_base->server->address || slave_status->master_port != m_master->m_server_base->server->port)) { is_suspect = true; @@ -1216,12 +1216,12 @@ bool MariaDBMonitor::switchover_check_current(const MXS_MONITORED_SERVER* sugges if (!server_is_master) { PRINT_MXS_JSON_ERROR(error_out, "Server '%s' is not the current master or it's in maintenance.", - suggested_curr_master->server->unique_name); + suggested_curr_master->server->name); } else if (extra_master) { PRINT_MXS_JSON_ERROR(error_out, "Cluster has an additional master server '%s'.", - extra_master->server->unique_name); + extra_master->server->name); } return server_is_master && !extra_master; } @@ -1237,7 +1237,7 @@ bool MariaDBMonitor::switchover_check_current(const MXS_MONITORED_SERVER* sugges bool MariaDBMonitor::switchover_check_new(const MXS_MONITORED_SERVER* monitored_server, json_t** error) { SERVER* server = monitored_server->server; - const char* name = server->unique_name; + const char* name = server->name; bool is_master = SERVER_IS_MASTER(server); bool is_slave = SERVER_IS_SLAVE(server); @@ -1414,7 +1414,7 @@ bool MariaDBMonitor::failover_not_possible() if (info->m_slave_status.size() > 1) { MXS_ERROR("Server '%s' is configured to replicate from multiple " - "masters, failover is not possible.", s->server->unique_name); + "masters, failover is not possible.", s->server->name); rval = true; } } @@ -1508,7 +1508,7 @@ bool MariaDBMonitor::switchover_check(SERVER* new_master, SERVER* current_master if (mon_new_master == NULL) { new_master_ok = false; - PRINT_MXS_JSON_ERROR(error_out, NO_SERVER, new_master->unique_name, m_monitor_base->name); + PRINT_MXS_JSON_ERROR(error_out, NO_SERVER, new_master->name, m_monitor_base->name); } else if (!switchover_check_new(mon_new_master, error_out)) { @@ -1526,7 +1526,7 @@ bool MariaDBMonitor::switchover_check(SERVER* new_master, SERVER* current_master if (mon_curr_master == NULL) { current_master_ok = false; - PRINT_MXS_JSON_ERROR(error_out, NO_SERVER, current_master->unique_name, m_monitor_base->name); + PRINT_MXS_JSON_ERROR(error_out, NO_SERVER, current_master->name, m_monitor_base->name); } else if (!switchover_check_current(mon_curr_master, error_out)) { diff --git a/server/modules/monitor/mariadbmon/mariadbmon.cc b/server/modules/monitor/mariadbmon/mariadbmon.cc index 2107c5ac9..04853eb18 100644 --- a/server/modules/monitor/mariadbmon/mariadbmon.cc +++ b/server/modules/monitor/mariadbmon/mariadbmon.cc @@ -559,14 +559,14 @@ void MariaDBMonitor::log_master_changes(MariaDBServer* root_master_server, int* !(root_master->server->status & SERVER_MAINT)) { MXS_NOTICE("A Master Server is now available: %s:%i", - root_master->server->name, + root_master->server->address, root_master->server->port); } } else { MXS_ERROR("No Master can be determined. Last known was %s:%i", - root_master->server->name, + root_master->server->address, root_master->server->port); } *log_no_master = 1; @@ -744,7 +744,7 @@ void MariaDBMonitor::set_master_heartbeat(MariaDBServer* server) database->server->rlag = 0; MXS_DEBUG("heartbeat table inserted data for %s:%i", - database->server->name, database->server->port); + database->server->address, database->server->port); } } else @@ -753,7 +753,7 @@ void MariaDBMonitor::set_master_heartbeat(MariaDBServer* server) database->server->rlag = 0; MXS_DEBUG("heartbeat table updated for Master %s:%i", - database->server->name, database->server->port); + database->server->address, database->server->port); } } } @@ -827,7 +827,7 @@ void MariaDBMonitor::set_slave_heartbeat(MariaDBServer* server) } MXS_DEBUG("Slave %s:%i has %i seconds lag", - database->server->name, + database->server->address, database->server->port, database->server->rlag); } @@ -848,14 +848,14 @@ void MariaDBMonitor::set_slave_heartbeat(MariaDBServer* server) { MXS_ERROR("error: replication heartbeat: " "master_server_id NOT available for %s:%i", - database->server->name, + database->server->address, database->server->port); } else { MXS_ERROR("error: replication heartbeat: " "failed selecting from hearthbeat table of %s:%i : [%s], %s", - database->server->name, + database->server->address, database->server->port, select_heartbeat_query, mysql_error(database->con)); diff --git a/server/modules/monitor/mariadbmon/mariadbserver.cc b/server/modules/monitor/mariadbmon/mariadbserver.cc index 7b70f5b23..4efac9a6a 100644 --- a/server/modules/monitor/mariadbmon/mariadbserver.cc +++ b/server/modules/monitor/mariadbmon/mariadbserver.cc @@ -395,7 +395,7 @@ bool MariaDBServer::is_down() const const char* MariaDBServer::name() const { - return m_server_base->server->unique_name; + return m_server_base->server->name; } string MariaDBServer::diagnostics(bool multimaster) const diff --git a/server/modules/monitor/mmmon/mmmon.c b/server/modules/monitor/mmmon/mmmon.c index cc4c56a71..de78e851f 100644 --- a/server/modules/monitor/mmmon/mmmon.c +++ b/server/modules/monitor/mmmon/mmmon.c @@ -382,7 +382,7 @@ monitorDatabase(MXS_MONITOR* mon, MXS_MONITORED_SERVER *database) MXS_ERROR("\"SHOW SLAVE STATUS\" " " for versions less than 5.5 does not have master_server_id, " "replication tree cannot be resolved for server %s." - " MySQL Version: %s", database->server->unique_name, server_string); + " MySQL Version: %s", database->server->name, server_string); database->log_version_err = false; } } @@ -561,7 +561,7 @@ monitorMain(void *arg) mon_print_fail_status(ptr)) { MXS_DEBUG("Backend server [%s]:%d state : %s", - ptr->server->name, + ptr->server->address, ptr->server->port, STRSRVSTATUS(ptr->server)); } @@ -591,14 +591,14 @@ monitorMain(void *arg) { /* If "detect_stale_master" option is On, let's use the previus master */ if (detect_stale_master && root_master && - (!strcmp(ptr->server->name, root_master->server->name) && + (!strcmp(ptr->server->address, root_master->server->address) && ptr->server->port == root_master->server->port) && (ptr->server->status & SERVER_MASTER) && !(ptr->pending_status & SERVER_MASTER)) { /* in this case server->status will not be updated from pending_status */ MXS_NOTICE("root server [%s:%i] is no longer Master, let's " "use it again even if it could be a stale master, you have " - "been warned!", ptr->server->name, ptr->server->port); + "been warned!", ptr->server->address, ptr->server->port); /* Set the STALE bit for this server in server struct */ server_set_status_nolock(ptr->server, SERVER_STALE_STATUS); } diff --git a/server/modules/monitor/ndbclustermon/ndbclustermon.c b/server/modules/monitor/ndbclustermon/ndbclustermon.c index b31e995e2..9cc119a66 100644 --- a/server/modules/monitor/ndbclustermon/ndbclustermon.c +++ b/server/modules/monitor/ndbclustermon/ndbclustermon.c @@ -360,7 +360,7 @@ monitorMain(void *arg) SERVER_IS_DOWN(ptr->server)) { MXS_DEBUG("Backend server [%s]:%d state : %s", - ptr->server->name, + ptr->server->address, ptr->server->port, STRSRVSTATUS(ptr->server)); } diff --git a/server/modules/protocol/MySQL/mariadb_client.cc b/server/modules/protocol/MySQL/mariadb_client.cc index fbb029bd1..f0eba4b09 100644 --- a/server/modules/protocol/MySQL/mariadb_client.cc +++ b/server/modules/protocol/MySQL/mariadb_client.cc @@ -292,5 +292,5 @@ LocalClient* LocalClient::create(MXS_SESSION* session, SERVICE* service) LocalClient* LocalClient::create(MXS_SESSION* session, SERVER* server) { - return create(session, server->name, server->port); + return create(session, server->address, server->port); } diff --git a/server/modules/protocol/MySQL/mariadbbackend/mysql_backend.c b/server/modules/protocol/MySQL/mariadbbackend/mysql_backend.c index 5a060e0e1..023a3b6ef 100644 --- a/server/modules/protocol/MySQL/mariadbbackend/mysql_backend.c +++ b/server/modules/protocol/MySQL/mariadbbackend/mysql_backend.c @@ -180,7 +180,7 @@ static int gw_create_backend_connection(DCB *backend_dcb, /*< if succeed, fd > 0, -1 otherwise */ /* TODO: Better if function returned a protocol auth state */ - rv = gw_do_connect_to_backend(server->name, server->port, &fd); + rv = gw_do_connect_to_backend(server->address, server->port, &fd); /*< Assign protocol with backend_dcb */ backend_dcb->protocol = protocol; @@ -194,7 +194,7 @@ static int gw_create_backend_connection(DCB *backend_dcb, MXS_DEBUG("Established " "connection to %s:%i, protocol fd %d client " "fd %d.", - server->name, + server->address, server->port, protocol->fd, session->client_dcb->fd); @@ -214,7 +214,7 @@ static int gw_create_backend_connection(DCB *backend_dcb, protocol->fd = fd; MXS_DEBUG("Connection " "pending to %s:%i, protocol fd %d client fd %d.", - server->name, + server->address, server->port, protocol->fd, session->client_dcb->fd); @@ -311,7 +311,7 @@ static void handle_error_response(DCB *dcb, GWBUF *buffer) bufstr[len - 3] = '\0'; MXS_ERROR("Invalid authentication message from backend '%s'. Error code: %d, " - "Msg : %s", dcb->server->unique_name, errcode, bufstr); + "Msg : %s", dcb->server->name, errcode, bufstr); /** If the error is ER_HOST_IS_BLOCKED put the server into maintenace mode. * This will prevent repeated authentication failures. */ @@ -321,8 +321,8 @@ static void handle_error_response(DCB *dcb, GWBUF *buffer) "to the server blocking connections from MaxScale. " "Run 'mysqladmin -h %s -P %d flush-hosts' on this " "server before taking this server out of maintenance " - "mode.", dcb->server->unique_name, - dcb->server->name, dcb->server->port); + "mode.", dcb->server->name, + dcb->server->address, dcb->server->port); server_set_status(dcb->server, SERVER_MAINT); } @@ -1177,7 +1177,7 @@ static int gw_MySQLWrite_backend(DCB *dcb, GWBUF *queue) { MXS_ERROR("Unable to write to backend '%s' due to " "%s failure. Server in state %s.", - dcb->server->unique_name, + dcb->server->name, backend_protocol->protocol_auth_state == MXS_AUTH_STATE_HANDSHAKE_FAILED ? "handshake" : "authentication", STRSRVSTATUS(dcb->server)); @@ -2083,7 +2083,7 @@ static void gw_send_proxy_protocol_header(DCB *backend_dcb) if (headerbuf) { MXS_INFO("Sending proxy-protocol header '%s' to backend %s.", proxy_header, - backend_dcb->server->unique_name); + backend_dcb->server->name); if (!dcb_write(backend_dcb, headerbuf)) { gwbuf_free(headerbuf); diff --git a/server/modules/routing/binlogrouter/blr.c b/server/modules/routing/binlogrouter/blr.c index 987bc7ca4..7abce8c96 100644 --- a/server/modules/routing/binlogrouter/blr.c +++ b/server/modules/routing/binlogrouter/blr.c @@ -1335,10 +1335,10 @@ closeSession(MXS_ROUTER *instance, MXS_ROUTER_SESSION *router_session) */ MXS_NOTICE("%s: Master %s disconnected after %ld seconds. " "%lu events read,", - router->service->name, router->service->dbref->server->name, + router->service->name, router->service->dbref->server->address, time(0) - router->connect_time, router->stats.n_binlogs_ses); MXS_ERROR("Binlog router close session with master server %s", - router->service->dbref->server->unique_name); + router->service->dbref->server->name); blr_master_reconnect(router); return; } @@ -2360,7 +2360,7 @@ errorReply(MXS_ROUTER *instance, "%s while connecting to master [%s]:%d. Replication is stopped.", router->service->name, router->m_errno, router->m_errmsg, blrm_states[BLRM_TIMESTAMP], msg, - router->service->dbref->server->name, + router->service->dbref->server->address, router->service->dbref->server->port); } } @@ -2404,7 +2404,7 @@ errorReply(MXS_ROUTER *instance, "%sattempting reconnect to master [%s]:%d", router->service->name, mysql_errno, errmsg, blrm_states[router->master_state], msg, - router->service->dbref->server->name, + router->service->dbref->server->address, router->service->dbref->server->port); } else @@ -2414,7 +2414,7 @@ errorReply(MXS_ROUTER *instance, "%snot retrying a new connection to master [%s]:%d", router->service->name, blrm_states[router->master_state], msg, - router->service->dbref->server->name, + router->service->dbref->server->address, router->service->dbref->server->port); } @@ -2440,7 +2440,7 @@ errorReply(MXS_ROUTER *instance, MXS_NOTICE("%s: Master %s disconnected after %ld seconds. " "%lu events read.", - router->service->name, router->service->dbref->server->name, + router->service->name, router->service->dbref->server->address, time(0) - router->connect_time, router->stats.n_binlogs_ses); blr_master_reconnect(router); } @@ -3105,7 +3105,7 @@ destroyInstance(MXS_ROUTER *instance) MXS_INFO("%s is being stopped by MaxScale shudown. Disconnecting from master [%s]:%d, " "read up to log %s, pos %lu, transaction safe pos %lu", inst->service->name, - inst->service->dbref->server->name, + inst->service->dbref->server->address, inst->service->dbref->server->port, inst->binlog_name, inst->current_pos, inst->binlog_position); diff --git a/server/modules/routing/binlogrouter/blr_file.c b/server/modules/routing/binlogrouter/blr_file.c index 81cc564c2..41625cd22 100644 --- a/server/modules/routing/binlogrouter/blr_file.c +++ b/server/modules/routing/binlogrouter/blr_file.c @@ -3152,7 +3152,7 @@ blr_file_write_master_config(ROUTER_INSTANCE *router, char *error) fprintf(config_file, "[%s]\n", section); /* write ini file key=value */ - fprintf(config_file, "master_host=%s\n", router->service->dbref->server->name); + fprintf(config_file, "master_host=%s\n", router->service->dbref->server->address); fprintf(config_file, "master_port=%d\n", router->service->dbref->server->port); fprintf(config_file, "master_user=%s\n", router->user); fprintf(config_file, "master_password=%s\n", router->password); diff --git a/server/modules/routing/binlogrouter/blr_master.c b/server/modules/routing/binlogrouter/blr_master.c index e9e13de31..82196a7a5 100644 --- a/server/modules/routing/binlogrouter/blr_master.c +++ b/server/modules/routing/binlogrouter/blr_master.c @@ -196,7 +196,7 @@ static void blr_start_master(void* data) "reached %d maximum number of retries. " "Replication is stopped.", router->service->name, - router->service->dbref->server->unique_name, + router->service->dbref->server->name, router->retry_limit); return; } @@ -261,17 +261,17 @@ static void blr_start_master(void* data) MXS_ERROR("%s: failure while connecting to master server '%s', " "retrying in %d seconds", router->service->name, - router->service->dbref->server->unique_name, + router->service->dbref->server->name, connect_retry); return; } - router->master->remote = MXS_STRDUP_A(router->service->dbref->server->name); + router->master->remote = MXS_STRDUP_A(router->service->dbref->server->address); router->master->service = router->service; MXS_NOTICE("%s: attempting to connect to master" " server [%s]:%d, binlog='%s', pos=%lu%s%s", router->service->name, - router->service->dbref->server->name, + router->service->dbref->server->address, router->service->dbref->server->port, router->binlog_name, router->current_pos, @@ -408,7 +408,7 @@ blr_restart_master(ROUTER_INSTANCE *router) "reached %d maximum number of retries. " "Replication is stopped.", router->service->name, - router->service->dbref->server->unique_name, + router->service->dbref->server->name, router->retry_limit); return; } @@ -434,7 +434,7 @@ blr_restart_master(ROUTER_INSTANCE *router) MXS_ERROR("%s: failed to connect to master server '%s', " "retrying in %d seconds", router->service->name, - router->service->dbref->server->unique_name, + router->service->dbref->server->name, connect_retry); } } @@ -1425,7 +1425,7 @@ blr_handle_binlog_record(ROUTER_INSTANCE *router, GWBUF *pkt) "be sent to the master server [%s]:%d", router->service->name, router->binlog_name, router->current_pos, - router->service->dbref->server->name, + router->service->dbref->server->address, router->service->dbref->server->port); /* Send Semi-Sync ACK packet to master server */ @@ -1993,7 +1993,7 @@ blr_check_heartbeat(ROUTER_INSTANCE *router) MXS_ERROR("No event received from master [%s]:%d in heartbeat period (%lu seconds), " "last event (%s %d) received %lu seconds ago. Assuming connection is dead " "and reconnecting.", - router->service->dbref->server->name, + router->service->dbref->server->address, router->service->dbref->server->port, router->heartbeat, event_desc != NULL ? event_desc : "unknown", @@ -2818,7 +2818,7 @@ static void blr_register_getsemisync(ROUTER_INSTANCE *router, GWBUF *buf) { MXS_NOTICE("%s: checking Semi-Sync replication capability for master server [%s]:%d", router->service->name, - router->service->dbref->server->name, + router->service->dbref->server->address, router->service->dbref->server->port); // New registration message @@ -2853,7 +2853,7 @@ static bool blr_register_setsemisync(ROUTER_INSTANCE *router, GWBUF *buf) /* not installed */ MXS_NOTICE("%s: master server [%s]:%d doesn't have semi_sync capability", router->service->name, - router->service->dbref->server->name, + router->service->dbref->server->address, router->service->dbref->server->port); /* Continue without semisync */ @@ -2869,7 +2869,7 @@ static bool blr_register_setsemisync(ROUTER_INSTANCE *router, GWBUF *buf) MXS_NOTICE("%s: master server [%s]:%d doesn't have semi_sync" " enabled right now, Request Semi-Sync Replication anyway", router->service->name, - router->service->dbref->server->name, + router->service->dbref->server->address, router->service->dbref->server->port); } else @@ -2878,7 +2878,7 @@ static bool blr_register_setsemisync(ROUTER_INSTANCE *router, GWBUF *buf) MXS_NOTICE("%s: master server [%s]:%d has semi_sync enabled," " Requesting Semi-Sync Replication", router->service->name, - router->service->dbref->server->name, + router->service->dbref->server->address, router->service->dbref->server->port); } @@ -3264,7 +3264,7 @@ static void blr_start_master_registration(ROUTER_INSTANCE *router, GWBUF *buf) "position %lu from master server [%s]:%d", router->service->name, router->binlog_name, router->current_pos, - router->service->dbref->server->name, + router->service->dbref->server->address, router->service->dbref->server->port); } diff --git a/server/modules/routing/binlogrouter/blr_slave.c b/server/modules/routing/binlogrouter/blr_slave.c index a6b4a05b9..7cc5c2126 100644 --- a/server/modules/routing/binlogrouter/blr_slave.c +++ b/server/modules/routing/binlogrouter/blr_slave.c @@ -1338,8 +1338,8 @@ blr_slave_send_slave_status(ROUTER_INSTANCE *router, snprintf(column, max_column_size, "%s", - router->service->dbref->server->name ? - router->service->dbref->server->name : + router->service->dbref->server->address ? + router->service->dbref->server->address : ""); col_len = strlen(column); *ptr++ = col_len; // Length of result string @@ -3906,7 +3906,7 @@ blr_stop_slave(ROUTER_INSTANCE* router, ROUTER_SLAVE* slave) router->service->name, slave->dcb->user, slave->dcb->remote, - router->service->dbref->server->name, + router->service->dbref->server->address, router->service->dbref->server->port, router->binlog_name, router->current_pos, @@ -4117,7 +4117,7 @@ blr_start_slave(ROUTER_INSTANCE* router, ROUTER_SLAVE* slave) router->service->name, slave->dcb->user, slave->dcb->remote, - router->service->dbref->server->name, + router->service->dbref->server->address, router->service->dbref->server->port, router->binlog_name, router->current_pos, @@ -4487,7 +4487,7 @@ blr_set_master_hostname(ROUTER_INSTANCE *router, char *hostname) MXS_INFO("%s: New MASTER_HOST is [%s]", router->service->name, - router->service->dbref->server->name); + router->service->dbref->server->address); return 1; } @@ -4679,7 +4679,7 @@ blr_master_get_config(ROUTER_INSTANCE *router, MASTER_SERVER_CFG *curr_master) SSL_LISTENER *server_ssl; curr_master->port = router->service->dbref->server->port; - curr_master->host = MXS_STRDUP_A(router->service->dbref->server->name); + curr_master->host = MXS_STRDUP_A(router->service->dbref->server->address); curr_master->pos = router->current_pos; curr_master->safe_pos = router->binlog_position; strcpy(curr_master->logfile, router->binlog_name); // Same size @@ -9212,7 +9212,7 @@ static void blr_log_config_changes(ROUTER_INSTANCE *router, current_master->logfile, current_master->pos, current_master->user, - router->service->dbref->server->name, + router->service->dbref->server->address, router->service->dbref->server->port, router->binlog_name, router->current_pos, diff --git a/server/modules/routing/debugcli/debugcmd.c b/server/modules/routing/debugcli/debugcmd.c index 8651747cf..3c8daff4a 100644 --- a/server/modules/routing/debugcli/debugcmd.c +++ b/server/modules/routing/debugcli/debugcmd.c @@ -861,12 +861,12 @@ static void cmd_AddServer(DCB *dcb, SERVER *server, char *v1, char *v2, char *v3 { if (runtime_link_server(server, values[i])) { - dcb_printf(dcb, "Added server '%s' to '%s'\n", server->unique_name, values[i]); + dcb_printf(dcb, "Added server '%s' to '%s'\n", server->name, values[i]); } else { dcb_printf(dcb, "Could not add server '%s' to object '%s'. See error log for more details.\n", - server->unique_name, values[i]); + server->name, values[i]); } } } @@ -956,7 +956,7 @@ static void cmd_RemoveServer(DCB *dcb, SERVER *server, char *v1, char *v2, char { if (runtime_unlink_server(server, values[i])) { - dcb_printf(dcb, "Removed server '%s' from '%s'\n", server->unique_name, values[i]); + dcb_printf(dcb, "Removed server '%s' from '%s'\n", server->name, values[i]); } else { @@ -1248,8 +1248,8 @@ static void destroyServer(DCB *dcb, SERVER *server) /** Do this so that we don't directly access the server. Currently, the * destruction of a server does not free any memory and the server stays * valid. */ - char name[strlen(server->unique_name) + 1]; - strcpy(name, server->unique_name); + char name[strlen(server->name) + 1]; + strcpy(name, server->name); if (runtime_destroy_server(server)) { @@ -1411,7 +1411,7 @@ static void alterServer(DCB *dcb, SERVER *server, char *v1, char *v2, char *v3, ssl_version, ssl_depth)) { dcb_printf(dcb, "Enabling SSL for server '%s' failed, see log " - "for more details.\n", server->unique_name); + "for more details.\n", server->name); } } else diff --git a/server/modules/routing/hintrouter/hintrouter.cc b/server/modules/routing/hintrouter/hintrouter.cc index f15489960..69553e055 100644 --- a/server/modules/routing/hintrouter/hintrouter.cc +++ b/server/modules/routing/hintrouter/hintrouter.cc @@ -194,7 +194,7 @@ Dcb HintRouter::connect_to_backend(MXS_SESSION* session, SERVER_REF* sref, HintRouterSession::BackendMap* all_backends) { Dcb result(NULL); - HR_DEBUG("Connecting to %s.", sref->server->unique_name); + HR_DEBUG("Connecting to %s.", sref->server->name); DCB* new_connection = dcb_connect(sref->server, session, sref->server->protocol); if (new_connection) @@ -204,7 +204,7 @@ Dcb HintRouter::connect_to_backend(MXS_SESSION* session, SERVER_REF* sref, new_connection->service = session->service; result = Dcb(new_connection); - string name(new_connection->server->unique_name); + string name(new_connection->server->name); all_backends->insert(HintRouterSession::MapElement(name, result)); } else diff --git a/server/modules/routing/hintrouter/hintroutersession.cc b/server/modules/routing/hintrouter/hintroutersession.cc index 27e0cd9ec..2be36fd88 100644 --- a/server/modules/routing/hintrouter/hintroutersession.cc +++ b/server/modules/routing/hintrouter/hintroutersession.cc @@ -42,7 +42,7 @@ public: if (pPacket) { SERVER* pServer = dcb.server(); - HR_DEBUG("Writing packet to %p %s.", dcb.get(), pServer ? pServer->unique_name : "(null)"); + HR_DEBUG("Writing packet to %p %s.", dcb.get(), pServer ? pServer->name : "(null)"); rv = dcb.write(pPacket); } return rv; @@ -137,13 +137,13 @@ void HintRouterSession::clientReply(GWBUF* pPacket, DCB* pBackend) if (m_surplus_replies == 0) { - HR_DEBUG("Returning packet from %s.", pServer ? pServer->unique_name : "(null)"); + HR_DEBUG("Returning packet from %s.", pServer ? pServer->name : "(null)"); MXS_SESSION_ROUTE_REPLY(pBackend->session, pPacket); } else { - HR_DEBUG("Ignoring reply packet from %s.", pServer ? pServer->unique_name : "(null)"); + HR_DEBUG("Ignoring reply packet from %s.", pServer ? pServer->name : "(null)"); --m_surplus_replies; gwbuf_free(pPacket); @@ -218,7 +218,7 @@ bool HintRouterSession::route_by_hint(GWBUF* pPacket, HINT* hint, bool print_err if (master_ok) { - HR_DEBUG("Writing packet to master: '%s'.", m_master.server()->unique_name); + HR_DEBUG("Writing packet to master: '%s'.", m_master.server()->name); success = m_master.write(pPacket); if (success) { @@ -246,7 +246,7 @@ bool HintRouterSession::route_by_hint(GWBUF* pPacket, HINT* hint, bool print_err BackendMap::const_iterator iter = m_backends.find(backend_name); if (iter != m_backends.end()) { - HR_DEBUG("Writing packet to %s.", iter->second.server()->unique_name); + HR_DEBUG("Writing packet to %s.", iter->second.server()->name); success = iter->second.write(pPacket); if (success) { @@ -317,7 +317,7 @@ bool HintRouterSession::route_to_slave(GWBUF* pPacket, bool print_errors) Dcb& candidate = m_slaves.at(curr % size); if (SERVER_IS_SLAVE(candidate.server())) { - HR_DEBUG("Writing packet to slave: '%s'.", candidate.server()->unique_name); + HR_DEBUG("Writing packet to slave: '%s'.", candidate.server()->name); success = candidate.write(pPacket); if (success) { @@ -345,7 +345,7 @@ bool HintRouterSession::route_to_slave(GWBUF* pPacket, bool print_errors) for (size_type curr = begin; curr != limit; curr++) { Dcb& candidate = m_slaves.at(curr % size); - HR_DEBUG("Writing packet to slave: '%s'.", candidate.server()->unique_name); + HR_DEBUG("Writing packet to slave: '%s'.", candidate.server()->name); success = candidate.write(pPacket); if (success) { diff --git a/server/modules/routing/readconnroute/readconnroute.c b/server/modules/routing/readconnroute/readconnroute.c index ed4244462..490da734e 100644 --- a/server/modules/routing/readconnroute/readconnroute.c +++ b/server/modules/routing/readconnroute/readconnroute.c @@ -431,7 +431,7 @@ newSession(MXS_ROUTER *instance, MXS_SESSION *session) CHK_CLIENT_RSES(client_rses); MXS_INFO("New session for server %s. Connections : %d", - candidate->server->unique_name, candidate->connections); + candidate->server->name, candidate->connections); return (void *) client_rses; } @@ -514,16 +514,16 @@ static void log_closed_session(mxs_mysql_cmd_t mysql_command, bool is_closed, } else if (SERVER_IS_DOWN(ref->server)) { - sprintf(msg, "Server '%s' is down.", ref->server->unique_name); + sprintf(msg, "Server '%s' is down.", ref->server->name); } else if (SERVER_IN_MAINT(ref->server)) { - sprintf(msg, "Server '%s' is in maintenance.", ref->server->unique_name); + sprintf(msg, "Server '%s' is in maintenance.", ref->server->name); } else if (!valid) { sprintf(msg, "Server '%s' no longer qualifies as a target server.", - ref->server->unique_name); + ref->server->name); } MXS_ERROR("Failed to route MySQL command %d to backend server. %s", @@ -640,7 +640,7 @@ routeQuery(MXS_ROUTER *instance, MXS_ROUTER_SESSION *router_session, GWBUF *queu MXS_INFO("Routed [%s] to '%s'%s%s", STRPACKETTYPE(mysql_command), - backend_dcb->server->unique_name, + backend_dcb->server->name, trc ? ": " : ".", trc ? trc : ""); MXS_FREE(trc); @@ -678,7 +678,7 @@ diagnostics(MXS_ROUTER *router, DCB *dcb) for (SERVER_REF *ref = router_inst->service->dbref; ref; ref = ref->next) { dcb_printf(dcb, "\t\t%-20s %3.1f%% %d\n", - ref->server->unique_name, + ref->server->name, (float) ref->weight / 10, ref->connections); } diff --git a/server/modules/routing/readwritesplit/readwritesplit.cc b/server/modules/routing/readwritesplit/readwritesplit.cc index f7b2cbd71..5337e9c9e 100644 --- a/server/modules/routing/readwritesplit/readwritesplit.cc +++ b/server/modules/routing/readwritesplit/readwritesplit.cc @@ -382,7 +382,7 @@ void RWSplit::diagnostics(DCB *dcb) for (SERVER_REF *ref = service()->dbref; ref; ref = ref->next) { dcb_printf(dcb, "\t\t%-20s %3.1f%% %-6d %-6d %d\n", - ref->server->unique_name, (float)ref->weight / 10, + ref->server->name, (float)ref->weight / 10, ref->server->stats.n_current, ref->connections, ref->server->stats.n_current_ops); } diff --git a/server/modules/routing/readwritesplit/rwsplit_select_backends.cc b/server/modules/routing/readwritesplit/rwsplit_select_backends.cc index d70b75c4c..f33662d59 100644 --- a/server/modules/routing/readwritesplit/rwsplit_select_backends.cc +++ b/server/modules/routing/readwritesplit/rwsplit_select_backends.cc @@ -211,26 +211,26 @@ static void log_server_connections(select_criteria_t criteria, const SRWBackendL { case LEAST_GLOBAL_CONNECTIONS: MXS_INFO("MaxScale connections : %d in \t[%s]:%d %s", - b->server->stats.n_current, b->server->name, + b->server->stats.n_current, b->server->address, b->server->port, STRSRVSTATUS(b->server)); break; case LEAST_ROUTER_CONNECTIONS: MXS_INFO("RWSplit connections : %d in \t[%s]:%d %s", - b->connections, b->server->name, + b->connections, b->server->address, b->server->port, STRSRVSTATUS(b->server)); break; case LEAST_CURRENT_OPERATIONS: MXS_INFO("current operations : %d in \t[%s]:%d %s", b->server->stats.n_current_ops, - b->server->name, b->server->port, + b->server->address, b->server->port, STRSRVSTATUS(b->server)); break; case LEAST_BEHIND_MASTER: MXS_INFO("replication lag : %d in \t[%s]:%d %s", - b->server->rlag, b->server->name, + b->server->rlag, b->server->address, b->server->port, STRSRVSTATUS(b->server)); break; diff --git a/server/modules/routing/readwritesplit/rwsplitsession.cc b/server/modules/routing/readwritesplit/rwsplitsession.cc index c21a59936..7bbf1dc88 100644 --- a/server/modules/routing/readwritesplit/rwsplitsession.cc +++ b/server/modules/routing/readwritesplit/rwsplitsession.cc @@ -329,19 +329,19 @@ static void log_unexpected_response(DCB* dcb, GWBUF* buffer) MXS_INFO("Connection from '%s'@'%s' to '%s' was killed", dcb->session->client_dcb->user, dcb->session->client_dcb->remote, - dcb->server->unique_name); + dcb->server->name); } else { MXS_WARNING("Server '%s' sent an unexpected error: %hu, %s", - dcb->server->unique_name, errcode, errstr.c_str()); + dcb->server->name, errcode, errstr.c_str()); } } else { MXS_ERROR("Unexpected internal state: received response 0x%02hhx from " "server '%s' when no response was expected", - mxs_mysql_get_command(buffer), dcb->server->unique_name); + mxs_mysql_get_command(buffer), dcb->server->name); ss_dassert(false); } } @@ -534,7 +534,7 @@ void check_and_log_backend_state(const SRWBackend& backend, DCB* problem_dcb) else { const char *remote = problem_dcb->state == DCB_STATE_POLLING && - problem_dcb->server ? problem_dcb->server->unique_name : "CLOSED"; + problem_dcb->server ? problem_dcb->server->name : "CLOSED"; MXS_ERROR("DCB connected to '%s' is not in use by the router " "session, not closing it. DCB is in state '%s'", diff --git a/server/modules/routing/schemarouter/schemarouterinstance.cc b/server/modules/routing/schemarouter/schemarouterinstance.cc index 329a14108..4c563effb 100644 --- a/server/modules/routing/schemarouter/schemarouterinstance.cc +++ b/server/modules/routing/schemarouter/schemarouterinstance.cc @@ -216,7 +216,7 @@ bool connect_backend_servers(SSRBackendList& backends, MXS_SESSION* session) MXS_INFO("MaxScale connections : %d (%d) in \t%s:%d %s", b->connections, b->server->stats.n_current, - b->server->name, + b->server->address, b->server->port, STRSRVSTATUS(b->server)); } @@ -250,7 +250,7 @@ bool connect_backend_servers(SSRBackendList& backends, MXS_SESSION* session) succp = false; MXS_ERROR("Unable to establish " "connection with slave %s:%d", - b->server->name, + b->server->address, b->server->port); /* handle connect error */ break; @@ -273,7 +273,7 @@ bool connect_backend_servers(SSRBackendList& backends, MXS_SESSION* session) { MXS_INFO("Connected %s in \t%s:%d", STRSRVSTATUS(b->server), - b->server->name, + b->server->address, b->server->port); } } diff --git a/server/modules/routing/schemarouter/schemaroutersession.cc b/server/modules/routing/schemarouter/schemaroutersession.cc index 5ecab8c85..c03ac05f5 100644 --- a/server/modules/routing/schemarouter/schemaroutersession.cc +++ b/server/modules/routing/schemarouter/schemaroutersession.cc @@ -383,7 +383,7 @@ int32_t SchemaRouterSession::routeQuery(GWBUF* pPacket) if (target) { MXS_INFO("INIT_DB for database '%s' on server '%s'", - m_current_db.c_str(), target->unique_name); + m_current_db.c_str(), target->name); route_target = TARGET_NAMED_SERVER; } else @@ -419,7 +419,7 @@ int32_t SchemaRouterSession::routeQuery(GWBUF* pPacket) DCB* target_dcb = NULL; if (TARGET_IS_NAMED_SERVER(route_target) && target && - get_shard_dcb(&target_dcb, target->unique_name)) + get_shard_dcb(&target_dcb, target->name)) { /** We know where to route this query */ SSRBackend bref = get_bref_from_dcb(target_dcb); @@ -429,7 +429,7 @@ int32_t SchemaRouterSession::routeQuery(GWBUF* pPacket) m_load_target = bref->backend()->server; } - MXS_INFO("Route query to \t%s:%d <", bref->backend()->server->name, bref->backend()->server->port); + MXS_INFO("Route query to \t%s:%d <", bref->backend()->server->address, bref->backend()->server->port); if (bref->has_session_commands()) { @@ -525,7 +525,7 @@ void SchemaRouterSession::clientReply(GWBUF* pPacket, DCB* pDcb) MXS_DEBUG("Reply from [%s] session [%p]" " mapping [%s] queries queued [%s]", - bref->backend()->server->unique_name, + bref->backend()->server->name, m_client->session, m_state & INIT_MAPPING ? "true" : "false", m_queue.size() == 0 ? "none" : @@ -571,7 +571,7 @@ void SchemaRouterSession::clientReply(GWBUF* pPacket, DCB* pDcb) if (bref->execute_session_command()) { MXS_INFO("Backend %s:%d processed reply and starts to execute active cursor.", - bref->backend()->server->name, bref->backend()->server->port); + bref->backend()->server->address, bref->backend()->server->port); } else if (bref->write_stored_command()) { @@ -734,7 +734,7 @@ bool SchemaRouterSession::route_session_write(GWBUF* querybuf, uint8_t command) { MXS_INFO("Route query to %s\t%s:%d", SERVER_IS_MASTER((*it)->backend()->server) ? "master" : "slave", - (*it)->backend()->server->name, + (*it)->backend()->server->address, (*it)->backend()->server->port); } @@ -748,7 +748,7 @@ bool SchemaRouterSession::route_session_write(GWBUF* querybuf, uint8_t command) { MXS_ERROR("Failed to execute session " "command in %s:%d", - (*it)->backend()->server->name, + (*it)->backend()->server->address, (*it)->backend()->server->port); } } @@ -757,7 +757,7 @@ bool SchemaRouterSession::route_session_write(GWBUF* querybuf, uint8_t command) ss_dassert((*it)->session_command_count() > 1); /** The server is already executing a session command */ MXS_INFO("Backend %s:%d already executing sescmd.", - (*it)->backend()->server->name, + (*it)->backend()->server->address, (*it)->backend()->server->port); succp = true; } @@ -864,7 +864,7 @@ RESULT_ROW* shard_list_cb(struct resultset* rset, void* data) if (rval) { resultset_row_set(rval, 0, pContent->begin()->first.c_str()); - resultset_row_set(rval, 1, pContent->begin()->second->unique_name); + resultset_row_set(rval, 1, pContent->begin()->second->name); pContent->erase(pContent->begin()); } @@ -947,19 +947,19 @@ bool SchemaRouterSession::handle_default_db() SSRBackend backend; DCB* dcb = NULL; - if (get_shard_dcb(&dcb, target->unique_name) && + if (get_shard_dcb(&dcb, target->name) && (backend = get_bref_from_dcb(dcb))) { backend->write(buffer); MXS_DEBUG("USE '%s' sent to %s for session %p", m_connect_db.c_str(), - target->unique_name, + target->name, m_client->session); rval = true; } else { - MXS_INFO("Couldn't find target DCB for '%s'.", target->unique_name); + MXS_INFO("Couldn't find target DCB for '%s'.", target->name); } } else @@ -1025,7 +1025,7 @@ int SchemaRouterSession::inspect_mapping_states(SSRBackend& bref, (*it)->set_mapped(true); (*it)->ack_write(); MXS_DEBUG("Received SHOW DATABASES reply from %s for session %p", - (*it)->backend()->server->unique_name, + (*it)->backend()->server->name, m_client->session); } else @@ -1079,7 +1079,7 @@ int SchemaRouterSession::inspect_mapping_states(SSRBackend& bref, { mapped = false; MXS_DEBUG("Still waiting for reply to SHOW DATABASES from %s for session %p", - (*it)->backend()->server->unique_name, m_client->session); + (*it)->backend()->server->name, m_client->session); } } *wbuf = writebuf; @@ -1140,7 +1140,7 @@ bool change_current_db(std::string& dest, Shard& shard, GWBUF* buf) if (target) { dest = db; - MXS_INFO("change_current_db: database is on server: '%s'.", target->unique_name); + MXS_INFO("change_current_db: database is on server: '%s'.", target->name); succp = true; } } @@ -1313,7 +1313,7 @@ enum showdb_response SchemaRouterSession::parse_mapping_response(SSRBackend& bre { if (m_shard.add_location(data, target)) { - MXS_INFO("<%s, %s>", target->unique_name, data); + MXS_INFO("<%s, %s>", target->name, data); } else { @@ -1323,15 +1323,15 @@ enum showdb_response SchemaRouterSession::parse_mapping_response(SSRBackend& bre SERVER *duplicate = m_shard.get_location(data); MXS_ERROR("Database '%s' found on servers '%s' and '%s' for user %s@%s.", - data, target->unique_name, duplicate->unique_name, + data, target->name, duplicate->name, m_client->user, m_client->remote); } else if (m_config->preferred_server == target) { /** In conflict situations, use the preferred server */ MXS_INFO("Forcing location of '%s' from '%s' to '%s'", - data, m_shard.get_location(data)->unique_name, - target->unique_name); + data, m_shard.get_location(data)->name, + target->name); m_shard.replace_location(data, target); } } @@ -1344,12 +1344,12 @@ enum showdb_response SchemaRouterSession::parse_mapping_response(SSRBackend& bre { n_eof++; MXS_INFO("SHOW DATABASES fully received from %s.", - bref->backend()->server->unique_name); + bref->backend()->server->name); } else { MXS_INFO("SHOW DATABASES partially received from %s.", - bref->backend()->server->unique_name); + bref->backend()->server->name); } gwbuf_free(buf); @@ -1400,7 +1400,7 @@ void SchemaRouterSession::query_databases() if (!(*it)->write(clone)) { MXS_ERROR("Failed to write SHOW DATABASES to '%s'", - (*it)->backend()->server->unique_name); + (*it)->backend()->server->name); } } } @@ -1462,14 +1462,14 @@ SERVER* SchemaRouterSession::get_shard_target(GWBUF* buffer, uint32_t qtype) { MXS_ERROR("Query targets databases on servers '%s' and '%s'. " "Cross database queries across servers are not supported.", - rval->unique_name, target->unique_name); + rval->name, target->name); } else if (rval == NULL) { rval = target; has_dbs = true; MXS_INFO("Query targets database '%s' on server '%s'", - databases[i], rval->unique_name); + databases[i], rval->name); } } } @@ -1511,7 +1511,7 @@ SERVER* SchemaRouterSession::get_shard_target(GWBUF* buffer, uint32_t qtype) if (rval) { MXS_INFO("SHOW TABLES query, current database '%s' on server '%s'", - m_current_db.c_str(), rval->unique_name); + m_current_db.c_str(), rval->name); } } else @@ -1523,12 +1523,12 @@ SERVER* SchemaRouterSession::get_shard_target(GWBUF* buffer, uint32_t qtype) { for (SSRBackendList::iterator it = m_backends.begin(); it != m_backends.end(); it++) { - char *srvnm = (*it)->backend()->server->unique_name; + char *srvnm = (*it)->backend()->server->name; if (strcmp(srvnm, (char*)buffer->hint->data) == 0) { rval = (*it)->backend()->server; - MXS_INFO("Routing hint found (%s)", rval->unique_name); + MXS_INFO("Routing hint found (%s)", rval->name); } } } @@ -1545,7 +1545,7 @@ SERVER* SchemaRouterSession::get_shard_target(GWBUF* buffer, uint32_t qtype) if (rval) { MXS_INFO("Using active database '%s' on '%s'", - m_current_db.c_str(), rval->unique_name); + m_current_db.c_str(), rval->name); } } @@ -1579,7 +1579,7 @@ bool SchemaRouterSession::get_shard_dcb(DCB** p_dcb, char* name) * the backend state must be RUNNING */ if ((*it)->in_use() && - (strncasecmp(name, b->server->unique_name, PATH_MAX) == 0) && + (strncasecmp(name, b->server->name, PATH_MAX) == 0) && SERVER_IS_RUNNING(b->server)) { *p_dcb = (*it)->dcb();