1
0
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:
Gerald Carter 2007-04-23 06:10:22 +00:00 committed by Gerald (Jerry) Carter
parent 655d2b5200
commit b9c4009037

View File

@ -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;
}