From 72a17e5fe22f4745aa8f2d9ed2636d611f32b531 Mon Sep 17 00:00:00 2001 From: VilhoRaatikka Date: Tue, 18 Mar 2014 10:28:34 +0200 Subject: [PATCH] Merging SESvars with develop. --- server/core/dcb.c | 5 ++--- .../include/mysql_client_server_protocol.h | 12 +----------- .../routing/readwritesplit/readwritesplit.c | 15 ++++++++++++++- 3 files changed, 17 insertions(+), 15 deletions(-) diff --git a/server/core/dcb.c b/server/core/dcb.c index 7ab4efb2f..7c648ccd6 100644 --- a/server/core/dcb.c +++ b/server/core/dcb.c @@ -109,7 +109,6 @@ DCB *rval; #endif rval->dcb_role = role; #if 1 - //let's call simple_mutex_done in dcb_final_free simple_mutex_init(&rval->dcb_write_lock, "DCB write mutex"); simple_mutex_init(&rval->dcb_read_lock, "DCB read mutex"); rval->dcb_write_active = false; @@ -303,8 +302,8 @@ dcb_final_free(DCB *dcb) if (dcb->remote) free(dcb->remote); bitmask_free(&dcb->memdata.bitmask); - simple_mutex_done(&dcb->dcb_read_lock); - simple_mutex_done(&dcb->dcb_write_lock); + simple_mutex_done(&dcb->dcb_read_lock); + simple_mutex_done(&dcb->dcb_write_lock); free(dcb); } diff --git a/server/modules/include/mysql_client_server_protocol.h b/server/modules/include/mysql_client_server_protocol.h index a6a0519c4..3ad4502eb 100644 --- a/server/modules/include/mysql_client_server_protocol.h +++ b/server/modules/include/mysql_client_server_protocol.h @@ -297,21 +297,11 @@ void gw_str_xor( const uint8_t *input1, const uint8_t *input2, unsigned int len); -<<<<<<< HEAD -char *gw_bin2hex(char *out, const uint8_t *in, unsigned int len); -int gw_hex2bin(uint8_t *out, const char *in, unsigned int len); -int gw_generate_random_str(char *output, int len); -char *gw_strend(register const char *s); -int setnonblocking(int fd); -int setipaddress(struct in_addr *a, char *p); -int gw_read_gwbuff(DCB *dcb, GWBUF **head, int b); -======= char *gw_bin2hex(char *out, const uint8_t *in, unsigned int len); int gw_hex2bin(uint8_t *out, const char *in, unsigned int len); int gw_generate_random_str(char *output, int len); char *gw_strend(register const char *s); int setnonblocking(int fd); -void setipaddress(struct in_addr *a, char *p); +int setipaddress(struct in_addr *a, char *p); int gw_read_gwbuff(DCB *dcb, GWBUF **head, int b); GWBUF* gw_MySQL_get_next_stmt(GWBUF** p_readbuf); ->>>>>>> 67d9b3afb94559f13b44780c9c54760b667a068a diff --git a/server/modules/routing/readwritesplit/readwritesplit.c b/server/modules/routing/readwritesplit/readwritesplit.c index 0f68a11e7..dddb65808 100644 --- a/server/modules/routing/readwritesplit/readwritesplit.c +++ b/server/modules/routing/readwritesplit/readwritesplit.c @@ -1387,6 +1387,19 @@ static void mysql_sescmd_done( * Read session commands from property list. If command is already replied, * discard packet. Else send reply to client. In both cases move cursor forward * until all session command replies are handled. + * + * Cases that are expected to happen and which are handled: + * s = response not yet replied to client, S = already replied response, + * q = query + * 1. q+ for example : select * from mysql.user + * 2. s+ for example : set autocommit=1 + * 3. S+ + * 4. sq+ + * 5. Sq+ + * 6. Ss+ + * 7. Ss+q+ + * 8. S+q+ + * 9. s+q+ */ static GWBUF* sescmd_cursor_process_replies( DCB* client_dcb, @@ -1773,4 +1786,4 @@ static uint8_t getCapabilities ( return_rc: return rc; -} +} \ No newline at end of file