We currently have the following substitution functions:
talloc_sub_basic()
talloc_sub_advanced()
talloc_sub_basic() currently substitutes a subset of talloc_sub_advanced().
We'll need a function X that only substitutes what talloc_sub_advanced()
substitutes *without* what talloc_sub_basic() does.
To get there rename talloc_sub_advanced() to talloc_sub_full(). A subsequent
commit will then bring back talloc_sub_advanced() as described above.
Examples with fictional replacement letters A and B. Currently:
talloc_sub_basic: A
talloc_sub_advanced: AB
New:
talloc_sub_basic: A
talloc_sub_advanced: B
talloc_sub_full: AB
BUG: https://bugzilla.samba.org/show_bug.cgi?id=13745
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
const char *domain,
uid_t uid,
gid_t gid);
const char *domain,
uid_t uid,
gid_t gid);
-char *talloc_sub_advanced(TALLOC_CTX *mem_ctx,
+char *talloc_sub_full(TALLOC_CTX *mem_ctx,
const char *servicename, const char *user,
const char *connectpath, gid_t gid,
const char *smb_name, const char *domain_name,
const char *servicename, const char *user,
const char *connectpath, gid_t gid,
const char *smb_name, const char *domain_name,
/****************************************************************************
****************************************************************************/
/****************************************************************************
****************************************************************************/
-char *talloc_sub_advanced(TALLOC_CTX *ctx,
+char *talloc_sub_full(TALLOC_CTX *ctx,
const char *servicename,
const char *user,
const char *connectpath,
const char *servicename,
const char *user,
const char *connectpath,
a_string = talloc_strdup(talloc_tos(), str);
if (a_string == NULL) {
a_string = talloc_strdup(talloc_tos(), str);
if (a_string == NULL) {
- DEBUG(0, ("talloc_sub_advanced: Out of memory!\n"));
+ DBG_ERR("Out of memory!\n");
- targethost = talloc_sub_advanced(ctx,
+ targethost = talloc_sub_full(ctx,
lp_servicename(talloc_tos(), SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
lp_servicename(talloc_tos(), SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
if (!prefix) {
return NULL;
}
if (!prefix) {
return NULL;
}
- result = talloc_sub_advanced(ctx,
+ result = talloc_sub_full(ctx,
lp_servicename(talloc_tos(), SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
lp_servicename(talloc_tos(), SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
- repository = talloc_sub_advanced(NULL, lp_servicename(talloc_tos(), SNUM(conn)),
+ repository = talloc_sub_full(NULL, lp_servicename(talloc_tos(), SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
conn->session_info->unix_token->gid,
conn->session_info->unix_info->unix_name,
conn->connectpath,
conn->session_info->unix_token->gid,
connection_struct *conn,
const char *str)
{
connection_struct *conn,
const char *str)
{
- return talloc_sub_advanced(mem_ctx,
+ return talloc_sub_full(mem_ctx,
lp_servicename(mem_ctx, SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
lp_servicename(mem_ctx, SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
}
if (do_sub && snum != -1) {
}
if (do_sub && snum != -1) {
- syscmd = talloc_sub_advanced(ctx,
+ syscmd = talloc_sub_full(ctx,
lp_servicename(talloc_tos(), snum),
current_user_info.unix_name,
"",
lp_servicename(talloc_tos(), snum),
current_user_info.unix_name,
"",
if (!lpqcommand) {
return;
}
if (!lpqcommand) {
return;
}
- lpqcommand = talloc_sub_advanced(ctx,
+ lpqcommand = talloc_sub_full(ctx,
lp_servicename(talloc_tos(), snum),
current_user_info.unix_name,
"",
lp_servicename(talloc_tos(), snum),
current_user_info.unix_name,
"",
if (!lprmcommand) {
return;
}
if (!lprmcommand) {
return;
}
- lprmcommand = talloc_sub_advanced(ctx,
+ lprmcommand = talloc_sub_full(ctx,
lp_servicename(talloc_tos(), snum),
current_user_info.unix_name,
"",
lp_servicename(talloc_tos(), snum),
current_user_info.unix_name,
"",
fstrcpy(pjob.clientmachine, clientmachine);
fstrcpy(pjob.clientmachine, clientmachine);
- userstr = talloc_sub_advanced(talloc_tos(),
+ userstr = talloc_sub_full(talloc_tos(),
sharename,
server_info->unix_info->sanitized_username,
path, server_info->unix_token->gid,
sharename,
server_info->unix_info->sanitized_username,
path, server_info->unix_token->gid,
status = NT_STATUS_PRINT_CANCELLED;
goto fail;
}
status = NT_STATUS_PRINT_CANCELLED;
goto fail;
}
- lpq_cmd = talloc_sub_advanced(tmp_ctx,
+ lpq_cmd = talloc_sub_full(tmp_ctx,
lp_servicename(talloc_tos(), snum),
current_user_info.unix_name,
"",
lp_servicename(talloc_tos(), snum),
current_user_info.unix_name,
"",
char *remark = lp_comment(p->mem_ctx, snum);
if (remark) {
char *remark = lp_comment(p->mem_ctx, snum);
if (remark) {
- remark = talloc_sub_advanced(
+ remark = talloc_sub_full(
p->mem_ctx, lp_servicename(talloc_tos(), snum),
get_current_username(), lp_path(talloc_tos(), snum),
p->session_info->unix_token->uid, get_current_username(),
p->mem_ctx, lp_servicename(talloc_tos(), snum),
get_current_username(), lp_path(talloc_tos(), snum),
p->session_info->unix_token->uid, get_current_username(),
remark = lp_comment(p->mem_ctx, snum);
if (remark) {
remark = lp_comment(p->mem_ctx, snum);
if (remark) {
- remark = talloc_sub_advanced(
+ remark = talloc_sub_full(
p->mem_ctx, lp_servicename(talloc_tos(), snum),
get_current_username(), lp_path(talloc_tos(), snum),
p->session_info->unix_token->uid, get_current_username(),
p->mem_ctx, lp_servicename(talloc_tos(), snum),
get_current_username(), lp_path(talloc_tos(), snum),
p->session_info->unix_token->uid, get_current_username(),
char *remark = lp_comment(p->mem_ctx, snum);
if (remark) {
char *remark = lp_comment(p->mem_ctx, snum);
if (remark) {
- remark = talloc_sub_advanced(
+ remark = talloc_sub_full(
p->mem_ctx, lp_servicename(talloc_tos(), snum),
get_current_username(), lp_path(talloc_tos(), snum),
p->session_info->unix_token->uid, get_current_username(),
p->mem_ctx, lp_servicename(talloc_tos(), snum),
get_current_username(), lp_path(talloc_tos(), snum),
p->session_info->unix_token->uid, get_current_username(),
char *remark = lp_comment(ctx, snum);
if (remark) {
char *remark = lp_comment(ctx, snum);
if (remark) {
- remark = talloc_sub_advanced(
+ remark = talloc_sub_full(
p->mem_ctx, lp_servicename(talloc_tos(), snum),
get_current_username(), lp_path(talloc_tos(), snum),
p->session_info->unix_token->uid, get_current_username(),
p->mem_ctx, lp_servicename(talloc_tos(), snum),
get_current_username(), lp_path(talloc_tos(), snum),
p->session_info->unix_token->uid, get_current_username(),
char *remark = lp_comment(p->mem_ctx, snum);
if (remark) {
char *remark = lp_comment(p->mem_ctx, snum);
if (remark) {
- remark = talloc_sub_advanced(
+ remark = talloc_sub_full(
p->mem_ctx, lp_servicename(talloc_tos(), snum),
get_current_username(), lp_path(talloc_tos(), snum),
p->session_info->unix_token->uid, get_current_username(),
p->mem_ctx, lp_servicename(talloc_tos(), snum),
get_current_username(), lp_path(talloc_tos(), snum),
p->session_info->unix_token->uid, get_current_username(),
*p_space_remaining = 0;
return 0;
}
*p_space_remaining = 0;
return 0;
}
- buf = talloc_sub_advanced(ctx,
+ buf = talloc_sub_full(ctx,
lp_servicename(ctx, SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
lp_servicename(ctx, SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
- buf = talloc_sub_advanced(ctx,
+ buf = talloc_sub_full(ctx,
lp_servicename(ctx, SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
lp_servicename(ctx, SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
conn->vuid = vuser->vuid;
{
conn->vuid = vuser->vuid;
{
- char *s = talloc_sub_advanced(talloc_tos(),
+ char *s = talloc_sub_full(talloc_tos(),
lp_const_servicename(SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
lp_const_servicename(SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
* to below */
/* execute any "root preexec = " line */
if (*lp_root_preexec(talloc_tos(), snum)) {
* to below */
/* execute any "root preexec = " line */
if (*lp_root_preexec(talloc_tos(), snum)) {
- char *cmd = talloc_sub_advanced(talloc_tos(),
+ char *cmd = talloc_sub_full(talloc_tos(),
lp_const_servicename(SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
lp_const_servicename(SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
/* execute any "preexec = " line */
if (*lp_preexec(talloc_tos(), snum)) {
/* execute any "preexec = " line */
if (*lp_preexec(talloc_tos(), snum)) {
- char *cmd = talloc_sub_advanced(talloc_tos(),
+ char *cmd = talloc_sub_full(talloc_tos(),
lp_const_servicename(SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
lp_const_servicename(SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
/* execute any "postexec = " line */
if (*lp_postexec(talloc_tos(), SNUM(conn)) &&
change_to_user_and_service(conn, vuid)) {
/* execute any "postexec = " line */
if (*lp_postexec(talloc_tos(), SNUM(conn)) &&
change_to_user_and_service(conn, vuid)) {
- char *cmd = talloc_sub_advanced(talloc_tos(),
+ char *cmd = talloc_sub_full(talloc_tos(),
lp_const_servicename(SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
lp_const_servicename(SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
change_to_root_user();
/* execute any "root postexec = " line */
if (*lp_root_postexec(talloc_tos(), SNUM(conn))) {
change_to_root_user();
/* execute any "root postexec = " line */
if (*lp_root_postexec(talloc_tos(), SNUM(conn))) {
- char *cmd = talloc_sub_advanced(talloc_tos(),
+ char *cmd = talloc_sub_full(talloc_tos(),
lp_const_servicename(SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,
lp_const_servicename(SNUM(conn)),
conn->session_info->unix_info->unix_name,
conn->connectpath,