50 |
*/ |
*/ |
51 |
int check_mysql(Socket_T s) { |
int check_mysql(Socket_T s) { |
52 |
|
|
53 |
unsigned char buf[STRLEN]; |
unsigned char buf[STRLEN]; |
54 |
|
|
55 |
unsigned char requestLogin[10] = { |
unsigned char requestLogin[10] = { |
56 |
0x06, /** Packet Length */ |
0x06, /** Packet Length */ |
104 |
|
|
105 |
ASSERT(s); |
ASSERT(s); |
106 |
|
|
107 |
if(socket_read(s, (unsigned char *)buf, sizeof(buf)) <= 0) { |
if(socket_readln(s, (char *)buf, sizeof(buf)) <= 0) { |
108 |
log("MYSQL: error receiving greeting -- %s\n", STRERROR); |
log("MYSQL: error receiving greeting -- %s\n", STRERROR); |
109 |
return FALSE; |
return FALSE; |
110 |
} |
} |
111 |
|
|
112 |
if(socket_write(s, (unsigned char *)requestLogin, sizeof(requestLogin)) < 0) { |
/* Clear any extra data read from the server */ |
113 |
|
socket_reset(s); |
114 |
|
|
115 |
|
if(socket_write(s, requestLogin, sizeof(requestLogin)) < 0) { |
116 |
log("MYSQL: error sending login -- %s\n", STRERROR); |
log("MYSQL: error sending login -- %s\n", STRERROR); |
117 |
return FALSE; |
return FALSE; |
118 |
} |
} |
119 |
|
|
120 |
if(socket_read(s, (unsigned char *)buf, sizeof(buf)) <= 6) { |
/* read just first few bytes which contains enough information */ |
121 |
|
if(socket_read(s, buf, 7) <= 6) { |
122 |
log("MYSQL: error receiving login response -- %s\n", STRERROR); |
log("MYSQL: error receiving login response -- %s\n", STRERROR); |
123 |
return FALSE; |
return FALSE; |
124 |
} |
} |
125 |
|
|
126 |
|
/* Clear any extra data read from the server */ |
127 |
|
socket_reset(s); |
128 |
|
|
129 |
/* Compare Packet Number: */ |
/* Compare Packet Number: */ |
130 |
if(buf[3] != 0x02) |
if(buf[3] != 0x02) |
131 |
{ |
{ |
143 |
return FALSE; |
return FALSE; |
144 |
} |
} |
145 |
|
|
146 |
if(socket_read(s, (unsigned char *)buf, sizeof(buf)) <= 0) { |
if(socket_read(s, buf, sizeof(responsePing)) <= 0) { |
147 |
log("MYSQL: error receiving ping response -- %s\n", STRERROR); |
log("MYSQL: error receiving ping response -- %s\n", STRERROR); |
148 |
return FALSE; |
return FALSE; |
149 |
} |
} |
150 |
|
|
151 |
|
/* Clear any extra data read from the server */ |
152 |
|
socket_reset(s); |
153 |
|
|
154 |
if(memcmp((unsigned char *)buf, |
if(memcmp((unsigned char *)buf, |
155 |
(unsigned char *)responsePing, sizeof(responsePing))) { |
(unsigned char *)responsePing, sizeof(responsePing))) { |
156 |
log("MYSQL: ping failed\n"); |
log("MYSQL: ping failed\n"); |