index b4f170bb1d759c2289148d2ce31e8006277110eb..a146e29711c3aa1cc4de78f59672d43ee52091e6 100644 (file)
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;
}
- /* reset */
- sdb_strbuf_sprintf(conn->errbuf, "");
-
switch (conn->cmd) {
case CONNECTION_PING:
status = sdb_connection_ping(conn);
assert(conn && (conn->cmd == CONNECTION_IDLE) && (! conn->cmd_len));
+ /* reset */
+ sdb_strbuf_sprintf(conn->errbuf, "");
+
conn->cmd = connection_get_int32(conn, 0);
conn->cmd_len = connection_get_int32(conn, sizeof(uint32_t));
len = 2 * sizeof(uint32_t);
- if (conn->cmd == CONNECTION_IDLE)
+ if (conn->cmd == CONNECTION_IDLE) {
len += conn->cmd_len;
+ conn->cmd_len = 0;
+ }
sdb_strbuf_skip(conn->buf, 0, len);
return 0;
} /* command_init */