1
0
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:
Jelmer Vernooij 2010-10-10 23:45:23 +02:00
parent 33c4b85058
commit e2f3e10b1a
5 changed files with 32 additions and 29 deletions

View File

@ -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) {

View File

@ -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
*/

View File

@ -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;
}

View File

@ -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_ */

View File

@ -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;
}