dcb's fd wasn't stored to client's protocol structure. Changed mysql_protocol_init to take fd as the Second argument.

This commit is contained in:
vraatikka 2013-09-14 23:01:26 +03:00
parent 4815856017
commit db7004e6ae
4 changed files with 9 additions and 8 deletions

View File

@ -239,7 +239,7 @@ typedef enum
#endif
void gw_mysql_close(MySQLProtocol **ptr);
MySQLProtocol* mysql_protocol_init(DCB* dcb);
MySQLProtocol* mysql_protocol_init(DCB* dcb, int fd);
MySQLProtocol *gw_mysql_init(MySQLProtocol *data);
void gw_mysql_close(MySQLProtocol **ptr);
int gw_receive_backend_auth(MySQLProtocol *conn);

View File

@ -464,7 +464,7 @@ static int gw_error_backend_event(DCB *dcb) {
"Writing to backend failed.");
return 0;
}
}
skygw_log_write_flush(
LOGFILE_ERROR,
"%lu [gw_error_backend_event] Some error occurred in backend.",
@ -503,7 +503,7 @@ static int gw_create_backend_connection(
int rv = -1;
int fd = -1;
protocol = mysql_protocol_init(backend_dcb);
protocol = mysql_protocol_init(backend_dcb, -1);
ss_dassert(protocol != NULL);
if (protocol == NULL) {
@ -517,8 +517,6 @@ static int gw_create_backend_connection(
/** if succeed, fd > 0, -1 otherwise */
rv = gw_do_connect_to_backend(server->name, server->port, &fd);
/** Assign fd with protocol */
protocol->fd = fd;
/** Assign protocol with backend_dcb */
backend_dcb->protocol = protocol;

View File

@ -957,7 +957,7 @@ int gw_MySQLAccept(DCB *listener)
client_dcb->fd = c_sock;
client_dcb->remote = strdup(inet_ntoa(local.sin_addr));
protocol = mysql_protocol_init(client_dcb);
protocol = mysql_protocol_init(client_dcb, c_sock);
ss_dassert(protocol != NULL);
if (protocol == NULL) {

View File

@ -54,7 +54,8 @@ extern int gw_error_backend_event(DCB *dcb);
*
*/
MySQLProtocol* mysql_protocol_init(
DCB* dcb)
DCB* dcb,
int fd)
{
MySQLProtocol* p;
@ -78,6 +79,8 @@ MySQLProtocol* mysql_protocol_init(
p->protocol_chk_top = CHK_NUM_PROTOCOL;
p->protocol_chk_tail = CHK_NUM_PROTOCOL;
#endif
/** Assign fd with protocol */
p->fd = fd;
p->owner_dcb = dcb;
CHK_PROTOCOL(p);
return_p:
@ -547,7 +550,7 @@ int gw_do_connect_to_backend(
skygw_log_write_flush(
LOGFILE_ERROR,
"%lu [gw_do_connect_to_backend] Establishing connection "
"to back-end server failed. Socket creation failed due "
"to backend server failed. Socket creation failed due "
"%d, %s.",
pthread_self(),
eno,