diff options
author | Arthur de Jong <arthur@arthurdejong.org> | 2012-10-28 21:13:43 +0100 |
---|---|---|
committer | Arthur de Jong <arthur@arthurdejong.org> | 2012-10-28 21:13:43 +0100 |
commit | ba1d1f76dfb4fa3f2a408e8b31537dc682f4bf3b (patch) | |
tree | 78815271bc29eb514eafe11a018e5e1098799a44 /nss/rpc.c | |
parent | 8ae169e65c1e99c160d7765e9f4f17ec5894ff75 (diff) |
refactor the read_result() functions into a common macro and move all the Solaris-specific definitions to solnss.h
git-svn-id: http://arthurdejong.org/svn/nss-pam-ldapd/nss-pam-ldapd@1812 ef36b2f9-881f-0410-afb5-c4e39611909c
Diffstat (limited to 'nss/rpc.c')
-rw-r--r-- | nss/rpc.c | 35 |
1 files changed, 1 insertions, 34 deletions
@@ -115,40 +115,7 @@ static char *rpcent2str(struct rpcent *result,char *buffer,size_t buflen) static nss_status_t read_result(TFILE *fp,nss_XbyY_args_t *args) { - nss_status_t retv; -#ifdef HAVE_STRUCT_NSS_XBYY_ARGS_RETURNLEN - struct rpcent result; - char *buffer; - /* try to return in string format if requested */ - if (args->buf.result==NULL) - { - /* read the entry into a temporary buffer */ - buffer=(char *)malloc(args->buf.buflen); - if (buffer==NULL) - return NSS_STATUS_UNAVAIL; - retv=read_rpcent(fp,&result,buffer,args->buf.buflen,&args->erange); - /* format to string */ - if (retv==NSS_STATUS_SUCCESS) - if (rpcent2str(&result,args->buf.buffer,args->buf.buflen)==NULL) - { - args->erange=1; - retv=NSS_NOTFOUND; - } - /* clean up and return result */ - free(buffer); - if (retv!=NSS_STATUS_SUCCESS) - return retv; - args->returnval=args->buf.buffer; - args->returnlen=strlen(args->returnval); - return NSS_STATUS_SUCCESS; - } -#endif /* HAVE_STRUCT_NSS_XBYY_ARGS_RETURNLEN */ - /* read the entry */ - retv=read_rpcent(fp,args->buf.result,args->buf.buffer,args->buf.buflen,&args->erange); - if (retv!=NSS_STATUS_SUCCESS) - return retv; - args->returnval=args->buf.result; - return NSS_STATUS_SUCCESS; + READ_RESULT(rpcent,&args->erange); } static nss_status_t rpc_getrpcbyname(nss_backend_t UNUSED(*be),void *args) |