diff options
author | Jelmer Vernooij <jelmer@samba.org> | 2010-10-10 23:45:23 +0200 |
---|---|---|
committer | Jelmer Vernooij <jelmer@samba.org> | 2010-10-10 23:45:23 +0200 |
commit | e2f3e10b1a47e195e9b329ac244be93c2fcdf0a0 (patch) | |
tree | 88549fc4df55870e274155a2074acd688339ee9f /source4/lib/ldb-samba | |
parent | 33c4b85058f21ab9865bc7cf1b49b7bd38e0275d (diff) | |
download | samba-e2f3e10b1a47e195e9b329ac244be93c2fcdf0a0.tar.gz samba-e2f3e10b1a47e195e9b329ac244be93c2fcdf0a0.tar.bz2 samba-e2f3e10b1a47e195e9b329ac244be93c2fcdf0a0.zip |
ldb-samba: Rename samdb_relative_path to ldb_relative_path, as it's not samdb-specific.
Diffstat (limited to 'source4/lib/ldb-samba')
-rw-r--r-- | source4/lib/ldb-samba/ldb_wrap.c | 26 | ||||
-rw-r--r-- | source4/lib/ldb-samba/ldb_wrap.h | 3 |
2 files changed, 29 insertions, 0 deletions
diff --git a/source4/lib/ldb-samba/ldb_wrap.c b/source4/lib/ldb-samba/ldb_wrap.c index 7ac94dea2c..b09e68c0a1 100644 --- a/source4/lib/ldb-samba/ldb_wrap.c +++ b/source4/lib/ldb-samba/ldb_wrap.c @@ -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; +} diff --git a/source4/lib/ldb-samba/ldb_wrap.h b/source4/lib/ldb-samba/ldb_wrap.h index a835f665fc..531aa9ac70 100644 --- a/source4/lib/ldb-samba/ldb_wrap.h +++ b/source4/lib/ldb-samba/ldb_wrap.h @@ -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_ */ |