diff options
author | Volker Lendecke <vl@samba.org> | 2011-10-31 16:30:38 +0100 |
---|---|---|
committer | Volker Lendecke <vlendec@samba.org> | 2011-11-30 12:47:27 +0100 |
commit | 99f2177e8fbf7f288fa896a0c64bfb6ae03b9ada (patch) | |
tree | b06560ce319132a7887060f1674fe838c6c18dfd /source3/lib/serverid.c | |
parent | da992be64f39364fbb8bca26e9421c7a36c49ac6 (diff) | |
download | samba-99f2177e8fbf7f288fa896a0c64bfb6ae03b9ada.tar.gz samba-99f2177e8fbf7f288fa896a0c64bfb6ae03b9ada.tar.bz2 samba-99f2177e8fbf7f288fa896a0c64bfb6ae03b9ada.zip |
s3-ctdb: Make use of CTDB_CONTROL_CHECK_SRVIDS
This should be a lot quicker than PROCESS_EXISTS followed by looking at
serverid.tdb
Autobuild-User: Volker Lendecke <vlendec@samba.org>
Autobuild-Date: Wed Nov 30 12:47:27 CET 2011 on sn-devel-104
Diffstat (limited to 'source3/lib/serverid.c')
-rw-r--r-- | source3/lib/serverid.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/source3/lib/serverid.c b/source3/lib/serverid.c index 274b44b86f..c1b87f7929 100644 --- a/source3/lib/serverid.c +++ b/source3/lib/serverid.c @@ -25,6 +25,8 @@ #include "dbwrap/dbwrap_open.h" #include "lib/util/tdb_wrap.h" #include "lib/param/param.h" +#include "ctdbd_conn.h" +#include "messages.h" struct serverid_key { pid_t pid; @@ -122,6 +124,11 @@ bool serverid_register(const struct server_id id, uint32_t msg_flags) nt_errstr(status))); goto done; } +#ifdef HAVE_CTDB_CONTROL_CHECK_SRVIDS_DECL + if (lp_clustering()) { + register_with_ctdbd(messaging_ctdbd_connection(), id.unique_id); + } +#endif ret = true; done: TALLOC_FREE(rec); @@ -278,6 +285,12 @@ bool serverids_exist(const struct server_id *ids, int num_ids, bool *results) struct db_context *db; int i; +#ifdef HAVE_CTDB_CONTROL_CHECK_SRVIDS_DECL + if (lp_clustering()) { + return ctdb_serverids_exist(messaging_ctdbd_connection(), + ids, num_ids, results); + } +#endif if (!processes_exist(ids, num_ids, results)) { return false; } |