From d81ce0f57da8db0d0e5fe74c29d112a81a5f068b Mon Sep 17 00:00:00 2001 From: Sebastian Harl Date: Thu, 23 Jan 2014 09:12:47 +0100 Subject: [PATCH] client, sysdb: Improved error reporting. --- src/client/sock.c | 6 +++--- src/tools/sysdb/command.c | 12 +++++++++++- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/client/sock.c b/src/client/sock.c index a2417ad..c722add 100644 --- a/src/client/sock.c +++ b/src/client/sock.c @@ -222,14 +222,14 @@ sdb_client_recv(sdb_client_t *client, size_t data_offset = sdb_strbuf_len(buf); + if (code) + *code = UINT32_MAX; + if ((! client) || (! client->fd) || (! buf)) { errno = EBADF; return -1; } - if (code) - *code = UINT32_MAX; - while (42) { ssize_t status; diff --git a/src/tools/sysdb/command.c b/src/tools/sysdb/command.c index 30e6419..f948d3a 100644 --- a/src/tools/sysdb/command.c +++ b/src/tools/sysdb/command.c @@ -33,8 +33,11 @@ #include "tools/sysdb/input.h" #include "frontend/proto.h" +#include "utils/error.h" #include "utils/strbuf.h" +#include + #include #include #include @@ -66,6 +69,7 @@ sdb_command_exec(sdb_input_t *input) if (query_len) { sdb_strbuf_t *recv_buf; + const char *result; uint32_t rcode = 0; recv_buf = sdb_strbuf_create(1024); @@ -81,7 +85,13 @@ sdb_command_exec(sdb_input_t *input) if (rcode == UINT32_MAX) printf("ERROR: "); - printf("%s\n", sdb_strbuf_string(recv_buf)); + result = sdb_strbuf_string(recv_buf); + if (result && *result) + printf("%s\n", result); + else if (rcode == UINT32_MAX) { + char errbuf[1024]; + printf("%s\n", sdb_strerror(errno, errbuf, sizeof(errbuf))); + } sdb_strbuf_destroy(recv_buf); } -- 2.30.2