mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
r22473: Correct fix for setting a default compat tdb idmap backend.
Previous code would always fill in "idmap backend = tdb"
even if you defined idmap domains. My fault. I should
have tested the original patch more before committing.
(This used to be commit a60c3f6a5a
)
This commit is contained in:
parent
655d2b5200
commit
b9c4009037
@ -289,40 +289,42 @@ NTSTATUS idmap_init(void)
|
||||
|
||||
dom_list = lp_idmap_domains();
|
||||
|
||||
if ( dom_list && lp_idmap_backend() ) {
|
||||
DEBUG(0, ("WARNING: idmap backend and idmap domains are "
|
||||
"mutually excusive!\n"));
|
||||
DEBUGADD(0,("idmap backend option will be IGNORED!\n"));
|
||||
} else if ( lp_idmap_backend() ) {
|
||||
const char **compat_list = lp_idmap_backend();
|
||||
if ( lp_idmap_backend() ) {
|
||||
const char **compat_list = lp_idmap_backend();
|
||||
char *p = NULL;
|
||||
const char *q = NULL;
|
||||
|
||||
compat = 1;
|
||||
|
||||
if ( (compat_backend = talloc_strdup( idmap_ctx, *compat_list )) == NULL ) {
|
||||
ret = NT_STATUS_NO_MEMORY;
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* strip any leading idmap_ prefix of */
|
||||
if (strncmp(*compat_list, "idmap_", 6) == 0 ) {
|
||||
q = *compat_list += 6;
|
||||
DEBUG(0, ("WARNING: idmap backend uses obsolete and "
|
||||
"deprecated 'idmap_' prefix.\n"
|
||||
"Please replace 'idmap_%s' by '%s' in %s\n",
|
||||
q, q, dyn_CONFIGFILE));
|
||||
compat_backend = talloc_strdup( idmap_ctx, q);
|
||||
if ( dom_list ) {
|
||||
DEBUG(0, ("WARNING: idmap backend and idmap domains are "
|
||||
"mutually excusive!\n"));
|
||||
DEBUGADD(0,("idmap backend option will be IGNORED!\n"));
|
||||
} else {
|
||||
compat_backend = talloc_strdup( idmap_ctx, *compat_list);
|
||||
}
|
||||
compat = 1;
|
||||
|
||||
if ( (compat_backend = talloc_strdup( idmap_ctx, *compat_list )) == NULL ) {
|
||||
ret = NT_STATUS_NO_MEMORY;
|
||||
goto done;
|
||||
}
|
||||
|
||||
/* strip any leading idmap_ prefix of */
|
||||
if (strncmp(*compat_list, "idmap_", 6) == 0 ) {
|
||||
q = *compat_list += 6;
|
||||
DEBUG(0, ("WARNING: idmap backend uses obsolete and "
|
||||
"deprecated 'idmap_' prefix.\n"
|
||||
"Please replace 'idmap_%s' by '%s' in %s\n",
|
||||
q, q, dyn_CONFIGFILE));
|
||||
compat_backend = talloc_strdup( idmap_ctx, q);
|
||||
} else {
|
||||
compat_backend = talloc_strdup( idmap_ctx, *compat_list);
|
||||
}
|
||||
|
||||
/* separate the backend and module arguements */
|
||||
if ((p = strchr(compat_backend, ':')) != NULL) {
|
||||
*p = '\0';
|
||||
compat_params = p + 1;
|
||||
}
|
||||
} else {
|
||||
/* separate the backend and module arguements */
|
||||
if ((p = strchr(compat_backend, ':')) != NULL) {
|
||||
*p = '\0';
|
||||
compat_params = p + 1;
|
||||
}
|
||||
}
|
||||
} else if ( !dom_list ) {
|
||||
/* Back compatible: without idmap domains and explicit
|
||||
idmap backend. Taking default idmap backend: tdb */
|
||||
|
||||
@ -331,7 +333,6 @@ NTSTATUS idmap_init(void)
|
||||
compat_params = compat_backend;
|
||||
}
|
||||
|
||||
|
||||
if ( ! dom_list) {
|
||||
dom_list = idmap_default_domain;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user