summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2022-11-17 10:40:36 +0100
committerRalph Boehme <slow@samba.org>2023-03-29 17:55:50 +0000
commit443572ce4204c338a0e92417a9d0539a9ec2ddfa (patch)
tree8106d6d92310f294f9f375e978646d9ea43717be
parentffdfb78da7f5cdabeb06036d0851c83f920e99ea (diff)
downloadsamba-443572ce4204c338a0e92417a9d0539a9ec2ddfa.tar.gz
winbind: Factor out idmap_config_name()
3 times is enough, next patch will add a 4th one. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org>
-rw-r--r--source3/winbindd/idmap.c49
1 files changed, 19 insertions, 30 deletions
diff --git a/source3/winbindd/idmap.c b/source3/winbindd/idmap.c
index eee28992929..f3c6ca12e73 100644
--- a/source3/winbindd/idmap.c
+++ b/source3/winbindd/idmap.c
@@ -177,50 +177,39 @@ static bool idmap_init(void)
return true;
}
+static int idmap_config_name(const char *domname, char *buf, size_t buflen)
+{
+ int len = snprintf(buf, buflen, "idmap config %s", domname);
+ SMB_ASSERT(len > 0);
+ return len + 1;
+}
+
const char *idmap_config_const_string(const char *domname, const char *option,
const char *def)
{
- int len = snprintf(NULL, 0, "idmap config %s", domname);
+ int len = idmap_config_name(domname, NULL, 0);
+ char config_option[len];
+ idmap_config_name(domname, config_option, sizeof(config_option));
- if (len == -1) {
- return NULL;
- }
- {
- char config_option[len+1];
- snprintf(config_option, sizeof(config_option),
- "idmap config %s", domname);
- return lp_parm_const_string(-1, config_option, option, def);
- }
+ return lp_parm_const_string(-1, config_option, option, def);
}
bool idmap_config_bool(const char *domname, const char *option, bool def)
{
- int len = snprintf(NULL, 0, "idmap config %s", domname);
+ int len = idmap_config_name(domname, NULL, 0);
+ char config_option[len];
+ idmap_config_name(domname, config_option, sizeof(config_option));
- if (len == -1) {
- return def;
- }
- {
- char config_option[len+1];
- snprintf(config_option, sizeof(config_option),
- "idmap config %s", domname);
- return lp_parm_bool(-1, config_option, option, def);
- }
+ return lp_parm_bool(-1, config_option, option, def);
}
int idmap_config_int(const char *domname, const char *option, int def)
{
- int len = snprintf(NULL, 0, "idmap config %s", domname);
+ int len = idmap_config_name(domname, NULL, 0);
+ char config_option[len];
+ idmap_config_name(domname, config_option, sizeof(config_option));
- if (len == -1) {
- return def;
- }
- {
- char config_option[len+1];
- snprintf(config_option, sizeof(config_option),
- "idmap config %s", domname);
- return lp_parm_int(-1, config_option, option, def);
- }
+ return lp_parm_int(-1, config_option, option, def);
}
bool domain_has_idmap_config(const char *domname)