diff --git a/include/maxscale/buffer.h b/include/maxscale/buffer.h index 0b4637fc6..0159ba855 100644 --- a/include/maxscale/buffer.h +++ b/include/maxscale/buffer.h @@ -131,7 +131,7 @@ typedef struct gwbuf gwbuf_type_t gwbuf_type; /*< buffer's data type information */ HINT *hint; /*< Hint data for this buffer */ BUF_PROPERTY *properties; /*< Buffer properties */ - struct server *server; + struct server *server; /*< The target server where the buffer is executed */ } GWBUF; /*< diff --git a/server/core/dcb.c b/server/core/dcb.c index c252d7bb8..f78135742 100644 --- a/server/core/dcb.c +++ b/server/core/dcb.c @@ -879,6 +879,8 @@ int dcb_read(DCB *dcb, /* */ /*< Append read data to the gwbuf */ *head = gwbuf_append(*head, buffer); + /*< Assign the target server for the gwbuf */ + buffer->server = dcb->server; } else { diff --git a/server/modules/filter/tpmfilter/tpmfilter.c b/server/modules/filter/tpmfilter/tpmfilter.c index 4c7511794..42d709384 100644 --- a/server/modules/filter/tpmfilter/tpmfilter.c +++ b/server/modules/filter/tpmfilter/tpmfilter.c @@ -350,9 +350,9 @@ newSession(FILTER *instance, SESSION *session) atomic_add(&my_instance->sessions, 1); my_session->max_sql_size = default_sql_size; // default max query size of 4k. - my_session->sql = (char*)MXS_MALLOC(my_session->max_sql_size); + my_session->sql = (char*)MXS_CALLOC(my_session->max_sql_size, sizeof(char)); memset(my_session->sql, 0x00, my_session->max_sql_size); - my_session->buf = (char*)MXS_MALLOC(buf_size); + my_session->buf = (char*)MXS_CALLOC(buf_size, sizeof(char)); my_session->sql_index = 0; my_session->n_statements = 0; my_session->total.tv_sec = 0; @@ -519,7 +519,7 @@ routeQuery(FILTER *instance, void *session, GWBUF *queue) } if (new_sql_size > my_session->max_sql_size) { - char* new_sql = (char*)MXS_MALLOC(new_sql_size); + char* new_sql = (char*)MXS_CALLOC(new_sql_size, sizeof(char)); if (new_sql == NULL) { MXS_ERROR("Memory allocation failure."); @@ -590,7 +590,7 @@ clientReply(FILTER *instance, void *session, GWBUF *reply) my_instance->delimiter, reply->server->unique_name, my_instance->delimiter, - reply->server->name, + my_session->userName, my_instance->delimiter, millis, my_instance->delimiter, diff --git a/server/modules/protocol/MySQL/MySQLBackend/mysql_backend.c b/server/modules/protocol/MySQL/MySQLBackend/mysql_backend.c index 2b0d90df5..c6ffd3656 100644 --- a/server/modules/protocol/MySQL/MySQLBackend/mysql_backend.c +++ b/server/modules/protocol/MySQL/MySQLBackend/mysql_backend.c @@ -895,7 +895,6 @@ gw_read_and_write(DCB *dcb) if (session_ok_to_route(dcb)) { gwbuf_set_type(stmt, GWBUF_TYPE_MYSQL); - stmt->server = dcb->server; session->service->router->clientReply(session->service->router_instance, session->router_session, stmt, dcb);