diff options
author | Arthur de Jong <arthur@arthurdejong.org> | 2006-11-01 12:18:45 +0000 |
---|---|---|
committer | Arthur de Jong <arthur@arthurdejong.org> | 2006-11-01 12:18:45 +0000 |
commit | 1f855bc50835a3f9d5d6513d667ae109c753d339 (patch) | |
tree | d180bb5193e1d9735c9c903422276b551081a42c | |
parent | 385f8898b9af6d3db96355496e851a1256a6fd84 (diff) |
only print result on success and errors on failure
git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/libnss_ldapd@46 ef36b2f9-881f-0410-afb5-c4e39611909c
-rw-r--r-- | testnss.c | 58 |
1 files changed, 41 insertions, 17 deletions
@@ -10,7 +10,7 @@ static char *nssstatus(enum nss_status retv) switch(retv) { case NSS_STATUS_TRYAGAIN: return "NSS_STATUS_TRYAGAIN"; - case NSS_STATUS_UNAVAIL: return "NSS_STATUS_UNAVAIL"; + case NSS_STATUS_UNAVAIL: return "NSS_STATUS_UNAVAIL"; case NSS_STATUS_NOTFOUND: return "NSS_STATUS_NOTFOUND"; case NSS_STATUS_SUCCESS: return "NSS_STATUS_SUCCESS"; case NSS_STATUS_RETURN: return "NSS_STATUS_RETURN"; @@ -31,7 +31,7 @@ static void printpasswd(struct passwd *pw) "}\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) { @@ -45,7 +45,7 @@ static void printalias(struct aliasent *alias) i,alias->alias_members[i]); printf(" alias_local=%d\n" "}\n",(int)alias->alias_local); -} +} /* the main program... */ int main(int argc,char *argv[]) @@ -59,41 +59,65 @@ int main(int argc,char *argv[]) /* test getpwnam() */ 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)); printf("status=%s\n",nssstatus(res)); - printpasswd(&result); + if (res==NSS_STATUS_SUCCESS) + printpasswd(&result); + else + { + printf("errno=%d:%s\n",(int)errno,strerror(errno)); + printf("errnocp=%d:%s\n",(int)errnocp,strerror(errnocp)); + } + + /* test getpwnam() with non-existing user */ + printf("\nTEST getpwnam()\n"); + res=_nss_ldap_getpwnam_r("arthurs",&result,buffer,1024,&errnocp); + printf("status=%s\n",nssstatus(res)); + if (res==NSS_STATUS_SUCCESS) + printpasswd(&result); + else + { + printf("errno=%d:%s\n",(int)errno,strerror(errno)); + printf("errnocp=%d:%s\n",(int)errnocp,strerror(errnocp)); + } /* test getpwuid() */ 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)); printf("status=%s\n",nssstatus(res)); - printpasswd(&result); + if (res==NSS_STATUS_SUCCESS) + printpasswd(&result); + else + { + printf("errno=%d:%s\n",(int)errno,strerror(errno)); + printf("errnocp=%d:%s\n",(int)errnocp,strerror(errnocp)); + } /* test {set,get,end}pwent() */ printf("\nTEST {set,get,end}pwent()\n"); - _nss_ldap_setpwent(); + res=_nss_ldap_setpwent(); + printf("status=%s\n",nssstatus(res)); while ((res=_nss_ldap_getpwent_r(&result,buffer,1024,&errnocp))==NSS_STATUS_SUCCESS) { - printf("errno=%d:%s\n",(int)errno,strerror(errno)); - printf("errnocp=%d:%s\n",(int)errnocp,strerror(errnocp)); printf("status=%s\n",nssstatus(res)); printpasswd(&result); } + 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_endpwent(); 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); + if (res==NSS_STATUS_SUCCESS) + printalias(&aliasresult); + else + { + printf("errno=%d:%s\n",(int)errno,strerror(errno)); + printf("errnocp=%d:%s\n",(int)errnocp,strerror(errnocp)); + } return 0; } |