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:
parent
e104e5a819
commit
65268f482d
@ -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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user