summaryrefslogtreecommitdiff
path: root/source3/lib/dbwrap.c
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2009-03-27 12:12:30 -0700
committerJeremy Allison <jra@samba.org>2009-03-27 12:13:13 -0700
commitd942d248d6207312226d597a59c4772aaae614b1 (patch)
treeaa508fc245a9857bcc1869c22adfbb8aca4bbec6 /source3/lib/dbwrap.c
parent66b97d36b9a086f2ef76f2d42a07bfdbdaa0f00d (diff)
downloadsamba-d942d248d6207312226d597a59c4772aaae614b1.tar.gz
samba-d942d248d6207312226d597a59c4772aaae614b1.tar.bz2
samba-d942d248d6207312226d597a59c4772aaae614b1.zip
Fix bug #6195 - Migrating from 3.0.x to 3.3.x can fail to update passdb.tdb correctly. For the clustering case.
Clustered setups should have only ever used the unsigned version of TDB_DATA in the first place so they can't be in this mess :-). Just do the normal upgrade in the clustered case. Jeremy.
Diffstat (limited to 'source3/lib/dbwrap.c')
-rw-r--r--source3/lib/dbwrap.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/source3/lib/dbwrap.c b/source3/lib/dbwrap.c
index 5e7ce6099f..67c08a6085 100644
--- a/source3/lib/dbwrap.c
+++ b/source3/lib/dbwrap.c
@@ -65,6 +65,33 @@ static int dbwrap_fallback_parse_record(struct db_context *db, TDB_DATA key,
return res;
}
+bool db_is_local(const char *name)
+{
+#ifdef CLUSTER_SUPPORT
+ const char *sockname = lp_ctdbd_socket();
+
+ if(!sockname || !*sockname) {
+ sockname = CTDB_PATH;
+ }
+
+ if (lp_clustering() && socket_exist(sockname)) {
+ const char *partname;
+ /* ctdb only wants the file part of the name */
+ partname = strrchr(name, '/');
+ if (partname) {
+ partname++;
+ } else {
+ partname = name;
+ }
+ /* allow ctdb for individual databases to be disabled */
+ if (lp_parm_bool(-1, "ctdb", partname, True)) {
+ return false;
+ }
+ }
+#endif
+ return true;
+}
+
/**
* open a database
*/