Improved support for compression, issue #219

Now compression on backend seems working

Fixed issue #209
pull/248/head
René Cannaò 11 years ago
parent c1678558c1
commit ebf72f6682

@ -356,7 +356,7 @@ int MySQL_Session::handler() {
mybe=find_or_create_backend(current_hostgroup);
//if (server_myds!=mybe->server_myds) {
// server_myds=mybe->server_myds;
//}
//}
mybe->server_myds->PSarrayOUT->add(pkt.ptr, pkt.size);
client_myds->setDSS_STATE_QUERY_SENT_NET();
} else {
@ -618,7 +618,11 @@ __exit_DSS__STATE_NOT_INITIALIZED:
to_process=0;
}
*/
if (wrong_pass==true) return -1;
if (wrong_pass==true) {
client_myds->array2buffer_full();
client_myds->write_to_net();
return -1;
}
return 0;
}

@ -486,6 +486,13 @@ void MySQL_Data_Stream::generate_compressed_packet() {
while (i<PSarrayOUT->len && total_size<MAX_COMPRESSED_PACKET_SIZE) {
p=PSarrayOUT->index(i);
total_size+=p->size;
if (i==0) {
mysql_hdr hdr;
memcpy(&hdr,p->ptr,sizeof(mysql_hdr));
if (hdr.pkt_id==0) {
myconn->compression_pkt_id=-1;
}
}
i++;
}
if (i>=2) {
@ -518,8 +525,8 @@ void MySQL_Data_Stream::generate_compressed_packet() {
queueOUT.pkt.ptr=l_alloc(queueOUT.pkt.size);
mysql_hdr hdr;
hdr.pkt_length=destLen;
//hdr.pkt_id=++myconn->compression_pkt_id;
hdr.pkt_id=1;
hdr.pkt_id=++myconn->compression_pkt_id;
//hdr.pkt_id=1;
memcpy((unsigned char *)queueOUT.pkt.ptr,&hdr,sizeof(mysql_hdr));
hdr.pkt_length=total_size;
memcpy((unsigned char *)queueOUT.pkt.ptr+4,&hdr,3);

Loading…
Cancel
Save