diff options
author | Arthur de Jong <arthur@arthurdejong.org> | 2006-10-31 14:18:40 +0000 |
---|---|---|
committer | Arthur de Jong <arthur@arthurdejong.org> | 2006-10-31 14:18:40 +0000 |
commit | 909352b52a35508ee8d76afed7b8003900a9ff41 (patch) | |
tree | 5fca71a2fd28f465933b9842a4ceed5ccf15723c /testnss.c | |
parent | 74d1870512ff50d5beda37e64762b6e836aa078e (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.c | 33 |
1 files changed, 28 insertions, 5 deletions
@@ -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; } |