summaryrefslogtreecommitdiff
path: root/nslcd/alias.c
diff options
context:
space:
mode:
authorArthur de Jong <arthur@arthurdejong.org>2007-09-08 19:15:12 +0000
committerArthur de Jong <arthur@arthurdejong.org>2007-09-08 19:15:12 +0000
commit78028ef3928c05573826daa726ffde40db291e83 (patch)
tree7ef92dd3689aa05091e2f79fc46545b410223111 /nslcd/alias.c
parent4b539318232ffc077eaa882963b9788d686610cb (diff)
move base and scope handling to database specific modules, gettting rid of ldap_service_search_descriptor
git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-ldapd@384 ef36b2f9-881f-0410-afb5-c4e39611909c
Diffstat (limited to 'nslcd/alias.c')
-rw-r--r--nslcd/alias.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/nslcd/alias.c b/nslcd/alias.c
index 6933a2b..e71bc18 100644
--- a/nslcd/alias.c
+++ b/nslcd/alias.c
@@ -83,8 +83,15 @@ static int mkfilter_alias_byname(const char *name,
attmap_alias_cn,buf2);
}
-static void alias_attrs_init(void)
+static void alias_init(void)
{
+ /* set up base */
+ if (alias_base==NULL)
+ alias_base=nslcd_cfg->ldc_base;
+ /* set up scope */
+ if (alias_scope==LDAP_SCOPE_DEFAULT)
+ alias_scope=nslcd_cfg->ldc_scope;
+ /* set up attribute list */
alias_attrs[0]=attmap_alias_cn;
alias_attrs[1]=attmap_alias_rfc822MailMember;
alias_attrs[2]=NULL;
@@ -141,8 +148,9 @@ int nslcd_alias_byname(TFILE *fp)
WRITE_INT32(fp,NSLCD_ACTION_ALIAS_BYNAME);
/* do the LDAP request */
mkfilter_alias_byname(name,filter,sizeof(filter));
- alias_attrs_init();
- _nss_ldap_searchbyname(NULL,filter,LM_ALIASES,alias_attrs,fp,write_alias);
+ alias_init();
+ _nss_ldap_searchbyname(alias_base,alias_scope,filter,alias_attrs,
+ fp,write_alias);
WRITE_FLUSH(fp);
/* we're done */
return 0;
@@ -165,9 +173,10 @@ int nslcd_alias_all(TFILE *fp)
/* initialize context */
_nss_ldap_ent_context_init(&context);
/* loop over all results */
- alias_attrs_init();
+ alias_init();
while ((retv=_nss_ldap_getent(&context,&result,buffer,sizeof(buffer),&errnop,
- NULL,alias_filter,alias_attrs,LM_ALIASES,_nss_ldap_parse_alias))==NSLCD_RESULT_SUCCESS)
+ alias_base,alias_scope,alias_filter,alias_attrs,
+ _nss_ldap_parse_alias))==NSLCD_RESULT_SUCCESS)
{
/* write the result */
WRITE_INT32(fp,retv);