[SCM] Samba Shared Repository - branch master updated
Jelmer Vernooij
jelmer at samba.org
Sun Oct 10 17:05:01 MDT 2010
The branch, master has been updated
via 7552dd8 rpc_ndr_netlogon: Add missing dependency on tevent.
via fd718c9 samdb: Remove dependency on unknown subsystem.
via 904a6c3 util: Link headers to correct subsystem, fix formatting.
via aa6d7cc dsdb: add missing dependency on samba_socket.
via e2f3e10 ldb-samba: Rename samdb_relative_path to ldb_relative_path, as it's not samdb-specific.
via 33c4b85 dsdb: Move attr_in_list to SAMDB_COMMON to avoid circular dependency between SAMDB_COMMON and DSDB_MODULE_HELPERS.
via 8f6ca48 gensec: Support building without any linked-in modules.
via 7ba7ca7 idmap: Add missing dependency on ldbsamba.
via be1f2c4 secrets: Add missing dependency on ldbsamba.
via c4c2985 cldapd: Add missing dependency on ldbsamba.
via c1884f3 ldb-samba: Add ldb_wrap_add, remove last schema reference from ldb_wrap.
via 7f68870 ldb-samba: Split up ldb_wrap_connect() a bit.
via 938cb40 ldb-samba: Add convenience function for doing a Samba-style LDB init.
via 93126b3 samdb: Add flags argument to samdb_connect().
via 6280725 samdb: Handle schema setup in samdb, not in more generic ldbsamba.
via 614c8ea tls: add missing dependency on util_tevent.
via a20f025 wafsamba: Fix init function when building modules as shared objects.
from 9b94894 socket_wrapper: Make it work on freebsd for udp packets
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 7552dd8d1e5f844fbf71580f1a34d50dcb4f3fbc
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Mon Oct 11 00:22:42 2010 +0200
rpc_ndr_netlogon: Add missing dependency on tevent.
Autobuild-User: Jelmer Vernooij <jelmer at samba.org>
Autobuild-Date: Sun Oct 10 23:04:13 UTC 2010 on sn-devel-104
commit fd718c96f0bcbcdff0c931a117392ee6a4bc6ed9
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 23:59:04 2010 +0200
samdb: Remove dependency on unknown subsystem.
commit 904a6c376105e084789a66894644c9a498574778
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 18:39:07 2010 +0200
util: Link headers to correct subsystem, fix formatting.
commit aa6d7ccc44e226a65fc1b56c6d973a375c482811
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 23:00:59 2010 +0200
dsdb: add missing dependency on samba_socket.
commit e2f3e10b1a47e195e9b329ac244be93c2fcdf0a0
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 23:45:23 2010 +0200
ldb-samba: Rename samdb_relative_path to ldb_relative_path, as it's not samdb-specific.
commit 33c4b85058f21ab9865bc7cf1b49b7bd38e0275d
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 17:02:10 2010 +0200
dsdb: Move attr_in_list to SAMDB_COMMON to avoid circular dependency between SAMDB_COMMON and DSDB_MODULE_HELPERS.
commit 8f6ca4859c4d377974fa61a3de10d6304b562986
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 16:46:55 2010 +0200
gensec: Support building without any linked-in modules.
commit 7ba7ca7062cf7d239c169eda4aa779eaaa2bb780
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 18:42:14 2010 +0200
idmap: Add missing dependency on ldbsamba.
commit be1f2c4d0212efeddbc8e66359bbbb20b1c6a152
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 18:41:57 2010 +0200
secrets: Add missing dependency on ldbsamba.
commit c4c298591d2930f3c355c3fa36699a5ab074d04e
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 22:57:18 2010 +0200
cldapd: Add missing dependency on ldbsamba.
commit c1884f31ea13618cd3a94a30f9c413d176d1e258
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 23:25:38 2010 +0200
ldb-samba: Add ldb_wrap_add, remove last schema reference from ldb_wrap.
commit 7f68870bc939e33df958f708ec7f46253fefadd9
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 17:34:21 2010 +0200
ldb-samba: Split up ldb_wrap_connect() a bit.
commit 938cb40290af72bdd887d964f46ccc00d80ab744
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 17:15:11 2010 +0200
ldb-samba: Add convenience function for doing a Samba-style LDB init.
commit 93126b3315a70d1beaeaa64d05cdbfb167acbabe
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 17:00:45 2010 +0200
samdb: Add flags argument to samdb_connect().
commit 6280725b47391c69dd7db1133c15bd0ce7418da6
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 16:56:55 2010 +0200
samdb: Handle schema setup in samdb, not in more generic ldbsamba.
commit 614c8ea98650405b461a6ce034ee5e5acc45a952
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 23:08:12 2010 +0200
tls: add missing dependency on util_tevent.
commit a20f025ff611d541b82b83791013f2713c999235
Author: Jelmer Vernooij <jelmer at samba.org>
Date: Sun Oct 10 22:52:35 2010 +0200
wafsamba: Fix init function when building modules as shared objects.
Signed-off-by: Jelmer Vernooij <jelmer at samba.org>
-----------------------------------------------------------------------
Summary of changes:
buildtools/wafsamba/wafsamba.py | 3 +
lib/util/wscript_build | 24 ++--
librpc/wscript_build | 2 +-
source4/auth/gensec/gensec.c | 4 +
source4/auth/ntlm/auth.c | 2 +-
source4/cldap_server/cldap_server.c | 2 +-
source4/cldap_server/wscript_build | 2 +-
source4/dsdb/common/util.c | 13 ++-
source4/dsdb/common/util.h | 2 +
source4/dsdb/dns/dns_update.c | 2 +-
source4/dsdb/kcc/kcc_service.c | 2 +-
source4/dsdb/repl/drepl_service.c | 2 +-
source4/dsdb/samdb/cracknames.c | 2 +-
source4/dsdb/samdb/ldb_modules/partition_init.c | 3 +-
source4/dsdb/samdb/ldb_modules/util.c | 12 --
source4/dsdb/samdb/samdb.c | 69 ++++----
source4/dsdb/wscript_build | 4 +-
source4/kdc/db-glue.c | 2 +-
source4/kdc/kpasswdd.c | 6 +-
source4/ldap_server/ldap_backend.c | 4 +-
source4/ldap_server/ldap_server.c | 2 +-
source4/lib/ldb-samba/ldb_wrap.c | 217 +++++++++++++++--------
source4/lib/ldb-samba/ldb_wrap.h | 24 +++
source4/lib/ldb-samba/ldif_handlers.c | 3 +-
source4/lib/ldb-samba/wscript_build | 2 +-
source4/lib/tls/wscript | 2 +-
source4/libnet/libnet_samsync_ldb.c | 3 +-
source4/nbt_server/nbt_server.c | 2 +-
source4/nbt_server/wins/winsdb.c | 2 +-
source4/ntp_signd/ntp_signd.c | 2 +-
source4/param/secrets.c | 2 +-
source4/param/wscript_build | 2 +-
source4/rpc_server/common/server_info.c | 2 +-
source4/rpc_server/drsuapi/dcesrv_drsuapi.c | 4 +-
source4/rpc_server/lsa/dcesrv_lsa.c | 4 +-
source4/rpc_server/lsa/lsa_init.c | 2 +-
source4/rpc_server/netlogon/dcerpc_netlogon.c | 26 ++--
source4/rpc_server/samr/dcesrv_samr.c | 4 +-
source4/rpc_server/samr/samr_password.c | 12 +-
source4/smb_server/smb/trans2.c | 2 +-
source4/smbd/server.c | 2 +-
source4/winbind/wscript_build | 2 +-
42 files changed, 291 insertions(+), 194 deletions(-)
Changeset truncated at 500 lines:
diff --git a/buildtools/wafsamba/wafsamba.py b/buildtools/wafsamba/wafsamba.py
index 9c2c7be..02bb966 100644
--- a/buildtools/wafsamba/wafsamba.py
+++ b/buildtools/wafsamba/wafsamba.py
@@ -366,6 +366,9 @@ def SAMBA_MODULE(bld, modname, source,
build_link_name = "modules/%s/%s" % (subsystem, realname)
+ if init_function:
+ cflags += " -D%s=samba_init_module" % init_function
+
bld.SAMBA_LIBRARY(modname,
source,
deps=deps,
diff --git a/lib/util/wscript_build b/lib/util/wscript_build
index 457dee2..0b2991a 100644
--- a/lib/util/wscript_build
+++ b/lib/util/wscript_build
@@ -2,10 +2,10 @@
bld.SAMBA_LIBRARY('LIBSAMBA-UTIL',
source='xfile.c debug.c fault.c signal.c system.c time.c genrand.c dprintf.c util_str.c rfc1738.c substitute.c util_strlist.c util_file.c data_blob.c util.c blocking.c util_net.c fsusage.c ms_fnmatch.c mutex.c idtree.c become_daemon.c rbtree.c talloc_stack.c smb_threads.c params.c parmlist.c util_id.c select.c',
- public_deps='talloc LIBCRYPTO CHARSET execinfo UID_WRAPPER tevent',
- public_headers='attr.h byteorder.h data_blob.h debug.h memory.h mutex.h safe_string.h time.h talloc_stack.h xfile.h dlinklist.h util.h tevent_ntstatus.h tevent_unix.h',
- header_path= [ ('dlinklist.h util.h', '.'), ('*', 'util') ],
- local_include=False,
+ public_deps='talloc LIBCRYPTO CHARSET execinfo UID_WRAPPER',
+ public_headers='attr.h byteorder.h data_blob.h debug.h memory.h mutex.h safe_string.h time.h talloc_stack.h xfile.h dlinklist.h util.h',
+ header_path= [ ('dlinklist.h util.h', '.'), ('*', 'util') ],
+ local_include=False,
vnum='0.0.1',
pc_files='samba-util.pc'
)
@@ -21,29 +21,29 @@ bld.SAMBA_SUBSYSTEM('UNIX_PRIVS',
source='unix_privs.c',
autoproto='unix_privs.h',
deps='UID_WRAPPER',
- local_include=False,
+ local_include=False,
)
bld.SAMBA_SUBSYSTEM('WRAP_XATTR',
source='wrap_xattr.c',
public_deps='XATTR',
- deps='talloc',
- local_include=False
+ deps='talloc',
+ local_include=False
)
bld.SAMBA_SUBSYSTEM('UTIL_TDB',
source='util_tdb.c',
- local_include=False,
+ local_include=False,
public_deps='tdb talloc'
)
-
bld.SAMBA_SUBSYSTEM('UTIL_TEVENT',
source='tevent_unix.c tevent_ntstatus.c',
- local_include=False,
- public_deps='tevent'
+ local_include=False,
+ public_deps='tevent',
+ public_headers='tevent_ntstatus.h tevent_unix.h',
)
@@ -57,7 +57,7 @@ bld.SAMBA_SUBSYSTEM('UTIL_LDB',
bld.SAMBA_SUBSYSTEM('UTIL_RUNCMD',
source='util_runcmd.c',
- local_include=False,
+ local_include=False,
public_deps='tevent'
)
diff --git a/librpc/wscript_build b/librpc/wscript_build
index 477f6dd..0e6c8c0 100644
--- a/librpc/wscript_build
+++ b/librpc/wscript_build
@@ -460,7 +460,7 @@ bld.SAMBA_SUBSYSTEM('RPC_NDR_NTSVCS',
bld.SAMBA_SUBSYSTEM('RPC_NDR_NETLOGON',
source='../librpc/gen_ndr/ndr_netlogon_c.c',
- public_deps='NDR_STANDARD'
+ public_deps='NDR_STANDARD tevent'
)
bld.SAMBA_SUBSYSTEM('RPC_NDR_TRKWKS',
diff --git a/source4/auth/gensec/gensec.c b/source4/auth/gensec/gensec.c
index 7f76643..606e4f1 100644
--- a/source4/auth/gensec/gensec.c
+++ b/source4/auth/gensec/gensec.c
@@ -1394,6 +1394,10 @@ bool gensec_setting_bool(struct gensec_settings *settings, const char *mechanism
return lpcfg_parm_bool(settings->lp_ctx, NULL, mechanism, name, default_value);
}
+#ifndef STATIC_gensec_MODULES
+#define STATIC_gensec_MODULES NULL
+#endif
+
/*
initialise the GENSEC subsystem
*/
diff --git a/source4/auth/ntlm/auth.c b/source4/auth/ntlm/auth.c
index b34b8ac..46fd887 100644
--- a/source4/auth/ntlm/auth.c
+++ b/source4/auth/ntlm/auth.c
@@ -447,7 +447,7 @@ _PUBLIC_ NTSTATUS auth_context_create_methods(TALLOC_CTX *mem_ctx, const char **
if (sam_ctx) {
ctx->sam_ctx = sam_ctx;
} else {
- ctx->sam_ctx = samdb_connect(ctx, ctx->event_ctx, ctx->lp_ctx, system_session(ctx->lp_ctx));
+ ctx->sam_ctx = samdb_connect(ctx, ctx->event_ctx, ctx->lp_ctx, system_session(ctx->lp_ctx), 0);
}
for (i=0; methods[i] ; i++) {
diff --git a/source4/cldap_server/cldap_server.c b/source4/cldap_server/cldap_server.c
index 286af05..8b39684 100644
--- a/source4/cldap_server/cldap_server.c
+++ b/source4/cldap_server/cldap_server.c
@@ -212,7 +212,7 @@ static void cldapd_task_init(struct task_server *task)
}
cldapd->task = task;
- cldapd->samctx = samdb_connect(cldapd, task->event_ctx, task->lp_ctx, system_session(task->lp_ctx));
+ cldapd->samctx = samdb_connect(cldapd, task->event_ctx, task->lp_ctx, system_session(task->lp_ctx), 0);
if (cldapd->samctx == NULL) {
task_server_terminate(task, "cldapd failed to open samdb", true);
return;
diff --git a/source4/cldap_server/wscript_build b/source4/cldap_server/wscript_build
index 3eb8369..85a9798 100644
--- a/source4/cldap_server/wscript_build
+++ b/source4/cldap_server/wscript_build
@@ -11,6 +11,6 @@ bld.SAMBA_MODULE('service_cldap',
bld.SAMBA_SUBSYSTEM('CLDAPD',
source='netlogon.c rootdse.c',
autoproto='proto.h',
- deps='LIBCLI_CLDAP'
+ deps='LIBCLI_CLDAP LDBSAMBA'
)
diff --git a/source4/dsdb/common/util.c b/source4/dsdb/common/util.c
index 7121521..0a00219 100644
--- a/source4/dsdb/common/util.c
+++ b/source4/dsdb/common/util.c
@@ -42,7 +42,6 @@
#include "lib/util/tsort.h"
#include "dsdb/common/util.h"
#include "lib/socket/socket.h"
-#include "dsdb/samdb/ldb_modules/util.h"
#include "librpc/gen_ndr/irpc.h"
/*
@@ -4253,3 +4252,15 @@ bool dsdb_attr_in_parse_tree(struct ldb_parse_tree *tree,
return false;
}
+bool is_attr_in_list(const char * const * attrs, const char *attr)
+{
+ unsigned int i;
+
+ for (i = 0; attrs[i]; i++) {
+ if (ldb_attr_cmp(attrs[i], attr) == 0)
+ return true;
+ }
+
+ return false;
+}
+
diff --git a/source4/dsdb/common/util.h b/source4/dsdb/common/util.h
index 7ae46ae..7dabef8 100644
--- a/source4/dsdb/common/util.h
+++ b/source4/dsdb/common/util.h
@@ -34,3 +34,5 @@
#define DSDB_TREE_DELETE 0x0100
#define DSDB_SEARCH_ONE_ONLY 0x0200 /* give an error unless 1 record */
#define DSDB_SEARCH_SHOW_RECYCLED 0x0400
+
+bool is_attr_in_list(const char * const * attrs, const char *attr);
diff --git a/source4/dsdb/dns/dns_update.c b/source4/dsdb/dns/dns_update.c
index fbfca19..68ad03f 100644
--- a/source4/dsdb/dns/dns_update.c
+++ b/source4/dsdb/dns/dns_update.c
@@ -575,7 +575,7 @@ static void dnsupdate_task_init(struct task_server *task)
}
service->samdb = samdb_connect(service, service->task->event_ctx, task->lp_ctx,
- service->system_session_info);
+ service->system_session_info, 0);
if (!service->samdb) {
task_server_terminate(task, "dnsupdate: Failed to connect to local samdb\n",
true);
diff --git a/source4/dsdb/kcc/kcc_service.c b/source4/dsdb/kcc/kcc_service.c
index 0d78443..0205cbe 100644
--- a/source4/dsdb/kcc/kcc_service.c
+++ b/source4/dsdb/kcc/kcc_service.c
@@ -55,7 +55,7 @@ static WERROR kccsrv_connect_samdb(struct kccsrv_service *service, struct loadpa
{
const struct GUID *ntds_guid;
- service->samdb = samdb_connect(service, service->task->event_ctx, lp_ctx, service->system_session_info);
+ service->samdb = samdb_connect(service, service->task->event_ctx, lp_ctx, service->system_session_info, 0);
if (!service->samdb) {
return WERR_DS_UNAVAILABLE;
}
diff --git a/source4/dsdb/repl/drepl_service.c b/source4/dsdb/repl/drepl_service.c
index e122d0a..11f81bb 100644
--- a/source4/dsdb/repl/drepl_service.c
+++ b/source4/dsdb/repl/drepl_service.c
@@ -65,7 +65,7 @@ static WERROR dreplsrv_connect_samdb(struct dreplsrv_service *service, struct lo
const struct GUID *ntds_guid;
struct drsuapi_DsBindInfo28 *bind_info28;
- service->samdb = samdb_connect(service, service->task->event_ctx, lp_ctx, service->system_session_info);
+ service->samdb = samdb_connect(service, service->task->event_ctx, lp_ctx, service->system_session_info, 0);
if (!service->samdb) {
return WERR_DS_UNAVAILABLE;
}
diff --git a/source4/dsdb/samdb/cracknames.c b/source4/dsdb/samdb/cracknames.c
index e642984..3fac49f 100644
--- a/source4/dsdb/samdb/cracknames.c
+++ b/source4/dsdb/samdb/cracknames.c
@@ -1235,7 +1235,7 @@ NTSTATUS crack_name_to_nt4_name(TALLOC_CTX *mem_ctx,
return NT_STATUS_OK;
}
- ldb = samdb_connect(mem_ctx, ev_ctx, lp_ctx, system_session(lp_ctx));
+ ldb = samdb_connect(mem_ctx, ev_ctx, lp_ctx, system_session(lp_ctx), 0);
if (ldb == NULL) {
return NT_STATUS_INTERNAL_DB_CORRUPTION;
}
diff --git a/source4/dsdb/samdb/ldb_modules/partition_init.c b/source4/dsdb/samdb/ldb_modules/partition_init.c
index 0ab8bad..775e566 100644
--- a/source4/dsdb/samdb/ldb_modules/partition_init.c
+++ b/source4/dsdb/samdb/ldb_modules/partition_init.c
@@ -31,6 +31,7 @@
#include "dsdb/samdb/ldb_modules/partition.h"
#include "lib/util/tsort.h"
+#include "lib/ldb-samba/ldb_wrap.h"
static int partition_sort_compare(const void *v1, const void *v2)
{
@@ -218,7 +219,7 @@ static int new_partition_from_dn(struct ldb_context *ldb, struct partition_priva
(*partition)->backend_url = data->ldapBackend;
} else {
/* the backend LDB is the DN (base64 encoded if not 'plain') followed by .ldb */
- backend_url = samdb_relative_path(ldb,
+ backend_url = ldb_relative_path(ldb,
*partition,
filename);
if (!backend_url) {
diff --git a/source4/dsdb/samdb/ldb_modules/util.c b/source4/dsdb/samdb/ldb_modules/util.c
index 74825a5..569c967 100644
--- a/source4/dsdb/samdb/ldb_modules/util.c
+++ b/source4/dsdb/samdb/ldb_modules/util.c
@@ -954,18 +954,6 @@ int dsdb_recyclebin_enabled(struct ldb_module *module, bool *enabled)
return LDB_SUCCESS;
}
-bool is_attr_in_list(const char * const * attrs, const char *attr)
-{
- unsigned int i;
-
- for (i = 0; attrs[i]; i++) {
- if (ldb_attr_cmp(attrs[i], attr) == 0)
- return true;
- }
-
- return false;
-}
-
int dsdb_msg_constrainted_update_int32(struct ldb_module *module,
struct ldb_message *msg,
const char *attr,
diff --git a/source4/dsdb/samdb/samdb.c b/source4/dsdb/samdb/samdb.c
index 637da4f..57de27a 100644
--- a/source4/dsdb/samdb/samdb.c
+++ b/source4/dsdb/samdb/samdb.c
@@ -43,33 +43,6 @@
#include "param/secrets.h"
#include "auth/auth.h"
-char *samdb_relative_path(struct ldb_context *ldb,
- TALLOC_CTX *mem_ctx,
- const char *name)
-{
- const char *base_url =
- (const char *)ldb_get_opaque(ldb, "ldb_url");
- char *path, *p, *full_name;
- if (name == NULL) {
- return NULL;
- }
- if (strncmp("tdb://", base_url, 6) == 0) {
- base_url = base_url+6;
- }
- path = talloc_strdup(mem_ctx, base_url);
- if (path == NULL) {
- return NULL;
- }
- if ( (p = strrchr(path, '/')) != NULL) {
- p[0] = '\0';
- full_name = talloc_asprintf(mem_ctx, "%s/%s", path, name);
- } else {
- full_name = talloc_asprintf(mem_ctx, "./%s", name);
- }
- talloc_free(path);
- return full_name;
-}
-
/*
make sure the static credentials are not freed
*/
@@ -123,16 +96,46 @@ struct cli_credentials *samdb_credentials(struct tevent_context *event_ctx,
struct ldb_context *samdb_connect(TALLOC_CTX *mem_ctx,
struct tevent_context *ev_ctx,
struct loadparm_context *lp_ctx,
- struct auth_session_info *session_info)
+ struct auth_session_info *session_info,
+ int flags)
{
struct ldb_context *ldb;
- ldb = ldb_wrap_connect(mem_ctx, ev_ctx, lp_ctx,
- lpcfg_sam_url(lp_ctx), session_info,
- samdb_credentials(ev_ctx, lp_ctx),
- 0);
- if (!ldb) {
+ struct dsdb_schema *schema;
+ const char *url;
+ struct cli_credentials *credentials;
+ int ret;
+
+ url = lpcfg_sam_url(lp_ctx);
+ credentials = samdb_credentials(ev_ctx, lp_ctx);
+
+ ldb = ldb_wrap_find(url, ev_ctx, lp_ctx, session_info, credentials, flags);
+ if (ldb != NULL)
+ return talloc_reference(mem_ctx, ldb);
+
+ ldb = samba_ldb_init(mem_ctx, ev_ctx, lp_ctx, session_info, credentials);
+
+ if (ldb == NULL)
+ return NULL;
+
+ dsdb_set_global_schema(ldb);
+
+ ret = samba_ldb_connect(ldb, lp_ctx, url, flags);
+ if (ret != LDB_SUCCESS) {
+ talloc_free(ldb);
return NULL;
}
+
+ schema = dsdb_get_schema(ldb, NULL);
+ /* make the resulting schema global */
+ if (schema) {
+ dsdb_make_schema_global(ldb, schema);
+ }
+
+ if (!ldb_wrap_add(url, ev_ctx, lp_ctx, session_info, credentials, flags, ldb)) {
+ talloc_free(ldb);
+ return NULL;
+ }
+
return ldb;
}
diff --git a/source4/dsdb/wscript_build b/source4/dsdb/wscript_build
index 784d93b..90d265f 100644
--- a/source4/dsdb/wscript_build
+++ b/source4/dsdb/wscript_build
@@ -6,14 +6,14 @@ bld.SAMBA_SUBSYSTEM('SAMDB',
source='samdb/samdb.c samdb/samdb_privilege.c samdb/cracknames.c repl/replicated_objects.c',
autoproto='samdb/samdb_proto.h',
public_deps='krb5',
- deps='LIBNDR NDR_DRSUAPI NDR_DRSBLOBS NSS_WRAPPER auth_system_session LIBCLI_AUTH LIBNDR SAMDB_SCHEMA LDBSAMBA SAMDB_COMMON LIBCLI_DRSUAPI LIBCLI_LDAP_NDR LIBSAMBA-UTIL com_err'
+ deps='LIBNDR NDR_DRSUAPI NDR_DRSBLOBS NSS_WRAPPER auth_system_session LIBCLI_AUTH LIBNDR SAMDB_SCHEMA LDBSAMBA SAMDB_COMMON LIBCLI_DRSUAPI LIBCLI_LDAP_NDR LIBSAMBA-UTIL com_err KERBEROS CREDENTIALS'
)
bld.SAMBA_SUBSYSTEM('SAMDB_COMMON',
source='common/util.c common/util_samr.c common/dsdb_dn.c common/dsdb_access.c ../../libds/common/flag_mapping.c',
autoproto='common/proto.h',
- deps='ldb NDR_DRSBLOBS LIBCLI_LDAP_NDR UTIL_LDB LIBCLI_AUTH DSDB_MODULE_HELPERS'
+ deps='ldb NDR_DRSBLOBS LIBCLI_LDAP_NDR UTIL_LDB LIBCLI_AUTH LIBTSOCKET samba_socket'
)
diff --git a/source4/kdc/db-glue.c b/source4/kdc/db-glue.c
index 10d25ee..9d6a230 100644
--- a/source4/kdc/db-glue.c
+++ b/source4/kdc/db-glue.c
@@ -1660,7 +1660,7 @@ NTSTATUS samba_kdc_setup_db_ctx(TALLOC_CTX *mem_ctx, struct samba_kdc_base_conte
/* Setup the link to LDB */
kdc_db_ctx->samdb = samdb_connect(kdc_db_ctx, base_ctx->ev_ctx,
- base_ctx->lp_ctx, session_info);
+ base_ctx->lp_ctx, session_info, 0);
if (kdc_db_ctx->samdb == NULL) {
DEBUG(1, ("hdb_samba4_create: Cannot open samdb for KDC backend!"));
talloc_free(kdc_db_ctx);
diff --git a/source4/kdc/kpasswdd.c b/source4/kdc/kpasswdd.c
index 7148428..1ccae10 100644
--- a/source4/kdc/kpasswdd.c
+++ b/source4/kdc/kpasswdd.c
@@ -180,7 +180,7 @@ static bool kpasswdd_change_password(struct kdc_server *kdc,
/* Connect to a SAMDB with system privileges for fetching the old pw
* hashes. */
samdb = samdb_connect(mem_ctx, kdc->task->event_ctx, kdc->task->lp_ctx,
- system_session(kdc->task->lp_ctx));
+ system_session(kdc->task->lp_ctx), 0);
if (!samdb) {
return kpasswdd_make_error_reply(kdc, mem_ctx,
KRB5_KPASSWD_HARDERROR,
@@ -213,7 +213,7 @@ static bool kpasswdd_change_password(struct kdc_server *kdc,
/* Start a SAM with user privileges for the password change */
samdb = samdb_connect(mem_ctx, kdc->task->event_ctx, kdc->task->lp_ctx,
- session_info);
+ session_info, 0);
if (!samdb) {
return kpasswdd_make_error_reply(kdc, mem_ctx,
KRB5_KPASSWD_HARDERROR,
@@ -371,7 +371,7 @@ static bool kpasswd_process_request(struct kdc_server *kdc,
}
krb5_free_principal(context, principal);
- samdb = samdb_connect(mem_ctx, kdc->task->event_ctx, kdc->task->lp_ctx, session_info);
+ samdb = samdb_connect(mem_ctx, kdc->task->event_ctx, kdc->task->lp_ctx, session_info, 0);
if (!samdb) {
return kpasswdd_make_error_reply(kdc, mem_ctx,
KRB5_KPASSWD_HARDERROR,
diff --git a/source4/ldap_server/ldap_backend.c b/source4/ldap_server/ldap_backend.c
index 6a518e4..6f2a764 100644
--- a/source4/ldap_server/ldap_backend.c
+++ b/source4/ldap_server/ldap_backend.c
@@ -194,12 +194,10 @@ static int map_ldb_error(TALLOC_CTX *mem_ctx, int ldb_err,
*/
NTSTATUS ldapsrv_backend_Init(struct ldapsrv_connection *conn)
{
- conn->ldb = ldb_wrap_connect(conn,
+ conn->ldb = samdb_connect(conn,
conn->connection->event.ctx,
conn->lp_ctx,
- lpcfg_sam_url(conn->lp_ctx),
conn->session_info,
- samdb_credentials(conn->connection->event.ctx, conn->lp_ctx),
conn->global_catalog ? LDB_FLG_RDONLY : 0);
if (conn->ldb == NULL) {
return NT_STATUS_INTERNAL_DB_CORRUPTION;
diff --git a/source4/ldap_server/ldap_server.c b/source4/ldap_server/ldap_server.c
index e196fbf..ba5a268 100644
--- a/source4/ldap_server/ldap_server.c
+++ b/source4/ldap_server/ldap_server.c
@@ -841,7 +841,7 @@ static NTSTATUS add_socket(struct tevent_context *event_context,
/* Load LDAP database, but only to read our settings */
ldb = samdb_connect(ldap_service, ldap_service->task->event_ctx,
- lp_ctx, system_session(lp_ctx));
+ lp_ctx, system_session(lp_ctx), 0);
if (!ldb) {
return NT_STATUS_INTERNAL_DB_CORRUPTION;
}
diff --git a/source4/lib/ldb-samba/ldb_wrap.c b/source4/lib/ldb-samba/ldb_wrap.c
index ebc1818..b09e68c 100644
--- a/source4/lib/ldb-samba/ldb_wrap.c
+++ b/source4/lib/ldb-samba/ldb_wrap.c
@@ -61,7 +61,7 @@ static void ldb_wrap_debug(void *context, enum ldb_debug_level level,
case LDB_DEBUG_TRACE:
samba_level = 5;
break;
-
+
};
vasprintf(&s, fmt, ap);
if (!s) return;
@@ -94,20 +94,6 @@ static struct ldb_wrap {
struct ldb_context *ldb;
} *ldb_wrap_list;
-/*
- see if two database opens are equivalent
- */
-static bool ldb_wrap_same_context(const struct ldb_wrap_context *c1,
- const struct ldb_wrap_context *c2)
-{
- return (c1->ev == c2->ev &&
- c1->lp_ctx == c2->lp_ctx &&
- c1->session_info == c2->session_info &&
- c1->credentials == c2->credentials &&
- c1->flags == c2->flags &&
- (c1->url == c2->url || strcmp(c1->url, c2->url) == 0));
-}
-
/*
free a ldb_wrap structure
*/
--
Samba Shared Repository
More information about the samba-cvs
mailing list