diff options
author | Arthur de Jong <arthur@arthurdejong.org> | 2006-11-05 23:05:27 +0000 |
---|---|---|
committer | Arthur de Jong <arthur@arthurdejong.org> | 2006-11-05 23:05:27 +0000 |
commit | 051c3fa86e0bbe13b6b036849a6d4c114f5fe36d (patch) | |
tree | 8179ac6a38124c5638e77060ac7a02cd3e5a66f4 /testnss.c | |
parent | 9b20682e6723d6e1c76d6ee1823472377dcd11d6 (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.c | 44 |
1 files changed, 39 insertions, 5 deletions
@@ -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)); |