1
0
mirror of https://github.com/samba-team/samba.git synced 2025-02-04 17:47:26 +03:00

s3:net_idmap_dump deal with idmap config * : backend config style

this is the new config style since Samba 3.6 and should be detected by net idmap dump

Signed-off-by: Christian Ambach <ambi@samba.org>
Reviewed-by: Michael Adam <obnox@samba.org>
This commit is contained in:
Christian Ambach 2012-11-29 21:39:54 +01:00 committed by Michael Adam
parent e104e5a819
commit 65268f482d

View File

@ -67,18 +67,25 @@ static int net_idmap_dump_one_entry(struct db_record *rec,
static const char* net_idmap_dbfile(struct net_context *c) static const char* net_idmap_dbfile(struct net_context *c)
{ {
const char* dbfile = NULL; const char* dbfile = NULL;
const char *backend = NULL;
/* prefer idmap config * : backend over idmap backend parameter */
backend = lp_parm_const_string(-1, "idmap config *", "backend", NULL);
if (!backend) {
backend = lp_idmap_backend();
}
if (c->opt_db != NULL) { if (c->opt_db != NULL) {
dbfile = talloc_strdup(talloc_tos(), c->opt_db); dbfile = talloc_strdup(talloc_tos(), c->opt_db);
if (dbfile == NULL) { if (dbfile == NULL) {
d_fprintf(stderr, _("Out of memory!\n")); d_fprintf(stderr, _("Out of memory!\n"));
} }
} else if (strequal(lp_idmap_backend(), "tdb")) { } else if (strequal(backend, "tdb")) {
dbfile = state_path("winbindd_idmap.tdb"); dbfile = state_path("winbindd_idmap.tdb");
if (dbfile == NULL) { if (dbfile == NULL) {
d_fprintf(stderr, _("Out of memory!\n")); d_fprintf(stderr, _("Out of memory!\n"));
} }
} else if (strequal(lp_idmap_backend(), "tdb2")) { } else if (strequal(backend, "tdb2")) {
dbfile = lp_parm_talloc_string(talloc_tos(), dbfile = lp_parm_talloc_string(talloc_tos(),
-1, "tdb", "idmap2.tdb", NULL); -1, "tdb", "idmap2.tdb", NULL);
if (dbfile == NULL) { if (dbfile == NULL) {
@ -89,16 +96,16 @@ static const char* net_idmap_dbfile(struct net_context *c)
d_fprintf(stderr, _("Out of memory!\n")); d_fprintf(stderr, _("Out of memory!\n"));
} }
} else { } else {
char* backend = talloc_strdup(talloc_tos(), lp_idmap_backend()); char *_backend = talloc_strdup(talloc_tos(), backend);
char* args = strchr(backend, ':'); char* args = strchr(_backend, ':');
if (args != NULL) { if (args != NULL) {
*args = '\0'; *args = '\0';
} }
d_printf(_("Sorry, 'idmap backend = %s' is currently not supported\n"), d_printf(_("Sorry, 'idmap backend = %s' is currently not supported\n"),
backend); _backend);
talloc_free(backend); talloc_free(_backend);
} }
return dbfile; return dbfile;