summaryrefslogtreecommitdiff
path: root/source3/lib/serverid.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/lib/serverid.c')
-rw-r--r--source3/lib/serverid.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/source3/lib/serverid.c b/source3/lib/serverid.c
index c1b87f7929..6d8a3c004f 100644
--- a/source3/lib/serverid.c
+++ b/source3/lib/serverid.c
@@ -230,13 +230,14 @@ struct serverid_exists_state {
bool exists;
};
-static int server_exists_parse(TDB_DATA key, TDB_DATA data, void *priv)
+static void server_exists_parse(TDB_DATA key, TDB_DATA data, void *priv)
{
struct serverid_exists_state *state =
(struct serverid_exists_state *)priv;
if (data.dsize != sizeof(struct serverid_data)) {
- return -1;
+ state->exists = false;
+ return;
}
/*
@@ -245,7 +246,6 @@ static int server_exists_parse(TDB_DATA key, TDB_DATA data, void *priv)
*/
state->exists = (memcmp(&state->id->unique_id, data.dptr,
sizeof(state->id->unique_id)) == 0);
- return 0;
}
bool serverid_exists(const struct server_id *id)
@@ -254,6 +254,7 @@ bool serverid_exists(const struct server_id *id)
struct serverid_exists_state state;
struct serverid_key key;
TDB_DATA tdbkey;
+ NTSTATUS status;
if (procid_is_me(id)) {
return true;
@@ -274,7 +275,8 @@ bool serverid_exists(const struct server_id *id)
state.id = id;
state.exists = false;
- if (dbwrap_parse_record(db, tdbkey, server_exists_parse, &state) != 0) {
+ status = dbwrap_parse_record(db, tdbkey, server_exists_parse, &state);
+ if (!NT_STATUS_IS_OK(status)) {
return false;
}
return state.exists;