summaryrefslogtreecommitdiffstats
path: root/src/server/rpc.c
diff options
context:
space:
mode:
authorsr2013-01-04 21:21:24 +0100
committersr2013-01-04 21:21:24 +0100
commit7f47f93f692fd9cc4eef562f954413680bd8e56d (patch)
treeabe1e9e12b37d1d7ff656edfcda920d7f2c060b7 /src/server/rpc.c
parent[SERVER] pthread_spin_lock != pthread_spin_unlock (diff)
downloaddnbd3-7f47f93f692fd9cc4eef562f954413680bd8e56d.tar.gz
dnbd3-7f47f93f692fd9cc4eef562f954413680bd8e56d.tar.xz
dnbd3-7f47f93f692fd9cc4eef562f954413680bd8e56d.zip
[SERVER] RPC: Fix return code when adding and removing trusted name spaces
Diffstat (limited to 'src/server/rpc.c')
-rw-r--r--src/server/rpc.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/src/server/rpc.c b/src/server/rpc.c
index 3bd4a07..2cc688b 100644
--- a/src/server/rpc.c
+++ b/src/server/rpc.c
@@ -557,20 +557,24 @@ static int rpc_receive(int client_sock)
if (cmd == RPC_ADD_NS)
{
dnbd3_trusted_server_t *server = dnbd3_get_trusted_server(host, TRUE, comment);
- if (server)
- dnbd3_add_trusted_namespace(server, ns, flags);
+ if (server && dnbd3_add_trusted_namespace(server, ns, flags))
+ rpc_error = ERROR_OK;
+ else
+ rpc_error = ERROR_UNSPECIFIED_ERROR;
}
else
{
dnbd3_trusted_server_t *server = dnbd3_get_trusted_server(host, FALSE, comment);
- if (server)
- dnbd3_del_trusted_namespace(server, ns);
+ if (server && dnbd3_del_trusted_namespace(server, ns))
+ rpc_error = ERROR_OK;
+ else
+ rpc_error = ERROR_FILE_NOT_FOUND;
}
}
pthread_spin_unlock(&_spinlock);
FREE_POINTERLIST;
} END_FOR_EACH;
-
+ if (rpc_error == ERROR_OK) dnbd3_save_config();
}
else
rpc_error = ERROR_INVALID_XML;
@@ -579,7 +583,7 @@ static int rpc_receive(int client_sock)
default:
memlogf("[ERROR] Unknown RPC command: %u", (unsigned int)header.cmd);
- rpc_error = htonl(ERROR_UNKNOWN_COMMAND);
+ rpc_error = ERROR_UNKNOWN_COMMAND;
break;
}