mirror of
https://github.com/samba-team/samba.git
synced 2025-01-11 05:18:09 +03:00
ldb-samba: Rename samdb_relative_path to ldb_relative_path, as it's not samdb-specific.
This commit is contained in:
parent
33c4b85058
commit
e2f3e10b1a
@ -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) {
|
||||
|
@ -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
|
||||
*/
|
||||
|
@ -338,3 +338,29 @@ int samba_ldb_connect(struct ldb_context *ldb, struct loadparm_context *lp_ctx,
|
||||
}
|
||||
}
|
||||
|
||||
char *ldb_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;
|
||||
}
|
||||
|
@ -60,5 +60,8 @@ bool ldb_wrap_add(const char *url, struct tevent_context *ev,
|
||||
struct cli_credentials *credentials,
|
||||
int flags,
|
||||
struct ldb_context *ldb);
|
||||
char *ldb_relative_path(struct ldb_context *ldb,
|
||||
TALLOC_CTX *mem_ctx,
|
||||
const char *name);
|
||||
|
||||
#endif /* _LDB_WRAP_H_ */
|
||||
|
@ -181,7 +181,7 @@ char *keytab_name_from_msg(TALLOC_CTX *mem_ctx, struct ldb_context *ldb, struct
|
||||
return NULL;
|
||||
}
|
||||
|
||||
relative_path = samdb_relative_path(ldb, mem_ctx, privateKeytab);
|
||||
relative_path = ldb_relative_path(ldb, mem_ctx, privateKeytab);
|
||||
if (!relative_path) {
|
||||
return NULL;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user