diff options
author | sr | 2013-01-04 21:21:24 +0100 |
---|---|---|
committer | sr | 2013-01-04 21:21:24 +0100 |
commit | 7f47f93f692fd9cc4eef562f954413680bd8e56d (patch) | |
tree | abe1e9e12b37d1d7ff656edfcda920d7f2c060b7 /src/server/rpc.c | |
parent | [SERVER] pthread_spin_lock != pthread_spin_unlock (diff) | |
download | dnbd3-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.c | 16 |
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; } |