Initial work on local authentication
This commit is contained in:
@ -269,26 +269,25 @@ MySQLSendHandshake(DCB* dcb)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int gw_mysql_do_authentication(DCB *dcb, GWBUF *queue) {
|
||||||
|
MySQLProtocol *protocol = NULL;
|
||||||
|
uint32_t client_capabilities;
|
||||||
|
int compress = -1;
|
||||||
|
int connect_with_db = -1;
|
||||||
|
|
||||||
|
if (dcb)
|
||||||
|
protocol = DCB_PROTOCOL(dcb, MySQLProtocol);
|
||||||
|
|
||||||
int gw_mysql_do_authentication(DCB *dcb) {
|
memcpy(&protocol->client_capabilities, GWBUF_DATA(queue) + 4, 4);
|
||||||
int packet_no;
|
|
||||||
MySQLProtocol *protocol = DCB_PROTOCOL(dcb, MySQLProtocol);
|
|
||||||
|
|
||||||
// read client auth
|
connect_with_db = GW_MYSQL_CAPABILITIES_CONNECT_WITH_DB & gw_mysql_get_byte4(&protocol->client_capabilities);
|
||||||
packet_no = do_read_dcb(dcb);
|
compress = GW_MYSQL_CAPABILITIES_COMPRESS & gw_mysql_get_byte4(&protocol->client_capabilities);
|
||||||
|
|
||||||
// if we received all data!
|
if (connect_with_db) {
|
||||||
protocol->state = MYSQL_AUTH_RECV;
|
fprintf(stderr, "<<< Client is connected with db\n");
|
||||||
|
} else {
|
||||||
fprintf(stderr, "DoAuth DCB [%i], EPOLLIN Protocol next state MYSQL_AUTH_RECV [%i], Packet #%i for socket %i, scramble [%s]\n", dcb->state, protocol->state, packet_no, dcb->fd, protocol->scramble);
|
fprintf(stderr, "<<< CLient is NOT connected with db\n");
|
||||||
|
}
|
||||||
//write to client mysql AUTH_OK packet, packet n. is 2
|
|
||||||
mysql_send_ok(dcb, 2, 0, NULL);
|
|
||||||
|
|
||||||
protocol->state = MYSQL_IDLE;
|
|
||||||
|
|
||||||
fprintf(stderr, "DCB [%i], EPOLLIN Protocol next state MYSQL_IDLE [%i], Packet #%i for socket %i, scramble [%s]\n", dcb->state, protocol->state, packet_no, dcb->fd, protocol->scramble);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user