Arthur de Jong

Open Source / Free Software developer

summaryrefslogtreecommitdiffstats
path: root/nslcd
diff options
context:
space:
mode:
Diffstat (limited to 'nslcd')
-rw-r--r--nslcd/common.h3
-rw-r--r--nslcd/group.c21
-rw-r--r--nslcd/passwd.c19
3 files changed, 20 insertions, 23 deletions
diff --git a/nslcd/common.h b/nslcd/common.h
index e2490ad..f6a72b9 100644
--- a/nslcd/common.h
+++ b/nslcd/common.h
@@ -85,7 +85,6 @@ int nslcd_service_all(TFILE *fp,MYLDAP_SESSION *session);
int nslcd_shadow_byname(TFILE *fp,MYLDAP_SESSION *session);
int nslcd_shadow_all(TFILE *fp,MYLDAP_SESSION *session);
-int mkfilter_passwd_byname(const char *name,
- char *buffer,size_t buflen);
+char *passwd_username2dn(MYLDAP_SESSION *session,const char *username);
#endif /* not _SERVER_COMMON_H */
diff --git a/nslcd/group.c b/nslcd/group.c
index 910cb6d..9d85917 100644
--- a/nslcd/group.c
+++ b/nslcd/group.c
@@ -173,25 +173,6 @@ static int mkfilter_getgroupsbydn(const char *dn,
attmap_group_uniqueMember,dn);
}
-static char *user2dn(MYLDAP_SESSION *session,const char *user)
-{
- char *userdn=NULL;
- static const char *no_attrs[]={ NULL };
- char filter[1024];
- LDAPMessage *res, *e;
- mkfilter_passwd_byname(user,filter,sizeof(filter));
- if (_nss_ldap_search_sync(session,group_base,group_scope,filter,no_attrs,1,&res)==NSS_STATUS_SUCCESS)
- {
- e=_nss_ldap_first_entry(session,res);
- if (e!=NULL)
- {
- userdn=_nss_ldap_get_dn(session,e);
- }
- ldap_msgfree(res);
- }
- return userdn;
-}
-
static int mkfilter_group_bymember(MYLDAP_SESSION *session,const char *user,
char *buffer,size_t buflen)
{
@@ -203,7 +184,7 @@ static int mkfilter_group_bymember(MYLDAP_SESSION *session,const char *user,
return -1;
/* lookup the user's DN */
if (_nss_ldap_test_config_flag(NSS_LDAP_FLAGS_RFC2307BIS))
- userdn=user2dn(session,user);
+ userdn=passwd_username2dn(session,user);
if (userdn==NULL)
return mysnprintf(buffer,buflen,
"(&%s(%s=%s))",
diff --git a/nslcd/passwd.c b/nslcd/passwd.c
index 92b59fd..bd0a1fb 100644
--- a/nslcd/passwd.c
+++ b/nslcd/passwd.c
@@ -87,7 +87,7 @@ static const char *passwd_attrs[10];
/* create a search filter for searching a passwd entry
by name, return -1 on errors */
-int mkfilter_passwd_byname(const char *name,
+static int mkfilter_passwd_byname(const char *name,
char *buffer,size_t buflen)
{
char buf2[1024];
@@ -241,6 +241,23 @@ static enum nss_status _nss_ldap_parse_pw(
return NSS_STATUS_SUCCESS;
}
+char *passwd_username2dn(MYLDAP_SESSION *session,const char *username)
+{
+ char *userdn=NULL;
+ static const char *no_attrs[]={ NULL };
+ char filter[1024];
+ LDAPMessage *res,*e;
+ mkfilter_passwd_byname(username,filter,sizeof(filter));
+ if (_nss_ldap_search_sync(session,passwd_base,passwd_scope,filter,no_attrs,1,&res)==NSS_STATUS_SUCCESS)
+ {
+ e=_nss_ldap_first_entry(session,res);
+ if (e!=NULL)
+ userdn=_nss_ldap_get_dn(session,e);
+ ldap_msgfree(res);
+ }
+ return userdn;
+}
+
/* the caller should take care of opening and closing the stream */
int nslcd_passwd_byname(TFILE *fp,MYLDAP_SESSION *session)
{