mirror of
https://github.com/samba-team/samba.git
synced 2025-11-07 12:23:51 +03:00
r7777: allow for overriding the location of the sam databasein the ldap server, using
ldapsrv:samdb option. This allows the following:
sam database=ldap://localhost
ldapsrv:samdb=tdb:///home/tridge/samba/samba4/prefix/private/sam.ldb
which allows us to test putting the sam on an ldap server using our
own ldap server. This is a great stress test for the ldap code.
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
9fa21b2458
commit
40948ba384
@@ -255,3 +255,17 @@ NTSTATUS ldapsrv_do_call(struct ldapsrv_call *call)
|
|||||||
return ldapsrv_unwilling(call, 2);
|
return ldapsrv_unwilling(call, 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
connect to the sam database
|
||||||
|
*/
|
||||||
|
struct ldb_context *ldapsrv_sam_connect(struct ldapsrv_call *call)
|
||||||
|
{
|
||||||
|
const char *url;
|
||||||
|
url = lp_parm_string(-1, "ldapsrv", "samdb");
|
||||||
|
if (url) {
|
||||||
|
return ldb_wrap_connect(call, url, 0, NULL);
|
||||||
|
}
|
||||||
|
return samdb_connect(call);
|
||||||
|
}
|
||||||
|
|||||||
@@ -461,7 +461,7 @@ queue_reply2:
|
|||||||
}
|
}
|
||||||
|
|
||||||
static NTSTATUS hldb_Search(struct ldapsrv_partition *partition, struct ldapsrv_call *call,
|
static NTSTATUS hldb_Search(struct ldapsrv_partition *partition, struct ldapsrv_call *call,
|
||||||
struct ldap_SearchRequest *r)
|
struct ldap_SearchRequest *r)
|
||||||
{
|
{
|
||||||
NTSTATUS status;
|
NTSTATUS status;
|
||||||
void *local_ctx;
|
void *local_ctx;
|
||||||
@@ -481,7 +481,7 @@ static NTSTATUS hldb_Search(struct ldapsrv_partition *partition, struct ldapsrv_
|
|||||||
local_ctx = talloc_named(call, 0, "hldb_Search local memory context");
|
local_ctx = talloc_named(call, 0, "hldb_Search local memory context");
|
||||||
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
||||||
|
|
||||||
samdb = samdb_connect(local_ctx);
|
samdb = ldapsrv_sam_connect(call);
|
||||||
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
||||||
|
|
||||||
status = hacked_Search(partition, call, r, samdb);
|
status = hacked_Search(partition, call, r, samdb);
|
||||||
@@ -618,7 +618,7 @@ static NTSTATUS hldb_Add(struct ldapsrv_partition *partition, struct ldapsrv_cal
|
|||||||
local_ctx = talloc_named(call, 0, "hldb_Add local memory context");
|
local_ctx = talloc_named(call, 0, "hldb_Add local memory context");
|
||||||
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
||||||
|
|
||||||
samdb = samdb_connect(local_ctx);
|
samdb = ldapsrv_sam_connect(call);
|
||||||
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
||||||
|
|
||||||
dn = ldap_parse_dn(local_ctx, r->dn);
|
dn = ldap_parse_dn(local_ctx, r->dn);
|
||||||
@@ -717,7 +717,7 @@ static NTSTATUS hldb_Del(struct ldapsrv_partition *partition, struct ldapsrv_cal
|
|||||||
local_ctx = talloc_named(call, 0, "hldb_Del local memory context");
|
local_ctx = talloc_named(call, 0, "hldb_Del local memory context");
|
||||||
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
||||||
|
|
||||||
samdb = samdb_connect(local_ctx);
|
samdb = ldapsrv_sam_connect(call);
|
||||||
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
||||||
|
|
||||||
dn = ldap_parse_dn(local_ctx, r->dn);
|
dn = ldap_parse_dn(local_ctx, r->dn);
|
||||||
@@ -772,7 +772,7 @@ static NTSTATUS hldb_Modify(struct ldapsrv_partition *partition, struct ldapsrv_
|
|||||||
local_ctx = talloc_named(call, 0, "hldb_Modify local memory context");
|
local_ctx = talloc_named(call, 0, "hldb_Modify local memory context");
|
||||||
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
||||||
|
|
||||||
samdb = samdb_connect(local_ctx);
|
samdb = ldapsrv_sam_connect(call);
|
||||||
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
||||||
|
|
||||||
dn = ldap_parse_dn(local_ctx, r->dn);
|
dn = ldap_parse_dn(local_ctx, r->dn);
|
||||||
@@ -889,7 +889,7 @@ static NTSTATUS hldb_Compare(struct ldapsrv_partition *partition, struct ldapsrv
|
|||||||
local_ctx = talloc_named(call, 0, "hldb_Compare local_memory_context");
|
local_ctx = talloc_named(call, 0, "hldb_Compare local_memory_context");
|
||||||
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
||||||
|
|
||||||
samdb = samdb_connect(local_ctx);
|
samdb = ldapsrv_sam_connect(call);
|
||||||
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
||||||
|
|
||||||
dn = ldap_parse_dn(local_ctx, r->dn);
|
dn = ldap_parse_dn(local_ctx, r->dn);
|
||||||
@@ -957,7 +957,7 @@ static NTSTATUS hldb_ModifyDN(struct ldapsrv_partition *partition, struct ldapsr
|
|||||||
local_ctx = talloc_named(call, 0, "hldb_ModifyDN local memory context");
|
local_ctx = talloc_named(call, 0, "hldb_ModifyDN local memory context");
|
||||||
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
||||||
|
|
||||||
samdb = samdb_connect(local_ctx);
|
samdb = ldapsrv_sam_connect(call);
|
||||||
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
||||||
|
|
||||||
olddn = ldap_parse_dn(local_ctx, r->dn);
|
olddn = ldap_parse_dn(local_ctx, r->dn);
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ static NTSTATUS sldb_Search(struct ldapsrv_partition *partition, struct ldapsrv_
|
|||||||
local_ctx = talloc_named(call, 0, "sldb_Search local memory context");
|
local_ctx = talloc_named(call, 0, "sldb_Search local memory context");
|
||||||
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
||||||
|
|
||||||
samdb = samdb_connect(local_ctx);
|
samdb = ldapsrv_sam_connect(call);
|
||||||
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
||||||
|
|
||||||
basedn = ldap_parse_dn(local_ctx, r->basedn);
|
basedn = ldap_parse_dn(local_ctx, r->basedn);
|
||||||
@@ -179,7 +179,7 @@ static NTSTATUS sldb_Add(struct ldapsrv_partition *partition, struct ldapsrv_cal
|
|||||||
local_ctx = talloc_named(call, 0, "sldb_Add local memory context");
|
local_ctx = talloc_named(call, 0, "sldb_Add local memory context");
|
||||||
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
||||||
|
|
||||||
samdb = samdb_connect(local_ctx);
|
samdb = ldapsrv_sam_connect(call);
|
||||||
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
||||||
|
|
||||||
dn = ldap_parse_dn(local_ctx, r->dn);
|
dn = ldap_parse_dn(local_ctx, r->dn);
|
||||||
@@ -277,7 +277,7 @@ static NTSTATUS sldb_Del(struct ldapsrv_partition *partition, struct ldapsrv_cal
|
|||||||
local_ctx = talloc_named(call, 0, "sldb_Del local memory context");
|
local_ctx = talloc_named(call, 0, "sldb_Del local memory context");
|
||||||
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
||||||
|
|
||||||
samdb = samdb_connect(local_ctx);
|
samdb = ldapsrv_sam_connect(call);
|
||||||
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
||||||
|
|
||||||
dn = ldap_parse_dn(local_ctx, r->dn);
|
dn = ldap_parse_dn(local_ctx, r->dn);
|
||||||
@@ -332,7 +332,7 @@ static NTSTATUS sldb_Modify(struct ldapsrv_partition *partition, struct ldapsrv_
|
|||||||
local_ctx = talloc_named(call, 0, "sldb_Modify local memory context");
|
local_ctx = talloc_named(call, 0, "sldb_Modify local memory context");
|
||||||
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
||||||
|
|
||||||
samdb = samdb_connect(local_ctx);
|
samdb = ldapsrv_sam_connect(call);
|
||||||
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
||||||
|
|
||||||
dn = ldap_parse_dn(local_ctx, r->dn);
|
dn = ldap_parse_dn(local_ctx, r->dn);
|
||||||
@@ -444,7 +444,7 @@ static NTSTATUS sldb_Compare(struct ldapsrv_partition *partition, struct ldapsrv
|
|||||||
local_ctx = talloc_named(call, 0, "sldb_Compare local_memory_context");
|
local_ctx = talloc_named(call, 0, "sldb_Compare local_memory_context");
|
||||||
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
||||||
|
|
||||||
samdb = samdb_connect(local_ctx);
|
samdb = ldapsrv_sam_connect(call);
|
||||||
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
||||||
|
|
||||||
dn = ldap_parse_dn(local_ctx, r->dn);
|
dn = ldap_parse_dn(local_ctx, r->dn);
|
||||||
@@ -512,7 +512,7 @@ static NTSTATUS sldb_ModifyDN(struct ldapsrv_partition *partition, struct ldapsr
|
|||||||
local_ctx = talloc_named(call, 0, "sldb_ModifyDN local memory context");
|
local_ctx = talloc_named(call, 0, "sldb_ModifyDN local memory context");
|
||||||
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
NT_STATUS_HAVE_NO_MEMORY(local_ctx);
|
||||||
|
|
||||||
samdb = samdb_connect(local_ctx);
|
samdb = ldapsrv_sam_connect(call);
|
||||||
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
NT_STATUS_HAVE_NO_MEMORY(samdb);
|
||||||
|
|
||||||
olddn = ldap_parse_dn(local_ctx, r->dn);
|
olddn = ldap_parse_dn(local_ctx, r->dn);
|
||||||
|
|||||||
Reference in New Issue
Block a user