summaryrefslogtreecommitdiff
path: root/source4/lib/registry
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2007-08-27 13:13:08 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 15:02:50 -0500
commit2edf63b6d647eba131e213bd9dbc543100396930 (patch)
tree7416510a7f86dc10a41e64800f336f7870d34689 /source4/lib/registry
parente56566f3df59fcbca5f15757bf93d23ee9bd9851 (diff)
downloadsamba-2edf63b6d647eba131e213bd9dbc543100396930.tar.gz
samba-2edf63b6d647eba131e213bd9dbc543100396930.tar.bz2
samba-2edf63b6d647eba131e213bd9dbc543100396930.zip
r24703: Use standard registry diff files when provisioning rather than
LDIF files for the registry files. (This used to be commit 67ad556b7388e5d82756e0a3cfc596e44136329c)
Diffstat (limited to 'source4/lib/registry')
-rw-r--r--source4/lib/registry/hive.c2
-rw-r--r--source4/lib/registry/patchfile.c4
-rw-r--r--source4/lib/registry/samba.c5
3 files changed, 10 insertions, 1 deletions
diff --git a/source4/lib/registry/hive.c b/source4/lib/registry/hive.c
index b2c826b93d..97ce883e66 100644
--- a/source4/lib/registry/hive.c
+++ b/source4/lib/registry/hive.c
@@ -39,6 +39,8 @@ _PUBLIC_ WERROR reg_open_hive(TALLOC_CTX *parent_ctx, const char *location,
fd = open(location, O_RDWR);
if (fd == -1) {
+ if (errno == ENOENT)
+ return WERR_NOT_FOUND;
return WERR_BADFILE;
}
diff --git a/source4/lib/registry/patchfile.c b/source4/lib/registry/patchfile.c
index 50c8f54397..8df873d56b 100644
--- a/source4/lib/registry/patchfile.c
+++ b/source4/lib/registry/patchfile.c
@@ -252,7 +252,9 @@ _PUBLIC_ WERROR reg_generate_diff(struct registry_context *ctx1,
/**
* Load diff file
*/
-_PUBLIC_ WERROR reg_diff_load(const char *filename, const struct reg_diff_callbacks *callbacks, void *callback_data)
+_PUBLIC_ WERROR reg_diff_load(const char *filename,
+ const struct reg_diff_callbacks *callbacks,
+ void *callback_data)
{
int fd;
char hdr[4];
diff --git a/source4/lib/registry/samba.c b/source4/lib/registry/samba.c
index 244c467a2c..6aaaa118d0 100644
--- a/source4/lib/registry/samba.c
+++ b/source4/lib/registry/samba.c
@@ -36,7 +36,12 @@ WERROR mount_samba_hive(struct registry_context *ctx,
location = talloc_asprintf(ctx, "%s/%s.ldb", lp_private_dir(), name);
+
error = reg_open_hive(ctx, location, auth_info, creds, &hive);
+
+ if (W_ERROR_EQUAL(error, WERR_NOT_FOUND))
+ error = reg_open_ldb_file(ctx, location, auth_info, creds, &hive);
+
if (!W_ERROR_IS_OK(error))
return error;