index b91393997d6588cb631779230dc57b19cdf0ea22..dba431049ac8af878f2c6df85779d57012531218 100644 (file)
sdb_log(SDB_LOG_DEBUG, "frontend: Handling command %u (len: %u)",
conn->cmd, conn->cmd_len);
- if ((! conn->username) && (conn->cmd != CONNECTION_STARTUP)) {
- const char *errmsg = "Authentication required";
- sdb_strbuf_sprintf(conn->errbuf, errmsg);
- sdb_connection_send(conn, CONNECTION_ERROR,
- (uint32_t)strlen(errmsg), errmsg);
- return -1;
- }
-
switch (conn->cmd) {
case CONNECTION_PING:
status = sdb_connection_ping(conn);
conn->cmd = connection_get_int32(conn, 0);
conn->cmd_len = connection_get_int32(conn, sizeof(uint32_t));
- if (conn->cmd == CONNECTION_IDLE) {
+ if ((! conn->username) && (conn->cmd != CONNECTION_STARTUP)) {
+ const char *errmsg = "Authentication required";
+ sdb_strbuf_sprintf(conn->errbuf, errmsg);
+ sdb_connection_send(conn, CONNECTION_ERROR,
+ (uint32_t)strlen(errmsg), errmsg);
+ conn->skip_len += conn->cmd_len;
+ conn->cmd = CONNECTION_IDLE;
+ conn->cmd_len = 0;
+ }
+ else if (conn->cmd == CONNECTION_IDLE) {
const char *errmsg = "Invalid command 0";
sdb_strbuf_sprintf(conn->errbuf, errmsg);
sdb_connection_send(conn, CONNECTION_ERROR,