summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur de Jong <arthur@arthurdejong.org>2006-11-01 12:18:45 +0000
committerArthur de Jong <arthur@arthurdejong.org>2006-11-01 12:18:45 +0000
commit1f855bc50835a3f9d5d6513d667ae109c753d339 (patch)
treed180bb5193e1d9735c9c903422276b551081a42c
parent385f8898b9af6d3db96355496e851a1256a6fd84 (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.c58
1 files changed, 41 insertions, 17 deletions
diff --git a/testnss.c b/testnss.c
index e2766d8..48b0da0 100644
--- a/testnss.c
+++ b/testnss.c
@@ -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;
}