rename to group_mapping.tdb.upgraded rather than an unlink when
upgrading. So if we absolutely have to go back to the tdb, we can
change mapping_ldb.o to mapping_tdb.o in Makefile.in and recover
peoples group mappings.
We could go one step futher and make the backend configurable. Any
opinions on that?
{
static TDB_CONTEXT *tdb;
int ret, status=0;
+ pstring old_path;
+ pstring new_path;
tdb = tdb_open_log(tdb_path, 0, TDB_DEFAULT, O_RDWR, 0600);
if (tdb == NULL) goto failed;
if (tdb) tdb_close(tdb);
- if (unlink(tdb_path) != 0) {
- DEBUG(0,("Failed to delete old group mapping database\n"));
+ pstrcpy(old_path, tdb_path);
+ pstrcpy(new_path, lock_path("group_mapping.tdb.upgraded"));
+
+ if (rename(old_path, new_path) != 0) {
+ DEBUG(0,("Failed to rename old group mapping database\n"));
goto failed;
}
return True;