summaryrefslogtreecommitdiff
path: root/testnss.c
diff options
context:
space:
mode:
authorArthur de Jong <arthur@arthurdejong.org>2006-10-31 14:18:40 +0000
committerArthur de Jong <arthur@arthurdejong.org>2006-10-31 14:18:40 +0000
commit909352b52a35508ee8d76afed7b8003900a9ff41 (patch)
tree5fca71a2fd28f465933b9842a4ceed5ccf15723c /testnss.c
parent74d1870512ff50d5beda37e64762b6e836aa078e (diff)
implement reading of alias information through getaliasbyname()
git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/libnss_ldapd@38 ef36b2f9-881f-0410-afb5-c4e39611909c
Diffstat (limited to 'testnss.c')
-rw-r--r--testnss.c33
1 files changed, 28 insertions, 5 deletions
diff --git a/testnss.c b/testnss.c
index 5f774cb..e2766d8 100644
--- a/testnss.c
+++ b/testnss.c
@@ -14,7 +14,7 @@ static char *nssstatus(enum nss_status retv)
case NSS_STATUS_NOTFOUND: return "NSS_STATUS_NOTFOUND";
case NSS_STATUS_SUCCESS: return "NSS_STATUS_SUCCESS";
case NSS_STATUS_RETURN: return "NSS_STATUS_RETURN";
- default: return "NSS_STATUS_**ILLEGAL**";
+ default: return "NSS_STATUS_**ILLEGAL**";
}
}
@@ -28,21 +28,36 @@ static void printpasswd(struct passwd *pw)
" pw_gecos=\"%s\",\n"
" pw_dir=\"%s\",\n"
" pw_shell=\"%s\"\n"
- "}\n", pw->pw_name, pw->pw_passwd,
+ "}\n",pw->pw_name,pw->pw_passwd,
(int)(pw->pw_uid),(int)(pw->pw_gid),
pw->pw_gecos,pw->pw_dir,pw->pw_shell);
}
+static void printalias(struct aliasent *alias)
+{
+ int i;
+ printf("struct alias {\n"
+ " alias_name=\"%s\",\n"
+ " alias_members_len=%d,\n",
+ alias->alias_name,(int)alias->alias_members_len);
+ for (i=0;i<(int)alias->alias_members_len;i++)
+ printf(" alias_members[%d]=\"%s\",\n",
+ i,alias->alias_members[i]);
+ printf(" alias_local=%d\n"
+ "}\n",(int)alias->alias_local);
+}
+
/* the main program... */
int main(int argc,char *argv[])
{
struct passwd result;
+ struct aliasent aliasresult;
char buffer[1024];
enum nss_status res;
int errnocp;
/* test getpwnam() */
- printf("TEST getpwnam()\n");
+ printf("\nTEST getpwnam()\n");
res=_nss_ldap_getpwnam_r("arthur",&result,buffer,1024,&errnocp);
printf("errno=%d:%s\n",(int)errno,strerror(errno));
printf("errnocp=%d:%s\n",(int)errnocp,strerror(errnocp));
@@ -50,7 +65,7 @@ int main(int argc,char *argv[])
printpasswd(&result);
/* test getpwuid() */
- printf("TEST getpwuid()\n");
+ printf("\nTEST getpwuid()\n");
res=_nss_ldap_getpwuid_r(180,&result,buffer,1024,&errnocp);
printf("errno=%d:%s\n",(int)errno,strerror(errno));
printf("errnocp=%d:%s\n",(int)errnocp,strerror(errnocp));
@@ -58,7 +73,7 @@ int main(int argc,char *argv[])
printpasswd(&result);
/* test {set,get,end}pwent() */
- printf("TEST {set,get,end}pwent()\n");
+ printf("\nTEST {set,get,end}pwent()\n");
_nss_ldap_setpwent();
while ((res=_nss_ldap_getpwent_r(&result,buffer,1024,&errnocp))==NSS_STATUS_SUCCESS)
{
@@ -71,6 +86,14 @@ int main(int argc,char *argv[])
printf("errnocp=%d:%s\n",(int)errnocp,strerror(errnocp));
printf("status=%s\n",nssstatus(res));
_nss_ldap_endpwent();
+
+ /* test getaliasbyname() */
+ printf("\nTEST getaliasbyname()\n");
+ res=_nss_ldap_getaliasbyname_r("techstaff",&aliasresult,buffer,1024,&errnocp);
+ printf("errno=%d:%s\n",(int)errno,strerror(errno));
+ printf("errnocp=%d:%s\n",(int)errnocp,strerror(errnocp));
+ printf("status=%s\n",nssstatus(res));
+ printalias(&aliasresult);
return 0;
}