summaryrefslogtreecommitdiff
path: root/source4/lib/registry
diff options
context:
space:
mode:
Diffstat (limited to 'source4/lib/registry')
-rw-r--r--source4/lib/registry/TODO3
-rw-r--r--source4/lib/registry/common/reg_interface.c8
-rw-r--r--source4/lib/registry/config.m42
-rw-r--r--source4/lib/registry/reg_backend_ldb/reg_backend_ldb.c8
4 files changed, 16 insertions, 5 deletions
diff --git a/source4/lib/registry/TODO b/source4/lib/registry/TODO
index 9b0dbe4c71..695f786b69 100644
--- a/source4/lib/registry/TODO
+++ b/source4/lib/registry/TODO
@@ -24,6 +24,9 @@ reg_backend_wine.c:
regshell:
- support for security descriptors
+
+ regdiff:
+ - fix
gregedit.c:
- support for editing values / adding values / deleting values
diff --git a/source4/lib/registry/common/reg_interface.c b/source4/lib/registry/common/reg_interface.c
index 6d305e61bf..6ad7ee69cb 100644
--- a/source4/lib/registry/common/reg_interface.c
+++ b/source4/lib/registry/common/reg_interface.c
@@ -64,8 +64,12 @@ static struct reg_init_function_entry *reg_find_backend_entry(const char *name)
if(reg_first_init) {
status = register_subsystem("registry", registry_register);
- if (!NT_STATUS_IS_OK(status))
+ if (NT_STATUS_IS_ERR(status)) {
+ DEBUG(0, ("Error registering registry subsystem: %s\n", nt_errstr(status)));
+ /* Don't try the initialisation again */
+ reg_first_init = False;
return NULL;
+ }
static_init_registry;
reg_first_init = False;
@@ -83,7 +87,7 @@ static struct reg_init_function_entry *reg_find_backend_entry(const char *name)
BOOL reg_has_backend(const char *backend)
{
- return reg_find_backend_entry(backend)?True:False;
+ return reg_find_backend_entry(backend) != NULL?True:False;
}
/* Open a registry file/host/etc */
diff --git a/source4/lib/registry/config.m4 b/source4/lib/registry/config.m4
index 331b9c2df1..a1dc9a45bc 100644
--- a/source4/lib/registry/config.m4
+++ b/source4/lib/registry/config.m4
@@ -27,7 +27,7 @@ SMB_MODULE_MK(registry_w95, REGISTRY, STATIC, lib/registry/config.mk)
SMB_MODULE_MK(registry_dir, REGISTRY, STATIC, lib/registry/config.mk)
SMB_MODULE_MK(registry_rpc, REGISTRY, STATIC, lib/registry/config.mk)
SMB_MODULE_MK(registry_gconf, REGISTRY, STATIC, lib/registry/config.mk)
-SMB_MODULE_MK(registry_ldb, REGISTRY, NOT, lib/registry/config.mk)
+SMB_MODULE_MK(registry_ldb, REGISTRY, STATIC, lib/registry/config.mk)
SMB_SUBSYSTEM_MK(REGISTRY,lib/registry/config.mk)
diff --git a/source4/lib/registry/reg_backend_ldb/reg_backend_ldb.c b/source4/lib/registry/reg_backend_ldb/reg_backend_ldb.c
index 498dc6991b..7b574069e9 100644
--- a/source4/lib/registry/reg_backend_ldb/reg_backend_ldb.c
+++ b/source4/lib/registry/reg_backend_ldb/reg_backend_ldb.c
@@ -39,6 +39,7 @@ static char *reg_path_to_ldb(TALLOC_CTX *mem_ctx, const char *path)
}
ret[strlen(ret)-1] = ')';
+ printf("Doing search for : %s\n", ret);
return ret;
}
@@ -85,9 +86,12 @@ static WERROR ldb_fetch_subkeys(REG_KEY *k, int *count, REG_KEY ***subkeys)
return WERR_OK;
}
+static WERROR ldb_get_hive(REG_HANDLE *h, int num, REG_KEY **key)
+{
+ /* FIXME */
+}
-
-static WERROR ldb_open_key(REG_HANDLE *h, const char *name, REG_KEY **key)
+static WERROR ldb_open_key(REG_HANDLE *h, int num, const char *name, REG_KEY **key)
{
struct ldb_context *c = h->backend_data;
char *path;