diff options
author | Jeremy Allison <jra@samba.org> | 2009-03-27 12:12:30 -0700 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2009-03-27 12:13:13 -0700 |
commit | d942d248d6207312226d597a59c4772aaae614b1 (patch) | |
tree | aa508fc245a9857bcc1869c22adfbb8aca4bbec6 /source3/lib | |
parent | 66b97d36b9a086f2ef76f2d42a07bfdbdaa0f00d (diff) | |
download | samba-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')
-rw-r--r-- | source3/lib/dbwrap.c | 27 |
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 */ |