summaryrefslogtreecommitdiff
path: root/source3/lib/serverid.c
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2011-10-31 16:30:38 +0100
committerVolker Lendecke <vlendec@samba.org>2011-11-30 12:47:27 +0100
commit99f2177e8fbf7f288fa896a0c64bfb6ae03b9ada (patch)
treeb06560ce319132a7887060f1674fe838c6c18dfd /source3/lib/serverid.c
parentda992be64f39364fbb8bca26e9421c7a36c49ac6 (diff)
downloadsamba-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.c13
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;
}