summaryrefslogtreecommitdiff
path: root/testnss.c
diff options
context:
space:
mode:
authorArthur de Jong <arthur@arthurdejong.org>2006-11-05 23:05:27 +0000
committerArthur de Jong <arthur@arthurdejong.org>2006-11-05 23:05:27 +0000
commit051c3fa86e0bbe13b6b036849a6d4c114f5fe36d (patch)
tree8179ac6a38124c5638e77060ac7a02cd3e5a66f4 /testnss.c
parent9b20682e6723d6e1c76d6ee1823472377dcd11d6 (diff)
implement group functions in server but currently group_bymember() does not work
git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/libnss_ldapd@73 ef36b2f9-881f-0410-afb5-c4e39611909c
Diffstat (limited to 'testnss.c')
-rw-r--r--testnss.c44
1 files changed, 39 insertions, 5 deletions
diff --git a/testnss.c b/testnss.c
index f9aaa15..08d7d4e 100644
--- a/testnss.c
+++ b/testnss.c
@@ -71,6 +71,8 @@ int main(int argc,char *argv[])
char buffer[1024];
enum nss_status res;
int errnocp;
+ long int start,size=40;
+ gid_t *gidlist=(gid_t)buffer;
/* test getpwnam() */
printf("\nTEST getpwnam()\n");
@@ -85,8 +87,8 @@ int main(int argc,char *argv[])
}
/* test getpwnam() with non-existing user */
- printf("\nTEST getpwnam()\n");
- res=_nss_ldap_getpwnam_r("arthurs",&passwdresult,buffer,1024,&errnocp);
+ printf("\nTEST getpwnam() with non-existing user\n");
+ res=_nss_ldap_getpwnam_r("nonexist",&passwdresult,buffer,1024,&errnocp);
printf("status=%s\n",nssstatus(res));
if (res==NSS_STATUS_SUCCESS)
printpasswd(&passwdresult);
@@ -135,9 +137,24 @@ int main(int argc,char *argv[])
printf("errnocp=%d:%s\n",(int)errnocp,strerror(errnocp));
}
+ /* test {set,get,end}aliasent() */
+ printf("\nTEST {set,get,end}aliasent()\n");
+ res=_nss_ldap_setaliasent();
+ printf("status=%s\n",nssstatus(res));
+ while ((res=_nss_ldap_getaliasent_r(&aliasresult,buffer,1024,&errnocp))==NSS_STATUS_SUCCESS)
+ {
+ printf("status=%s\n",nssstatus(res));
+ printalias(&aliasresult);
+ }
+ printf("status=%s\n",nssstatus(res));
+ printf("errno=%d:%s\n",(int)errno,strerror(errno));
+ printf("errnocp=%d:%s\n",(int)errnocp,strerror(errnocp));
+ res=_nss_ldap_endaliasent();
+ printf("status=%s\n",nssstatus(res));
+
/* test getgrnam() */
printf("\nTEST getgrnam()\n");
- res=_nss_ldap_getgrnam_r("audio",&groupresult,buffer,1024,&errnocp);
+ res=_nss_ldap_getgrnam_r("testgroup",&groupresult,buffer,1024,&errnocp);
printf("status=%s\n",nssstatus(res));
if (res==NSS_STATUS_SUCCESS)
printgroup(&groupresult);
@@ -149,7 +166,7 @@ int main(int argc,char *argv[])
/* test getgrgid() */
printf("\nTEST getgrgid()\n");
- res=_nss_ldap_getgrgid_r(24,&groupresult,buffer,1024,&errnocp);
+ res=_nss_ldap_getgrgid_r(100,&groupresult,buffer,1024,&errnocp);
printf("status=%s\n",nssstatus(res));
if (res==NSS_STATUS_SUCCESS)
printgroup(&groupresult);
@@ -159,6 +176,23 @@ int main(int argc,char *argv[])
printf("errnocp=%d:%s\n",(int)errnocp,strerror(errnocp));
}
+ /* test initgroups() */
+ printf("\nTEST initgroups()\n");
+ res=_nss_ldap_initgroups_dyn("arthur",10,&start,&size,&gidlist,size,&errnocp);
+ printf("status=%s\n",nssstatus(res));
+ if (res==NSS_STATUS_SUCCESS)
+ {
+ for (size=0;size<start;size++)
+ {
+ printf("gidlist[%d]=%d\n",(int)size,(int)gidlist[size]);
+ }
+ }
+ else
+ {
+ printf("errno=%d:%s\n",(int)errno,strerror(errno));
+ printf("errnocp=%d:%s\n",(int)errnocp,strerror(errnocp));
+ }
+
/* test {set,get,end}grent() */
printf("\nTEST {set,get,end}grent()\n");
res=_nss_ldap_setgrent();
@@ -166,7 +200,7 @@ int main(int argc,char *argv[])
while ((res=_nss_ldap_getgrent_r(&groupresult,buffer,1024,&errnocp))==NSS_STATUS_SUCCESS)
{
printf("status=%s\n",nssstatus(res));
- printpasswd(&groupresult);
+ printgroup(&groupresult);
}
printf("status=%s\n",nssstatus(res));
printf("errno=%d:%s\n",(int)errno,strerror(errno));