From 711f8d0a13c6854f8c552a9561571d26fa5e9884 Mon Sep 17 00:00:00 2001 From: Gerald Carter Date: Fri, 6 Jun 2003 13:48:39 +0000 Subject: * break out more common code used between pdb_ldap and idmap_ldap * remove 'winbind uid' and 'winbind gid' parameters (replaced by current idmap parameter) * create the sambaUnixIdPool entries automatically in the 'ldap idmap suffix' * add new 'ldap idmap suffix' and 'ldap group suffix' parametrer * "idmap backend = ldap" now accepts 'ldap:ldap://server/' format (parameters are passed to idmap init() function (This used to be commit 1665926281ed2be3c5affca551c9d458d013fc7f) --- source3/sam/idmap.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'source3/sam/idmap.c') diff --git a/source3/sam/idmap.c b/source3/sam/idmap.c index 62377a9228..d031c49e25 100644 --- a/source3/sam/idmap.c +++ b/source3/sam/idmap.c @@ -105,19 +105,30 @@ BOOL idmap_init(void) return False; } - if (NT_STATUS_IS_ERR(local_map->init())) { + if (NT_STATUS_IS_ERR(local_map->init( NULL ))) { DEBUG(0, ("idmap_init: could not load or create local backend!\n")); return False; } } if (!remote_map && remote_backend && *remote_backend != 0) { + fstring params = ""; + char *pparams; + + /* get any mode parameters passed in */ + + if ( (pparams = strchr( remote_backend, ':' )) != NULL ) { + pparams = '\0'; + pparams++; + fstrcpy( params, pparams ); + } + DEBUG(3, ("idmap_init: using '%s' as remote backend\n", remote_backend)); if((remote_map = get_methods(remote_backend)) || (NT_STATUS_IS_OK(smb_probe_module("idmap", remote_backend)) && (remote_map = get_methods(remote_backend)))) { - remote_map->init(); + remote_map->init(params); } else { DEBUG(0, ("idmap_init: could not load remote backend '%s'\n", remote_backend)); return False; -- cgit