Merging SESvars with develop.
This commit is contained in:
@ -109,7 +109,6 @@ DCB *rval;
|
|||||||
#endif
|
#endif
|
||||||
rval->dcb_role = role;
|
rval->dcb_role = role;
|
||||||
#if 1
|
#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_write_lock, "DCB write mutex");
|
||||||
simple_mutex_init(&rval->dcb_read_lock, "DCB read mutex");
|
simple_mutex_init(&rval->dcb_read_lock, "DCB read mutex");
|
||||||
rval->dcb_write_active = false;
|
rval->dcb_write_active = false;
|
||||||
@ -303,8 +302,8 @@ dcb_final_free(DCB *dcb)
|
|||||||
if (dcb->remote)
|
if (dcb->remote)
|
||||||
free(dcb->remote);
|
free(dcb->remote);
|
||||||
bitmask_free(&dcb->memdata.bitmask);
|
bitmask_free(&dcb->memdata.bitmask);
|
||||||
simple_mutex_done(&dcb->dcb_read_lock);
|
simple_mutex_done(&dcb->dcb_read_lock);
|
||||||
simple_mutex_done(&dcb->dcb_write_lock);
|
simple_mutex_done(&dcb->dcb_write_lock);
|
||||||
free(dcb);
|
free(dcb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -297,21 +297,11 @@ void gw_str_xor(
|
|||||||
const uint8_t *input1,
|
const uint8_t *input1,
|
||||||
const uint8_t *input2,
|
const uint8_t *input2,
|
||||||
unsigned int len);
|
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);
|
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_hex2bin(uint8_t *out, const char *in, unsigned int len);
|
||||||
int gw_generate_random_str(char *output, int len);
|
int gw_generate_random_str(char *output, int len);
|
||||||
char *gw_strend(register const char *s);
|
char *gw_strend(register const char *s);
|
||||||
int setnonblocking(int fd);
|
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);
|
int gw_read_gwbuff(DCB *dcb, GWBUF **head, int b);
|
||||||
GWBUF* gw_MySQL_get_next_stmt(GWBUF** p_readbuf);
|
GWBUF* gw_MySQL_get_next_stmt(GWBUF** p_readbuf);
|
||||||
>>>>>>> 67d9b3afb94559f13b44780c9c54760b667a068a
|
|
||||||
|
@ -1387,6 +1387,19 @@ static void mysql_sescmd_done(
|
|||||||
* Read session commands from property list. If command is already replied,
|
* Read session commands from property list. If command is already replied,
|
||||||
* discard packet. Else send reply to client. In both cases move cursor forward
|
* discard packet. Else send reply to client. In both cases move cursor forward
|
||||||
* until all session command replies are handled.
|
* 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(
|
static GWBUF* sescmd_cursor_process_replies(
|
||||||
DCB* client_dcb,
|
DCB* client_dcb,
|
||||||
@ -1773,4 +1786,4 @@ static uint8_t getCapabilities (
|
|||||||
|
|
||||||
return_rc:
|
return_rc:
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
Reference in New Issue
Block a user