summaryrefslogtreecommitdiff
path: root/source4/lib/registry/reg_backend_ldb
diff options
context:
space:
mode:
authorJelmer Vernooij <jelmer@samba.org>2004-04-04 16:24:08 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:50:33 -0500
commitc424c2b857fe08587eb81a5c5e3625545119d1c2 (patch)
tree03505d09ccd72cdfd1218066d355e2d01d403bd0 /source4/lib/registry/reg_backend_ldb
parent3855ee0164d1c8ff3c3c4ba8a5556d8cfb6546b3 (diff)
downloadsamba-c424c2b857fe08587eb81a5c5e3625545119d1c2.tar.gz
samba-c424c2b857fe08587eb81a5c5e3625545119d1c2.tar.bz2
samba-c424c2b857fe08587eb81a5c5e3625545119d1c2.zip
r20: Add the registry library. Still needs a lot of work,
see source/lib/registry/TODO for details. (This used to be commit 7cab3a00d7b4b1d95a3bfa6b28f318b4aaa5d493)
Diffstat (limited to 'source4/lib/registry/reg_backend_ldb')
-rw-r--r--source4/lib/registry/reg_backend_ldb/reg_backend_ldb.c61
1 files changed, 61 insertions, 0 deletions
diff --git a/source4/lib/registry/reg_backend_ldb/reg_backend_ldb.c b/source4/lib/registry/reg_backend_ldb/reg_backend_ldb.c
new file mode 100644
index 0000000000..75d5a95187
--- /dev/null
+++ b/source4/lib/registry/reg_backend_ldb/reg_backend_ldb.c
@@ -0,0 +1,61 @@
+/*
+ Unix SMB/CIFS implementation.
+ Registry interface
+ Copyright (C) Jelmer Vernooij 2004.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+*/
+
+#include "includes.h"
+#include "lib/registry/common/registry.h"
+
+/*
+ * Saves the dn as private_data for every key/val
+ */
+
+static BOOL ldb_open_registry(REG_HANDLE *handle, const char *location, BOOL try_full_load)
+{
+ struct ldb_context *c;
+ c = ldb_connect(location, 0, NULL);
+
+ if(!c) return False;
+
+ handle->backend_data = c;
+
+ return True;
+}
+
+static BOOL ldb_close_registry(REG_HANDLE *h)
+{
+ ldb_close(h);
+ return True;
+}
+
+static REG_KEY *ldb_open_key(REG_HANDLE *h, const char *name)
+{
+ /* FIXME */
+}
+
+static REG_OPS reg_backend_ldb = {
+ .name = "ldb",
+ .open_registry = ldb_open_registry,
+ .close_registry = ldb_close_registry,
+ .open_key = ldb_open_key,
+};
+
+NTSTATUS reg_ldb_init(void)
+{
+ return register_backend("registry", &reg_backend_ldb);
+}