diff options
Diffstat (limited to 'source3/lib/substitute.c')
-rw-r--r-- | source3/lib/substitute.c | 28 |
1 files changed, 23 insertions, 5 deletions
diff --git a/source3/lib/substitute.c b/source3/lib/substitute.c index e5cd0f28804..f3f2e1bc0e1 100644 --- a/source3/lib/substitute.c +++ b/source3/lib/substitute.c @@ -790,21 +790,19 @@ char *talloc_sub_specified(TALLOC_CTX *mem_ctx, /**************************************************************************** ****************************************************************************/ -char *talloc_sub_full(TALLOC_CTX *ctx, +char *talloc_sub_advanced(TALLOC_CTX *ctx, const char *servicename, const char *user, const char *connectpath, gid_t gid, - const char *smb_name, - const char *domain_name, const char *str) { - char *a_string, *ret_string; + char *a_string; char *b, *p, *s; a_string = talloc_strdup(talloc_tos(), str); if (a_string == NULL) { - DBG_ERR("Out of memory!\n"); + DEBUG(0, ("talloc_sub_advanced_only: Out of memory!\n")); return NULL; } @@ -858,6 +856,26 @@ char *talloc_sub_full(TALLOC_CTX *ctx, } } + return a_string; +} + +char *talloc_sub_full(TALLOC_CTX *ctx, + const char *servicename, + const char *user, + const char *connectpath, + gid_t gid, + const char *smb_name, + const char *domain_name, + const char *str) +{ + char *a_string, *ret_string; + + a_string = talloc_sub_advanced(ctx, servicename, user, connectpath, + gid, str); + if (a_string == NULL) { + return NULL; + } + ret_string = talloc_sub_basic(ctx, smb_name, domain_name, a_string); TALLOC_FREE(a_string); return ret_string; |