index 028f3776966b233ec2371b52653f10ce1752c5c0..940f61b493c0c0f284eb36fec4ae4d26ae07822e 100644 (file)
assert(conn && conn->cmd && conn->cmd_len);
/* XXX */
sdb_strbuf_skip(conn->buf, conn->cmd_len);
+ conn->cmd = conn->cmd_len = 0;
return 0;
} /* command_handle */
while (42) {
ssize_t status = connection_read(conn);
+
+ if ((! conn->cmd) && (! conn->cmd_len)
+ && (sdb_strbuf_len(conn->buf) >= 2 * sizeof(int32_t)))
+ command_init(conn);
+ if (conn->cmd_len && (sdb_strbuf_len(conn->buf) >= conn->cmd_len))
+ command_handle(conn);
+
if (status <= 0)
break;
n += status;
-
- if (conn->cmd_len && (sdb_strbuf_len(conn->buf) >= conn->cmd_len))
- command_handle(conn);
- else if (sdb_strbuf_len(conn->buf) >= 2 * sizeof(int32_t))
- command_init(conn);
}
return n;
} /* sdb_connection_read */