MXS-1840 Compile all routers as C++
Minimal changes, only what is needed in order to make it compile.
This commit is contained in:
@ -1,10 +1,10 @@
|
||||
add_library(binlogrouter SHARED blr.c blr_master.c blr_cache.c blr_slave.c blr_file.c)
|
||||
add_library(binlogrouter SHARED blr.cc blr_master.cc blr_cache.cc blr_slave.cc blr_file.cc)
|
||||
set_target_properties(binlogrouter PROPERTIES INSTALL_RPATH ${CMAKE_INSTALL_RPATH}:${MAXSCALE_LIBDIR} VERSION "2.0.0")
|
||||
set_target_properties(binlogrouter PROPERTIES LINK_FLAGS -Wl,-z,defs)
|
||||
target_link_libraries(binlogrouter maxscale-common ${PCRE_LINK_FLAGS} uuid)
|
||||
install_module(binlogrouter core)
|
||||
|
||||
add_executable(maxbinlogcheck maxbinlogcheck.c blr_file.c blr_cache.c blr_master.c blr_slave.c blr.c)
|
||||
add_executable(maxbinlogcheck maxbinlogcheck.cc blr_file.cc blr_cache.cc blr_master.cc blr_slave.cc blr.cc)
|
||||
target_link_libraries(maxbinlogcheck maxscale-common ${PCRE_LINK_FLAGS} uuid)
|
||||
|
||||
install_executable(maxbinlogcheck core)
|
||||
|
@ -43,7 +43,7 @@
|
||||
*/
|
||||
int blr_file_get_next_binlogname(const char *binlog_name)
|
||||
{
|
||||
char *sptr;
|
||||
const char *sptr;
|
||||
int filenum;
|
||||
|
||||
if ((sptr = strrchr(binlog_name, '.')) == NULL)
|
||||
@ -72,7 +72,7 @@ bool binlog_next_file_exists(const char* binlogdir, const char* binlog)
|
||||
|
||||
if (filenum)
|
||||
{
|
||||
char *sptr = strrchr(binlog, '.');
|
||||
const char *sptr = strrchr(binlog, '.');
|
||||
|
||||
if (sptr)
|
||||
{
|
@ -135,7 +135,7 @@ static const MXS_ENUM_VALUE binlog_storage_values[] =
|
||||
*
|
||||
* @return The module object
|
||||
*/
|
||||
MXS_MODULE* MXS_CREATE_MODULE()
|
||||
extern "C" MXS_MODULE* MXS_CREATE_MODULE()
|
||||
{
|
||||
MXS_NOTICE("Initialise binlog router module.");
|
||||
spinlock_init(&instlock);
|
||||
@ -810,7 +810,8 @@ createInstance(SERVICE *service, char **options)
|
||||
}
|
||||
|
||||
/* Allocate SSL struct for backend connection */
|
||||
if ((ssl_cfg = MXS_CALLOC(1, sizeof(SSL_LISTENER))) == NULL)
|
||||
if ((ssl_cfg =
|
||||
static_cast<SSL_LISTENER*>(MXS_CALLOC(1, sizeof(SSL_LISTENER)))) == NULL)
|
||||
{
|
||||
MXS_ERROR("%s: Error allocating memory for SSL struct in createInstance",
|
||||
inst->service->name);
|
||||
@ -1236,7 +1237,7 @@ newSession(MXS_ROUTER *instance, MXS_SESSION *session)
|
||||
|
||||
CHK_CLIENT_RSES(slave);
|
||||
|
||||
return (void *)slave;
|
||||
return reinterpret_cast<MXS_ROUTER_SESSION*>(slave);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1417,7 +1418,7 @@ routeQuery(MXS_ROUTER *instance, MXS_ROUTER_SESSION *router_session, GWBUF *queu
|
||||
return blr_slave_request(router, slave, queue);
|
||||
}
|
||||
|
||||
static char *event_names[] =
|
||||
static const char *event_names[] =
|
||||
{
|
||||
"Invalid", "Start Event V3", "Query Event", "Stop Event", "Rotate Event",
|
||||
"Integer Session Variable", "Load Event", "Slave Event", "Create File Event",
|
||||
@ -1433,7 +1434,7 @@ static char *event_names[] =
|
||||
};
|
||||
|
||||
/* New MariaDB event numbers starts from 0xa0 */
|
||||
static char *event_names_mariadb10[] =
|
||||
static const char *event_names_mariadb10[] =
|
||||
{
|
||||
"Annotate Rows Event",
|
||||
/* New MariaDB 10.x event numbers */
|
||||
@ -1641,7 +1642,7 @@ diagnostics(MXS_ROUTER *router, DCB *dcb)
|
||||
}
|
||||
else
|
||||
{
|
||||
char *ptr = NULL;
|
||||
const char *ptr = NULL;
|
||||
if (router_inst->lastEventReceived <= MAX_EVENT_TYPE)
|
||||
{
|
||||
ptr = event_names[router_inst->lastEventReceived];
|
||||
@ -2061,7 +2062,7 @@ static json_t* diagnostics_json(const MXS_ROUTER *router)
|
||||
}
|
||||
else
|
||||
{
|
||||
char *ptr = NULL;
|
||||
const char *ptr = NULL;
|
||||
if (router_inst->lastEventReceived <= MAX_EVENT_TYPE)
|
||||
{
|
||||
ptr = event_names[router_inst->lastEventReceived];
|
||||
@ -2623,7 +2624,7 @@ blr_send_custom_error(DCB *dcb,
|
||||
int packet_number,
|
||||
int affected_rows,
|
||||
const char *msg,
|
||||
char *statemsg,
|
||||
const char *statemsg,
|
||||
unsigned int errcode)
|
||||
{
|
||||
uint8_t *outbuf = NULL;
|
||||
@ -2967,10 +2968,10 @@ static int blr_check_binlog(ROUTER_INSTANCE *router)
|
||||
* @param router The router instance
|
||||
* @return The event description or NULL
|
||||
*/
|
||||
char *
|
||||
const char *
|
||||
blr_last_event_description(ROUTER_INSTANCE *router)
|
||||
{
|
||||
char *event_desc = NULL;
|
||||
const char *event_desc = NULL;
|
||||
|
||||
if (!router->mariadb10_compat)
|
||||
{
|
||||
@ -3006,10 +3007,10 @@ blr_last_event_description(ROUTER_INSTANCE *router)
|
||||
* @param event The current event
|
||||
* @return The event description or NULL
|
||||
*/
|
||||
char *
|
||||
const char *
|
||||
blr_get_event_description(ROUTER_INSTANCE *router, uint8_t event)
|
||||
{
|
||||
char *event_desc = NULL;
|
||||
const char *event_desc = NULL;
|
||||
|
||||
if (!router->mariadb10_compat)
|
||||
{
|
@ -473,6 +473,23 @@ typedef enum blr_thread_role
|
||||
r == BLR_THREAD_ROLE_MASTER_NOTRX ? "master (no trx)" : \
|
||||
r == BLR_THREAD_ROLE_MASTER_TRX ? "master (trx)" : "slave"
|
||||
|
||||
/**
|
||||
* Binlog encryption context of slave binlog file
|
||||
*/
|
||||
|
||||
typedef struct slave_encryption_ctx
|
||||
{
|
||||
uint8_t binlog_crypto_scheme; /**< Encryption scheme */
|
||||
uint32_t binlog_key_version; /**< Encryption key version */
|
||||
uint8_t nonce[AES_BLOCK_SIZE]; /**< nonce (random bytes) of current binlog.
|
||||
* These bytes + the binlog event current pos
|
||||
* form the encrryption IV for the event */
|
||||
char *log_file; /**< The log file the client has requested */
|
||||
uint32_t first_enc_event_pos; /**< The position of first encrypted event
|
||||
* It's the first event afte Start_encryption_event
|
||||
* which is after FDE */
|
||||
} SLAVE_ENCRYPTION_CTX;
|
||||
|
||||
/**
|
||||
* The client session structure used within this router. This represents
|
||||
* the slaves that are replicating binlogs from MaxScale.
|
||||
@ -525,7 +542,7 @@ typedef struct router_slave
|
||||
/*< Which binlog file */
|
||||
uint32_t lsi_binlog_pos;
|
||||
/*< What position */
|
||||
void *encryption_ctx;
|
||||
SLAVE_ENCRYPTION_CTX *encryption_ctx;
|
||||
/*< Encryption context */
|
||||
bool gtid_strict_mode;
|
||||
/*< MariaDB 10 Slave sets gtid_strict_mode */
|
||||
@ -631,6 +648,20 @@ typedef struct pending_transaction
|
||||
*/
|
||||
} PENDING_TRANSACTION;
|
||||
|
||||
/**
|
||||
* Binlog encryption context of binlog file
|
||||
*/
|
||||
|
||||
typedef struct binlog_encryption_ctx
|
||||
{
|
||||
uint8_t binlog_crypto_scheme; /**< Encryption scheme */
|
||||
uint32_t binlog_key_version; /**< Encryption key version */
|
||||
uint8_t nonce[AES_BLOCK_SIZE]; /**< nonce (random bytes) of current binlog.
|
||||
* These bytes + the binlog event current pos
|
||||
* form the encrryption IV for the event */
|
||||
char *binlog_file; /**< Current binlog file being encrypted */
|
||||
} BINLOG_ENCRYPTION_CTX;
|
||||
|
||||
/**
|
||||
* The per instance data for the router.
|
||||
*/
|
||||
@ -718,7 +749,7 @@ typedef struct router_instance
|
||||
bool request_semi_sync; /*< Request Semi-Sync replication to master */
|
||||
int master_semi_sync; /*< Semi-Sync replication status of master server */
|
||||
BINLOG_ENCRYPTION_SETUP encryption; /*< Binlog encryption setup */
|
||||
void *encryption_ctx; /*< Encryption context */
|
||||
BINLOG_ENCRYPTION_CTX *encryption_ctx; /*< Encryption context */
|
||||
char last_mariadb_gtid[GTID_MAX_LEN + 1];
|
||||
/*< Last seen MariaDB 10 GTID */
|
||||
bool mariadb10_gtid; /*< Save received MariaDB GTIDs into repo.
|
||||
@ -735,37 +766,6 @@ typedef struct router_instance
|
||||
struct router_instance *next;
|
||||
} ROUTER_INSTANCE;
|
||||
|
||||
/**
|
||||
* Binlog encryption context of slave binlog file
|
||||
*/
|
||||
|
||||
typedef struct slave_encryption_ctx
|
||||
{
|
||||
uint8_t binlog_crypto_scheme; /**< Encryption scheme */
|
||||
uint32_t binlog_key_version; /**< Encryption key version */
|
||||
uint8_t nonce[AES_BLOCK_SIZE]; /**< nonce (random bytes) of current binlog.
|
||||
* These bytes + the binlog event current pos
|
||||
* form the encrryption IV for the event */
|
||||
char *log_file; /**< The log file the client has requested */
|
||||
uint32_t first_enc_event_pos; /**< The position of first encrypted event
|
||||
* It's the first event afte Start_encryption_event
|
||||
* which is after FDE */
|
||||
} SLAVE_ENCRYPTION_CTX;
|
||||
|
||||
/**
|
||||
* Binlog encryption context of binlog file
|
||||
*/
|
||||
|
||||
typedef struct binlog_encryption_ctx
|
||||
{
|
||||
uint8_t binlog_crypto_scheme; /**< Encryption scheme */
|
||||
uint32_t binlog_key_version; /**< Encryption key version */
|
||||
uint8_t nonce[AES_BLOCK_SIZE]; /**< nonce (random bytes) of current binlog.
|
||||
* These bytes + the binlog event current pos
|
||||
* form the encrryption IV for the event */
|
||||
char *binlog_file; /**< Current binlog file being encrypted */
|
||||
} BINLOG_ENCRYPTION_CTX;
|
||||
|
||||
/**
|
||||
* Holds information about:
|
||||
* truncating a corrupted file
|
||||
@ -848,7 +848,7 @@ typedef struct binlog_pos_fix
|
||||
|
||||
#define BLRM_MAXSTATE 0x0023
|
||||
|
||||
static char *blrm_states[] =
|
||||
static const char *blrm_states[] =
|
||||
{
|
||||
"Unconfigured",
|
||||
"Unconnected",
|
||||
@ -896,7 +896,7 @@ static char *blrm_states[] =
|
||||
|
||||
#define BLRS_MAXSTATE 0x0004
|
||||
|
||||
static char *blrs_states[] =
|
||||
static const char *blrs_states[] =
|
||||
{
|
||||
"Created",
|
||||
"Unregistered",
|
||||
@ -987,7 +987,7 @@ extern int blr_send_custom_error(DCB *,
|
||||
int,
|
||||
int,
|
||||
const char *,
|
||||
char *,
|
||||
const char *,
|
||||
unsigned int);
|
||||
extern int blr_file_next_exists(ROUTER_INSTANCE *,
|
||||
ROUTER_SLAVE *,
|
||||
@ -996,10 +996,10 @@ uint32_t extract_field(uint8_t *src, int bits);
|
||||
void blr_cache_read_master_data(ROUTER_INSTANCE *router);
|
||||
int blr_read_events_all_events(ROUTER_INSTANCE *, BINLOG_FILE_FIX *, int);
|
||||
int blr_save_dbusers(const ROUTER_INSTANCE *router);
|
||||
char *blr_get_event_description(ROUTER_INSTANCE *router, uint8_t event);
|
||||
const char *blr_get_event_description(ROUTER_INSTANCE *router, uint8_t event);
|
||||
void blr_file_append(ROUTER_INSTANCE *router, char *file);
|
||||
void blr_cache_response(ROUTER_INSTANCE *router, char *response, GWBUF *buf);
|
||||
char * blr_last_event_description(ROUTER_INSTANCE *router);
|
||||
const char *blr_last_event_description(ROUTER_INSTANCE *router);
|
||||
void blr_free_ssl_data(ROUTER_INSTANCE *inst);
|
||||
|
||||
extern bool blr_send_event(blr_thread_role_t role,
|
||||
|
@ -130,7 +130,7 @@ static const char blr_encryption_algorithm_list_names[] = "aes_cbc";
|
||||
#endif
|
||||
|
||||
static int blr_file_create(ROUTER_INSTANCE *router, char *file);
|
||||
static void blr_log_header(int priority, char *msg, uint8_t *ptr);
|
||||
static void blr_log_header(int priority, const char *msg, uint8_t *ptr);
|
||||
void blr_cache_read_master_data(ROUTER_INSTANCE *router);
|
||||
int blr_file_get_next_binlogname(ROUTER_INSTANCE *router);
|
||||
int blr_file_new_binlog(ROUTER_INSTANCE *router, char *file);
|
||||
@ -737,7 +737,7 @@ blr_write_binlog_record(ROUTER_INSTANCE *router,
|
||||
}
|
||||
|
||||
/* Check write operation result*/
|
||||
if (n != size)
|
||||
if (n != static_cast<int>(size))
|
||||
{
|
||||
MXS_ERROR("%s: Failed to write binlog record at %lu of %s, %s. "
|
||||
"Truncating to previous record.",
|
||||
@ -1275,7 +1275,7 @@ blr_read_binlog(ROUTER_INSTANCE *router,
|
||||
&data[BINLOG_EVENT_HDR_LEN],
|
||||
hdr->event_size - BINLOG_EVENT_HDR_LEN,
|
||||
pos + BINLOG_EVENT_HDR_LEN))
|
||||
!= hdr->event_size - BINLOG_EVENT_HDR_LEN) // Read the balance
|
||||
!= static_cast<ssize_t>(hdr->event_size - BINLOG_EVENT_HDR_LEN)) // Read the balance
|
||||
{
|
||||
if (n == 0)
|
||||
{
|
||||
@ -1447,7 +1447,7 @@ blr_close_binlog(ROUTER_INSTANCE *router, BLFILE *file)
|
||||
* @param ptr The event header raw data
|
||||
*/
|
||||
static void
|
||||
blr_log_header(int priority, char *msg, uint8_t *ptr)
|
||||
blr_log_header(int priority, const char *msg, uint8_t *ptr)
|
||||
{
|
||||
char buf[400], *bufp;
|
||||
int i;
|
||||
@ -1551,7 +1551,7 @@ blr_cache_response(ROUTER_INSTANCE *router, char *response, GWBUF *buf)
|
||||
* @return A pointer to a GWBUF structure
|
||||
*/
|
||||
GWBUF *
|
||||
blr_cache_read_response(ROUTER_INSTANCE *router, char *response)
|
||||
blr_cache_read_response(ROUTER_INSTANCE *router, const char *response)
|
||||
{
|
||||
static const char CACHE[] = "/cache";
|
||||
size_t len = strlen(router->binlogdir) +
|
||||
@ -2127,10 +2127,11 @@ blr_read_events_all_events(ROUTER_INSTANCE *router,
|
||||
memcpy(data, hdbuf, BINLOG_EVENT_HDR_LEN);// Copy the header in
|
||||
|
||||
/* Read event data */
|
||||
if ((n = pread(router->binlog_fd,
|
||||
&data[BINLOG_EVENT_HDR_LEN],
|
||||
hdr.event_size - BINLOG_EVENT_HDR_LEN,
|
||||
pos + BINLOG_EVENT_HDR_LEN)) != hdr.event_size - BINLOG_EVENT_HDR_LEN)
|
||||
n = pread(router->binlog_fd,
|
||||
&data[BINLOG_EVENT_HDR_LEN],
|
||||
hdr.event_size - BINLOG_EVENT_HDR_LEN,
|
||||
pos + BINLOG_EVENT_HDR_LEN);
|
||||
if (n != static_cast<ssize_t>(hdr.event_size - BINLOG_EVENT_HDR_LEN))
|
||||
{
|
||||
if (n == -1)
|
||||
{
|
||||
@ -2359,7 +2360,7 @@ blr_read_events_all_events(ROUTER_INSTANCE *router,
|
||||
|
||||
if ((debug & BLR_REPORT_REP_HEADER))
|
||||
{
|
||||
char *event_desc = blr_get_event_description(router, hdr.event_type);
|
||||
const char *event_desc = blr_get_event_description(router, hdr.event_type);
|
||||
MXS_DEBUG("%8s==== Event Header ====\n%39sEvent Pos %lu\n%39sEvent time %lu\n%39s"
|
||||
"Event size %lu\n%39sEvent Type %u (%s)\n%39s"
|
||||
"Server Id %lu\n%39sNextPos %lu\n%39sFlags %u",
|
||||
@ -2392,7 +2393,9 @@ blr_read_events_all_events(ROUTER_INSTANCE *router,
|
||||
{
|
||||
char nonce_hex[AES_BLOCK_SIZE * 2 + 1] = "";
|
||||
START_ENCRYPTION_EVENT ste_event = {};
|
||||
BINLOG_ENCRYPTION_CTX *new_encryption_ctx = MXS_CALLOC(1, sizeof(BINLOG_ENCRYPTION_CTX));
|
||||
void *mem = MXS_CALLOC(1, sizeof(BINLOG_ENCRYPTION_CTX));
|
||||
BINLOG_ENCRYPTION_CTX *new_encryption_ctx =
|
||||
static_cast<BINLOG_ENCRYPTION_CTX*>(mem);
|
||||
|
||||
if (new_encryption_ctx == NULL)
|
||||
{
|
||||
@ -2516,7 +2519,7 @@ blr_read_events_all_events(ROUTER_INSTANCE *router,
|
||||
action->pos > 4 &&
|
||||
(pos == action->pos || replace_trx_events))
|
||||
{
|
||||
char *event_desc = blr_get_event_description(router, hdr.event_type);
|
||||
const char *event_desc = blr_get_event_description(router, hdr.event_type);
|
||||
|
||||
if (action->replace_trx && !replace_trx_events)
|
||||
{
|
||||
@ -2742,7 +2745,7 @@ blr_read_events_all_events(ROUTER_INSTANCE *router,
|
||||
BINLOG_EVENT_HDR_LEN -
|
||||
(4 + 4 + 1 + 2 + 2 + var_block_len + 1 + db_name_len);
|
||||
|
||||
statement_sql = MXS_CALLOC(1, statement_len + 1);
|
||||
statement_sql = static_cast<char*>(MXS_CALLOC(1, statement_len + 1));
|
||||
if (statement_sql)
|
||||
{
|
||||
memcpy(statement_sql,
|
||||
@ -3114,7 +3117,7 @@ blr_file_new_binlog(ROUTER_INSTANCE *router, char *file)
|
||||
int
|
||||
blr_file_write_master_config(ROUTER_INSTANCE *router, char *error)
|
||||
{
|
||||
char *section = "binlog_configuration";
|
||||
const char *section = "binlog_configuration";
|
||||
FILE *config_file;
|
||||
int rc;
|
||||
static const char MASTER_INI[] = "master.ini";
|
||||
@ -3233,7 +3236,7 @@ blr_print_binlog_details(ROUTER_INSTANCE *router,
|
||||
{
|
||||
char buf_t[40];
|
||||
struct tm tm_t;
|
||||
char *event_desc;
|
||||
const char *event_desc;
|
||||
|
||||
/* First Event */
|
||||
localtime_r(&first_event.event_time, &tm_t);
|
||||
@ -3291,7 +3294,7 @@ blr_create_ignorable_event(uint32_t event_size,
|
||||
}
|
||||
|
||||
// Allocate space for event: size might contain the 4 crc32
|
||||
new_event = MXS_CALLOC(1, event_size);
|
||||
new_event = static_cast<uint8_t*>(MXS_CALLOC(1, event_size));
|
||||
if (new_event == NULL)
|
||||
{
|
||||
return NULL;
|
||||
@ -3343,7 +3346,7 @@ blr_write_special_event(ROUTER_INSTANCE *router,
|
||||
{
|
||||
int n;
|
||||
uint8_t *new_event;
|
||||
char *new_event_desc;
|
||||
const char *new_event_desc;
|
||||
|
||||
switch (type)
|
||||
{
|
||||
@ -3417,7 +3420,7 @@ blr_write_special_event(ROUTER_INSTANCE *router,
|
||||
if ((n = pwrite(router->binlog_fd,
|
||||
new_event,
|
||||
event_size,
|
||||
router->last_written)) != event_size)
|
||||
router->last_written)) != static_cast<ssize_t>(event_size))
|
||||
{
|
||||
MXS_ERROR("%s: Failed to write %s special binlog record at %lu of %s, %s. "
|
||||
"Truncating to previous record.",
|
||||
@ -3476,7 +3479,8 @@ blr_create_start_encryption_event(ROUTER_INSTANCE *router,
|
||||
{
|
||||
uint8_t *new_event;
|
||||
uint8_t event_size = sizeof(START_ENCRYPTION_EVENT);
|
||||
BINLOG_ENCRYPTION_CTX *new_encryption_ctx = MXS_CALLOC(1, sizeof(BINLOG_ENCRYPTION_CTX));
|
||||
BINLOG_ENCRYPTION_CTX *new_encryption_ctx =
|
||||
static_cast<BINLOG_ENCRYPTION_CTX*>(MXS_CALLOC(1, sizeof(BINLOG_ENCRYPTION_CTX)));
|
||||
|
||||
if (new_encryption_ctx == NULL)
|
||||
{
|
||||
@ -3489,7 +3493,7 @@ blr_create_start_encryption_event(ROUTER_INSTANCE *router,
|
||||
event_size += BINLOG_EVENT_CRC_SIZE;
|
||||
}
|
||||
|
||||
new_event = MXS_CALLOC(1, event_size);
|
||||
new_event = static_cast<uint8_t*>(MXS_CALLOC(1, event_size));
|
||||
if (new_event == NULL)
|
||||
{
|
||||
return NULL;
|
||||
@ -3891,7 +3895,7 @@ static int blr_aes_create_tail_for_cbc(uint8_t *output,
|
||||
*
|
||||
* Note: this also works for decryption
|
||||
*/
|
||||
for (int i = 0; i < in_size; i++)
|
||||
for (uint32_t i = 0; i < in_size; i++)
|
||||
{
|
||||
output[i] = input[i] ^ mask[i];
|
||||
}
|
||||
@ -4253,7 +4257,7 @@ bool blr_fetch_mariadb_gtid(ROUTER_SLAVE *slave,
|
||||
unsigned int
|
||||
blr_file_get_next_seqno(const char *filename)
|
||||
{
|
||||
char *sptr;
|
||||
const char *sptr;
|
||||
int filenum;
|
||||
|
||||
if ((sptr = strrchr(filename, '.')) == NULL)
|
||||
@ -4486,7 +4490,7 @@ bool blr_compare_binlogs(const ROUTER_INSTANCE *router,
|
||||
{
|
||||
// domain_id, server_id and strcmp()
|
||||
return ((router->mariadb10_gtid_domain == info->domain_id) &&
|
||||
(router->orig_masterid == info->server_id) &&
|
||||
(router->orig_masterid == static_cast<int>(info->server_id)) &&
|
||||
strcmp(r_file, s_file) == 0);
|
||||
}
|
||||
}
|
@ -58,12 +58,13 @@ static GWBUF *blr_make_binlog_dump(ROUTER_INSTANCE *router);
|
||||
void encode_value(unsigned char *data, unsigned int value, int len);
|
||||
void blr_handle_binlog_record(ROUTER_INSTANCE *router, GWBUF *pkt);
|
||||
static int blr_rotate_event(ROUTER_INSTANCE *router, uint8_t *pkt, REP_HEADER *hdr);
|
||||
static void *CreateMySQLAuthData(char *username, char *password, char *database);
|
||||
static void *CreateMySQLAuthData(const char *username,
|
||||
const char *password,
|
||||
const char *database);
|
||||
void blr_extract_header(uint8_t *pkt, REP_HEADER *hdr);
|
||||
static void blr_log_packet(int priority, char *msg, uint8_t *ptr, int len);
|
||||
static void blr_log_packet(int priority, const char *msg, uint8_t *ptr, int len);
|
||||
void blr_master_close(ROUTER_INSTANCE *);
|
||||
char *blr_extract_column(GWBUF *buf, int col);
|
||||
void poll_fake_write_event(DCB *dcb);
|
||||
static bool blr_check_last_master_event(void *inst);
|
||||
extern int blr_check_heartbeat(ROUTER_INSTANCE *router);
|
||||
static void blr_log_identity(ROUTER_INSTANCE *router);
|
||||
@ -354,7 +355,7 @@ static void worker_cb_close_master(int worker_id, void* data)
|
||||
// This is itended to be called only in the main worker.
|
||||
ss_dassert(worker_id == 0);
|
||||
|
||||
blr_master_close(data);
|
||||
blr_master_close(static_cast<ROUTER_INSTANCE*>(data));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -629,7 +630,7 @@ blr_master_response(ROUTER_INSTANCE *router, GWBUF *buf)
|
||||
{
|
||||
MXS_FREE(router->m_errmsg);
|
||||
}
|
||||
router->m_errmsg = msg_err ? msg_err : "(memory failure)";
|
||||
router->m_errmsg = msg_err ? msg_err : MXS_STRDUP("(memory failure)");
|
||||
|
||||
router->active_logs = 0;
|
||||
if (router->reconnect_pending)
|
||||
@ -927,7 +928,7 @@ blr_handle_binlog_record(ROUTER_INSTANCE *router, GWBUF *pkt)
|
||||
|
||||
if (len < BINLOG_EVENT_HDR_LEN && router->master_event_state != BLR_EVENT_ONGOING)
|
||||
{
|
||||
char *event_msg = "unknown";
|
||||
const char *event_msg = "unknown";
|
||||
|
||||
/* Packet is too small to be a binlog event */
|
||||
if (ptr[4] == 0xfe) /* EOF Packet */
|
||||
@ -1242,7 +1243,8 @@ blr_handle_binlog_record(ROUTER_INSTANCE *router, GWBUF *pkt)
|
||||
|
||||
statement_len = len - (MYSQL_HEADER_LEN + 1 + BINLOG_EVENT_HDR_LEN + 4 + 4 + 1 + 2 + 2 \
|
||||
+ var_block_len + 1 + db_name_len);
|
||||
statement_sql = MXS_CALLOC(1, statement_len + 1);
|
||||
statement_sql =
|
||||
static_cast<char*>(MXS_CALLOC(1, statement_len + 1));
|
||||
MXS_ABORT_IF_NULL(statement_sql);
|
||||
memcpy(statement_sql,
|
||||
(char *)ptr + MYSQL_HEADER_LEN + 1 + BINLOG_EVENT_HDR_LEN + 4 + 4 + 1 + 2 + 2 \
|
||||
@ -1694,7 +1696,7 @@ blr_rotate_event(ROUTER_INSTANCE *router, uint8_t *ptr, REP_HEADER *hdr)
|
||||
* This doesn't really belong here and should be moved at some stage.
|
||||
*/
|
||||
static void *
|
||||
CreateMySQLAuthData(char *username, char *password, char *database)
|
||||
CreateMySQLAuthData(const char *username, const char *password, const char *database)
|
||||
{
|
||||
MYSQL_session *auth_info;
|
||||
|
||||
@ -1718,7 +1720,8 @@ CreateMySQLAuthData(char *username, char *password, char *database)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if ((auth_info = MXS_CALLOC(1, sizeof(MYSQL_session))) == NULL)
|
||||
if ((auth_info =
|
||||
static_cast<MYSQL_session*>(MXS_CALLOC(1, sizeof(MYSQL_session)))) == NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
@ -1747,7 +1750,7 @@ typedef enum
|
||||
* @param len Length of message packet
|
||||
*/
|
||||
static void
|
||||
blr_log_packet(int priority, char *msg, uint8_t *ptr, int len)
|
||||
blr_log_packet(int priority, const char *msg, uint8_t *ptr, int len)
|
||||
{
|
||||
char buf[400] = "";
|
||||
char *bufp;
|
||||
@ -1851,7 +1854,7 @@ blr_extract_column(GWBUF *buf, int col)
|
||||
ptr += collen;
|
||||
}
|
||||
collen = *ptr++;
|
||||
if ((rval = MXS_MALLOC(collen + 1)) == NULL)
|
||||
if ((rval = static_cast<char*>(MXS_MALLOC(collen + 1))) == NULL)
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
@ -1976,7 +1979,7 @@ int
|
||||
blr_check_heartbeat(ROUTER_INSTANCE *router)
|
||||
{
|
||||
time_t t_now = time(0);
|
||||
char *event_desc = NULL;
|
||||
const char *event_desc = NULL;
|
||||
|
||||
if (router->master_state != BLRM_BINLOGDUMP)
|
||||
{
|
||||
@ -1988,7 +1991,8 @@ blr_check_heartbeat(ROUTER_INSTANCE *router)
|
||||
if (router->master_state == BLRM_BINLOGDUMP &&
|
||||
router->lastEventReceived > 0)
|
||||
{
|
||||
if ((t_now - router->stats.lastReply) > (router->heartbeat + BLR_NET_LATENCY_WAIT_TIME))
|
||||
if (static_cast<unsigned long>(t_now - router->stats.lastReply) >
|
||||
(router->heartbeat + BLR_NET_LATENCY_WAIT_TIME))
|
||||
{
|
||||
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 "
|
||||
@ -2097,7 +2101,7 @@ blr_write_data_into_binlog(ROUTER_INSTANCE *router, uint32_t data_len, uint8_t *
|
||||
int n;
|
||||
|
||||
if ((n = pwrite(router->binlog_fd, buf, data_len,
|
||||
router->last_written)) != data_len)
|
||||
router->last_written)) != static_cast<int64_t>(data_len))
|
||||
{
|
||||
MXS_ERROR("%s: Failed to write binlog record at %lu of %s, %s. "
|
||||
"Truncating to previous record.",
|
@ -69,27 +69,27 @@
|
||||
|
||||
#include "blr.h"
|
||||
|
||||
#include <errno.h>
|
||||
#include <inttypes.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
#include <maxscale/maxscale.h>
|
||||
#include <maxscale/service.h>
|
||||
#include <maxscale/server.h>
|
||||
#include <maxscale/router.h>
|
||||
#include <maxscale/atomic.h>
|
||||
#include <maxscale/spinlock.h>
|
||||
#include <maxscale/dcb.h>
|
||||
#include <maxscale/spinlock.h>
|
||||
#include <maxscale/housekeeper.h>
|
||||
#include <sys/stat.h>
|
||||
#include <maxscale/log_manager.h>
|
||||
#include <maxscale/version.h>
|
||||
#include <zlib.h>
|
||||
#include <maxscale/alloc.h>
|
||||
#include <inttypes.h>
|
||||
#include <maxscale/utils.h>
|
||||
#include <maxscale/atomic.h>
|
||||
#include <maxscale/clock.h>
|
||||
#include <maxscale/dcb.h>
|
||||
#include <maxscale/housekeeper.h>
|
||||
#include <maxscale/log_manager.h>
|
||||
#include <maxscale/maxscale.h>
|
||||
#include <maxscale/poll.h>
|
||||
#include <maxscale/router.h>
|
||||
#include <maxscale/server.h>
|
||||
#include <maxscale/service.h>
|
||||
#include <maxscale/spinlock.h>
|
||||
#include <maxscale/utils.h>
|
||||
#include <maxscale/version.h>
|
||||
|
||||
/**
|
||||
* This struct is used by sqlite3_exec callback routine
|
||||
@ -118,7 +118,6 @@ typedef enum
|
||||
SLAVE_EOF_ERROR
|
||||
} slave_eof_action_t;
|
||||
|
||||
extern void poll_fake_write_event(DCB *dcb);
|
||||
static char* get_next_token(char *str, const char* delim, char **saveptr);
|
||||
extern int load_mysql_users(SERV_LISTENER *listener);
|
||||
extern void blr_master_close(ROUTER_INSTANCE* router);
|
||||
@ -137,7 +136,7 @@ static int blr_slave_replay(ROUTER_INSTANCE *router,
|
||||
GWBUF *master);
|
||||
static void blr_slave_send_error(ROUTER_INSTANCE *router,
|
||||
ROUTER_SLAVE *slave,
|
||||
char *msg);
|
||||
const char *msg);
|
||||
static int blr_slave_send_timestamp(ROUTER_INSTANCE *router,
|
||||
ROUTER_SLAVE *slave);
|
||||
static int blr_slave_register(ROUTER_INSTANCE *router,
|
||||
@ -199,9 +198,9 @@ static int blr_stop_slave(ROUTER_INSTANCE* router,
|
||||
static int blr_start_slave(ROUTER_INSTANCE* router,
|
||||
ROUTER_SLAVE* slave);
|
||||
static void blr_slave_send_error_packet(ROUTER_SLAVE *slave,
|
||||
char *msg,
|
||||
const char *msg,
|
||||
unsigned int err_num,
|
||||
char *status);
|
||||
const char *status);
|
||||
static int blr_handle_change_master(ROUTER_INSTANCE* router,
|
||||
char *command,
|
||||
char *error);
|
||||
@ -237,17 +236,17 @@ static int blr_handle_change_master_token(char *input,
|
||||
static void blr_master_free_parsed_options(CHANGE_MASTER_OPTIONS *options);
|
||||
static int blr_slave_send_var_value(ROUTER_INSTANCE *router,
|
||||
ROUTER_SLAVE *slave,
|
||||
char *variable,
|
||||
char *value,
|
||||
const char *variable,
|
||||
const char *value,
|
||||
int column_type);
|
||||
static int blr_slave_send_variable(ROUTER_INSTANCE *router,
|
||||
ROUTER_SLAVE *slave,
|
||||
char *variable,
|
||||
char *value,
|
||||
const char *variable,
|
||||
const char *value,
|
||||
int column_type);
|
||||
static int blr_slave_send_columndef_with_info_schema(ROUTER_INSTANCE *router,
|
||||
ROUTER_SLAVE *slave,
|
||||
char *name,
|
||||
const char *name,
|
||||
int type,
|
||||
int len,
|
||||
uint8_t seqno);
|
||||
@ -262,20 +261,20 @@ static int blr_slave_handle_variables(ROUTER_INSTANCE *router,
|
||||
char *stmt);
|
||||
static int blr_slave_send_warning_message(ROUTER_INSTANCE* router,
|
||||
ROUTER_SLAVE* slave,
|
||||
char *message);
|
||||
const char *message);
|
||||
static int blr_slave_show_warnings(ROUTER_INSTANCE* router,
|
||||
ROUTER_SLAVE* slave);
|
||||
static int blr_slave_send_status_variable(ROUTER_INSTANCE *router,
|
||||
ROUTER_SLAVE *slave,
|
||||
char *variable,
|
||||
char *value,
|
||||
const char *variable,
|
||||
const char *value,
|
||||
int column_type);
|
||||
static int blr_slave_handle_status_variables(ROUTER_INSTANCE *router,
|
||||
ROUTER_SLAVE *slave,
|
||||
char *stmt);
|
||||
static int blr_slave_send_columndef_with_status_schema(ROUTER_INSTANCE *router,
|
||||
ROUTER_SLAVE *slave,
|
||||
char *name,
|
||||
const char *name,
|
||||
int type,
|
||||
int len,
|
||||
uint8_t seqno);
|
||||
@ -610,11 +609,10 @@ static int
|
||||
blr_slave_query(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave, GWBUF *queue)
|
||||
{
|
||||
char *qtext, *query_text;
|
||||
char *sep = " ,=";
|
||||
const char *sep = " ,=";
|
||||
char *word, *brkb;
|
||||
int query_len;
|
||||
char *ptr;
|
||||
extern char *strcasestr();
|
||||
bool unexpected = true;
|
||||
|
||||
qtext = (char*)GWBUF_DATA(queue);
|
||||
@ -816,7 +814,7 @@ blr_slave_replay(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave, GWBUF *master)
|
||||
* @param msg The error message to send
|
||||
*/
|
||||
static void
|
||||
blr_slave_send_error(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave, char *msg)
|
||||
blr_slave_send_error(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave, const char *msg)
|
||||
{
|
||||
GWBUF *pkt;
|
||||
unsigned char *data;
|
||||
@ -2480,8 +2478,9 @@ blr_slave_catchup(ROUTER_INSTANCE *router, ROUTER_SLAVE *slave, bool large)
|
||||
{
|
||||
/* read it, set slave & file context */
|
||||
uint8_t *record_ptr = GWBUF_DATA(record);
|
||||
void *mem = MXS_CALLOC(1, sizeof(SLAVE_ENCRYPTION_CTX));
|
||||
SLAVE_ENCRYPTION_CTX *encryption_ctx;
|
||||
encryption_ctx = MXS_CALLOC(1, sizeof(SLAVE_ENCRYPTION_CTX));
|
||||
encryption_ctx = static_cast<SLAVE_ENCRYPTION_CTX*>(mem);
|
||||
|
||||
MXS_ABORT_IF_NULL(encryption_ctx);
|
||||
record_ptr += BINLOG_EVENT_HDR_LEN;
|
||||
@ -3209,7 +3208,7 @@ blr_slave_fake_rotate(ROUTER_INSTANCE *router,
|
||||
BLFILE** filep,
|
||||
const char *new_file)
|
||||
{
|
||||
char *sptr;
|
||||
const char *sptr;
|
||||
int filenum;
|
||||
GWBUF *r_event;
|
||||
MARIADB_GTID_INFO *f_tree = router->storage_type == BLR_BINLOG_STORAGE_TREE ?
|
||||
@ -4139,15 +4138,15 @@ blr_start_slave(ROUTER_INSTANCE* router, ROUTER_SLAVE* slave)
|
||||
*/
|
||||
static void
|
||||
blr_slave_send_error_packet(ROUTER_SLAVE *slave,
|
||||
char *msg,
|
||||
const char *msg,
|
||||
unsigned int err_num,
|
||||
char *status)
|
||||
const char *status)
|
||||
{
|
||||
GWBUF *pkt;
|
||||
unsigned char *data;
|
||||
int len;
|
||||
unsigned int mysql_errno = 0;
|
||||
char *mysql_state;
|
||||
const char *mysql_state;
|
||||
|
||||
if ((pkt = gwbuf_alloc(strlen(msg) + 13)) == NULL)
|
||||
{
|
||||
@ -5060,7 +5059,7 @@ blr_parse_change_master_command(char *input,
|
||||
char *error_string,
|
||||
CHANGE_MASTER_OPTIONS *config)
|
||||
{
|
||||
char *sep = ",";
|
||||
const char *sep = ",";
|
||||
char *word, *brkb;
|
||||
|
||||
if ((word = get_next_token(input, sep, &brkb)) == NULL)
|
||||
@ -5111,7 +5110,7 @@ blr_handle_change_master_token(char *input,
|
||||
CHANGE_MASTER_OPTIONS *config)
|
||||
{
|
||||
/* space+TAB+= */
|
||||
char *sep = " \t=";
|
||||
const char *sep = " \t=";
|
||||
char *word, *brkb;
|
||||
char *value = NULL;
|
||||
char **option_field = NULL;
|
||||
@ -5172,7 +5171,7 @@ blr_get_parsed_command_value(char *input)
|
||||
strcpy(value, input);
|
||||
|
||||
/* space+TAB+= */
|
||||
char *sep = " \t=";
|
||||
const char *sep = " \t=";
|
||||
char *word;
|
||||
|
||||
if ((word = get_next_token(NULL, sep, &input)) != NULL)
|
||||
@ -5330,8 +5329,8 @@ blr_master_free_parsed_options(CHANGE_MASTER_OPTIONS *options)
|
||||
static int
|
||||
blr_slave_send_var_value(ROUTER_INSTANCE *router,
|
||||
ROUTER_SLAVE *slave,
|
||||
char *variable,
|
||||
char *value,
|
||||
const char *variable,
|
||||
const char *value,
|
||||
int column_type)
|
||||
{
|
||||
GWBUF *pkt;
|
||||
@ -5384,8 +5383,8 @@ blr_slave_send_var_value(ROUTER_INSTANCE *router,
|
||||
static int
|
||||
blr_slave_send_variable(ROUTER_INSTANCE *router,
|
||||
ROUTER_SLAVE *slave,
|
||||
char *variable,
|
||||
char *value,
|
||||
const char *variable,
|
||||
const char *value,
|
||||
int column_type)
|
||||
{
|
||||
GWBUF *pkt;
|
||||
@ -5475,7 +5474,7 @@ blr_slave_send_variable(ROUTER_INSTANCE *router,
|
||||
static int
|
||||
blr_slave_send_columndef_with_info_schema(ROUTER_INSTANCE *router,
|
||||
ROUTER_SLAVE *slave,
|
||||
char *name,
|
||||
const char *name,
|
||||
int type,
|
||||
int len,
|
||||
uint8_t seqno)
|
||||
@ -5616,7 +5615,7 @@ blr_slave_handle_variables(ROUTER_INSTANCE *router,
|
||||
char *brkb;
|
||||
char *word;
|
||||
/* SPACE,TAB,= */
|
||||
char *sep = " ,=";
|
||||
const char *sep = " ,=";
|
||||
|
||||
if ((word = strtok_r(stmt, sep, &brkb)) == NULL)
|
||||
{
|
||||
@ -5696,7 +5695,7 @@ blr_slave_handle_variables(ROUTER_INSTANCE *router,
|
||||
static int
|
||||
blr_slave_send_warning_message(ROUTER_INSTANCE* router,
|
||||
ROUTER_SLAVE* slave,
|
||||
char *message)
|
||||
const char *message)
|
||||
{
|
||||
GWBUF *pkt;
|
||||
uint8_t *ptr;
|
||||
@ -5764,7 +5763,7 @@ blr_slave_show_warnings(ROUTER_INSTANCE* router, ROUTER_SLAVE* slave)
|
||||
/* check whether a warning message is available */
|
||||
if (slave->warning_msg)
|
||||
{
|
||||
char *level = "Warning";
|
||||
const char *level = "Warning";
|
||||
char *msg_ptr;
|
||||
char err_code[16 + 1] = "";
|
||||
msg_ptr = strchr(slave->warning_msg, ':');
|
||||
@ -5855,7 +5854,7 @@ blr_slave_handle_status_variables(ROUTER_INSTANCE *router,
|
||||
char *brkb = NULL;
|
||||
char *word = NULL;
|
||||
/* SPACE,TAB,= */
|
||||
char *sep = " ,=";
|
||||
const char *sep = " ,=";
|
||||
|
||||
if ((word = strtok_r(stmt, sep, &brkb)) == NULL)
|
||||
{
|
||||
@ -5913,8 +5912,8 @@ blr_slave_handle_status_variables(ROUTER_INSTANCE *router,
|
||||
static int
|
||||
blr_slave_send_status_variable(ROUTER_INSTANCE *router,
|
||||
ROUTER_SLAVE *slave,
|
||||
char *variable,
|
||||
char *value,
|
||||
const char *variable,
|
||||
const char *value,
|
||||
int column_type)
|
||||
{
|
||||
GWBUF *pkt;
|
||||
@ -6009,7 +6008,7 @@ blr_slave_send_status_variable(ROUTER_INSTANCE *router,
|
||||
static int
|
||||
blr_slave_send_columndef_with_status_schema(ROUTER_INSTANCE *router,
|
||||
ROUTER_SLAVE *slave,
|
||||
char *name,
|
||||
const char *name,
|
||||
int type,
|
||||
int len,
|
||||
uint8_t seqno)
|
||||
@ -6022,7 +6021,7 @@ blr_slave_send_columndef_with_status_schema(ROUTER_INSTANCE *router,
|
||||
int column_name_len = strlen(name);
|
||||
int orig_column_name_len = strlen("VARIABLE_NAME");
|
||||
int packet_data_len = 0;
|
||||
char *ptr_name_start = name;
|
||||
const char *ptr_name_start = name;
|
||||
|
||||
if (strcasecmp(ptr_name_start, "value") == 0)
|
||||
{
|
||||
@ -6308,7 +6307,8 @@ blr_set_master_ssl(ROUTER_INSTANCE *router,
|
||||
else
|
||||
{
|
||||
/* Allocate SSL struct for backend connection */
|
||||
if ((server_ssl = MXS_CALLOC(1, sizeof(SSL_LISTENER))) == NULL)
|
||||
server_ssl = static_cast<SSL_LISTENER*>(MXS_CALLOC(1, sizeof(SSL_LISTENER)));
|
||||
if (server_ssl == NULL)
|
||||
{
|
||||
router->ssl_enabled = false;
|
||||
|
||||
@ -6481,8 +6481,9 @@ blr_slave_read_ste(ROUTER_INSTANCE *router,
|
||||
if (hdr.event_type == MARIADB10_START_ENCRYPTION_EVENT)
|
||||
{
|
||||
uint8_t *record_ptr = GWBUF_DATA(record);
|
||||
SLAVE_ENCRYPTION_CTX *new_encryption_ctx;
|
||||
new_encryption_ctx = MXS_CALLOC(1, sizeof(SLAVE_ENCRYPTION_CTX));
|
||||
void *mem = MXS_CALLOC(1, sizeof(SLAVE_ENCRYPTION_CTX));
|
||||
SLAVE_ENCRYPTION_CTX *new_encryption_ctx =
|
||||
static_cast<SLAVE_ENCRYPTION_CTX*>(mem);
|
||||
|
||||
if (!new_encryption_ctx)
|
||||
{
|
||||
@ -6545,7 +6546,7 @@ static bool blr_handle_simple_select_stmt(ROUTER_INSTANCE *router,
|
||||
{
|
||||
char *word;
|
||||
char *brkb;
|
||||
char *sep = " \t,=";
|
||||
const char *sep = " \t,=";
|
||||
|
||||
if ((word = strtok_r(select_stmt, sep, &brkb)) == NULL)
|
||||
{
|
||||
@ -7456,7 +7457,7 @@ static bool blr_handle_show_stmt(ROUTER_INSTANCE *router,
|
||||
{
|
||||
char *word;
|
||||
char *brkb;
|
||||
char *sep = " \t,=";
|
||||
const char *sep = " \t,=";
|
||||
if ((word = strtok_r(show_stmt, sep, &brkb)) == NULL)
|
||||
{
|
||||
MXS_ERROR("%s: Incomplete show query.", router->service->name);
|
||||
@ -7475,8 +7476,9 @@ static bool blr_handle_show_stmt(ROUTER_INSTANCE *router,
|
||||
}
|
||||
else
|
||||
{
|
||||
char *errmsg = "SHOW [FULL] BINARY LOGS needs the"
|
||||
" 'mariadb10_slave_gtid' option to be set.";
|
||||
const char *errmsg =
|
||||
"SHOW [FULL] BINARY LOGS needs the"
|
||||
" 'mariadb10_slave_gtid' option to be set.";
|
||||
MXS_ERROR("%s: %s",
|
||||
errmsg,
|
||||
router->service->name);
|
||||
@ -7678,7 +7680,7 @@ static bool blr_handle_set_stmt(ROUTER_INSTANCE *router,
|
||||
{
|
||||
char *word;
|
||||
char *brkb;
|
||||
char *sep = " \t,=";
|
||||
const char *sep = " \t,=";
|
||||
|
||||
if ((word = strtok_r(set_stmt, sep, &brkb)) == NULL)
|
||||
{
|
||||
@ -7976,7 +7978,7 @@ static bool blr_handle_admin_stmt(ROUTER_INSTANCE *router,
|
||||
{
|
||||
char *word;
|
||||
char *brkb;
|
||||
char *sep = " \t,=";
|
||||
const char *sep = " \t,=";
|
||||
|
||||
if (admin_opts == NULL || !admin_opts[0])
|
||||
{
|
||||
@ -8004,8 +8006,9 @@ static bool blr_handle_admin_stmt(ROUTER_INSTANCE *router,
|
||||
}
|
||||
else
|
||||
{
|
||||
char *errmsg = "PURGE BINARY LOGS needs the "
|
||||
"'mariadb10_slave_gtid' option to be set.";
|
||||
const char *errmsg =
|
||||
"PURGE BINARY LOGS needs the "
|
||||
"'mariadb10_slave_gtid' option to be set.";
|
||||
MXS_ERROR("%s: %s",
|
||||
errmsg,
|
||||
router->service->name);
|
||||
@ -9194,9 +9197,10 @@ static void blr_log_config_changes(ROUTER_INSTANCE *router,
|
||||
}
|
||||
|
||||
/* Prepare GTID msg */
|
||||
char *gtid_msg = change_master->use_mariadb10_gtid ?
|
||||
", MASTER_USE_GTID=Slave_pos" :
|
||||
"";
|
||||
const char *gtid_msg =
|
||||
change_master->use_mariadb10_gtid ?
|
||||
", MASTER_USE_GTID=Slave_pos" :
|
||||
"";
|
||||
|
||||
/* Log previous state and new changes */
|
||||
MXS_NOTICE("%s: 'CHANGE MASTER TO executed'. Previous state "
|
||||
@ -9244,10 +9248,10 @@ static bool blr_check_connecting_slave(const ROUTER_INSTANCE *router,
|
||||
enum blr_slave_check check)
|
||||
{
|
||||
int rv = true;
|
||||
char *err_msg = NULL;
|
||||
char *err_status = "HY000";
|
||||
const char *err_msg = NULL;
|
||||
const char *err_status = "HY000";
|
||||
int err_code = BINLOG_FATAL_ERROR_READING;
|
||||
char *msg_detail = "";
|
||||
const char *msg_detail = "";
|
||||
|
||||
switch (check)
|
||||
{
|
||||
@ -9657,7 +9661,8 @@ static bool blr_apply_changes(ROUTER_INSTANCE *router,
|
||||
}
|
||||
else
|
||||
{
|
||||
if (master_log_pos != NULL && pos != router->current_pos)
|
||||
if (master_log_pos != NULL &&
|
||||
pos != static_cast<long long>(router->current_pos))
|
||||
{
|
||||
snprintf(error,
|
||||
BINLOG_ERROR_MSG_LEN, "Can not set MASTER_LOG_POS to %s: "
|
@ -72,7 +72,7 @@ static struct option long_options[] =
|
||||
{0, 0, 0, 0}
|
||||
};
|
||||
#endif
|
||||
char *binlog_check_version = "2.2.1";
|
||||
const char *binlog_check_version = "2.2.1";
|
||||
|
||||
int
|
||||
maxscale_uptime()
|
@ -1,5 +1,5 @@
|
||||
if(BUILD_TESTS)
|
||||
add_executable(testbinlogrouter testbinlog.c ../blr.c ../blr_slave.c ../blr_master.c ../blr_file.c ../blr_cache.c)
|
||||
add_executable(testbinlogrouter testbinlog.cc ../blr.cc ../blr_slave.cc ../blr_master.cc ../blr_file.cc ../blr_cache.cc)
|
||||
target_link_libraries(testbinlogrouter maxscale-common ${PCRE_LINK_FLAGS} uuid)
|
||||
add_test(NAME TestBinlogRouter COMMAND ./testbinlogrouter WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
endif()
|
||||
|
@ -132,7 +132,8 @@ int main(int argc, char **argv)
|
||||
serviceAddBackend(service, server);
|
||||
}
|
||||
|
||||
if ((inst = MXS_CALLOC(1, sizeof(ROUTER_INSTANCE))) == NULL)
|
||||
inst = static_cast<ROUTER_INSTANCE*>(MXS_CALLOC(1, sizeof(ROUTER_INSTANCE)));
|
||||
if (inst == NULL)
|
||||
{
|
||||
mxs_log_flush_sync();
|
||||
mxs_log_finish();
|
Reference in New Issue
Block a user