Fixed PgSQL_Session::handler___status_NONE_or_default

pull/5044/head
Rahim Kanji 10 months ago
parent 4d195adc89
commit 8021121cfa

@ -2011,24 +2011,26 @@ void PgSQL_Session::handler___status_NONE_or_default(PtrSize_t& pkt) {
sprintf(buf, "localhost");
break;
}
if (pkt.size == 5) {
unsigned char c = *((unsigned char*)pkt.ptr + sizeof(mysql_hdr));
if (c == _MYSQL_COM_QUIT) {
proxy_error("Unexpected COM_QUIT from client %s . Session_status: %d , client_status: %d Disconnecting it\n", buf, status, client_myds->status);
if (GloPgSQL_Logger) { GloPgSQL_Logger->log_audit_entry(PROXYSQL_MYSQL_AUTH_QUIT, this, NULL); }
proxy_debug(PROXY_DEBUG_MYSQL_COM, 5, "Got COM_QUIT packet\n");
l_free(pkt.size, pkt.ptr);
if (thread) {
thread->status_variables.stvar[st_var_unexpected_com_quit]++;
}
return;
const char cmd = (pkt.ptr && pkt.size > 0) ? *((unsigned char*)pkt.ptr) : '?'; // unknown command
proxy_error("Unexpected packet '%c' from client %s. Session_status: %d, client_ssl_status: %d. Disconnecting it\n",
cmd, buf, status, client_myds->ssl_status);
if (pkt.size == 5 && cmd == 'X') {
if (GloPgSQL_Logger) {
GloPgSQL_Logger->log_audit_entry(PROXYSQL_MYSQL_AUTH_QUIT, this, NULL);
}
proxy_debug(PROXY_DEBUG_MYSQL_COM, 5, "Got QUIT packet\n");
if (thread) {
thread->status_variables.stvar[st_var_unexpected_com_quit]++;
}
} else {
if (thread) {
thread->status_variables.stvar[st_var_unexpected_packet]++;
}
}
proxy_error2(10001, "Unexpected packet from client %s . Session_status: %d , client_status: %d Disconnecting it\n", buf, status, client_myds->status);
if (thread) {
thread->status_variables.stvar[st_var_unexpected_packet]++;
}
return;
l_free(pkt.size, pkt.ptr);
}
// this function was inline inside PgSQL_Session::get_pkts_from_client

Loading…
Cancel
Save