summaryrefslogtreecommitdiffstats
path: root/src/server/ipc.c
diff options
context:
space:
mode:
authorsr2012-08-27 21:02:49 +0200
committersr2012-08-27 21:02:49 +0200
commitde01183aa40dbbd274e18f681d8a255a886f493e (patch)
treef614e764704aec26df15df68c633178064c60a41 /src/server/ipc.c
parent[KERNEL] Make rtt threshold relative (diff)
downloaddnbd3-de01183aa40dbbd274e18f681d8a255a886f493e.tar.gz
dnbd3-de01183aa40dbbd274e18f681d8a255a886f493e.tar.xz
dnbd3-de01183aa40dbbd274e18f681d8a255a886f493e.zip
[KERNEL] Refactor and extend sysfs (add data the server will need in proxy mode)
[SERVER] Use MSG_MORE instead of cork/uncork to save two syscalls [KERNEL] Fail-Counter for alt servers, ignore servers that fail too often [KERNEL] Add new alt servers to list, instead of replacing the old list [*] Add CMD_LATEST_RID to tell client about new revisions
Diffstat (limited to 'src/server/ipc.c')
-rw-r--r--src/server/ipc.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/server/ipc.c b/src/server/ipc.c
index 5da811c..ece6f07 100644
--- a/src/server/ipc.c
+++ b/src/server/ipc.c
@@ -403,9 +403,10 @@ void dnbd3_ipc_send(int cmd)
if (cmd == IPC_INFO && header.size > 0)
{
- char* buf = malloc(header.size);
+ char* buf = malloc(header.size+1);
size = recv(client_sock, buf, header.size, MSG_WAITALL);
xmlDocPtr doc = xmlReadMemory(buf, size, "noname.xml", NULL, 0);
+ buf[header.size] = 0;
if (doc)
{
@@ -479,9 +480,10 @@ void dnbd3_ipc_send(int cmd)
// xmlDocDump(stdout, doc);
- } else
+ }
+ else
{
- printf("ERROR: Failed to parse reply\n");
+ printf("ERROR: Failed to parse reply\n-----------\n%s\n-------------\n", buf);
}
}