diff --git a/src/client/sock.c b/src/client/sock.c
index ef35166bab13162e84156facbd75d83fdd937b85..d4596cd7a858cda76e1144492c5e2cf71c11291b 100644 (file)
--- a/src/client/sock.c
+++ b/src/client/sock.c
#include "utils/error.h"
#include "utils/strbuf.h"
#include "utils/proto.h"
+#include "utils/os.h"
#include <arpa/inet.h>
"for server response");
if (rstatus == SDB_CONNECTION_ERROR) {
- sdb_log(SDB_LOG_ERR, "Access denied for user '%s'", username);
+ sdb_log(SDB_LOG_ERR, "Access denied for user '%s': %s",
+ username, sdb_strbuf_string(buf));
status = -((int)rstatus);
}
else if (rstatus != SDB_CONNECTION_OK) {
sdb_client_send(sdb_client_t *client,
uint32_t cmd, uint32_t msg_len, const char *msg)
{
+ char buf[2 * sizeof(uint32_t) + msg_len];
+
if ((! client) || (! client->fd))
return -1;
+ if (sdb_proto_marshal(buf, sizeof(buf), cmd, msg_len, msg) < 0)
+ return -1;
- return sdb_proto_send_msg(client->fd, cmd, msg_len, msg);
+ return sdb_write(client->fd, sizeof(buf), buf);
} /* sdb_client_send */
ssize_t
while (42) {
ssize_t status;
- if (sdb_proto_select(client->fd, SDB_PROTO_SELECTIN))
+ if (sdb_select(client->fd, SDB_SELECTIN))
return -1;
errno = 0;