Arthur de Jong

Open Source / Free Software developer

summaryrefslogtreecommitdiffstats
path: root/nss/rpc.c
diff options
context:
space:
mode:
authorArthur de Jong <arthur@arthurdejong.org>2012-10-28 21:13:43 +0100
committerArthur de Jong <arthur@arthurdejong.org>2012-10-28 21:13:43 +0100
commitba1d1f76dfb4fa3f2a408e8b31537dc682f4bf3b (patch)
tree78815271bc29eb514eafe11a018e5e1098799a44 /nss/rpc.c
parent8ae169e65c1e99c160d7765e9f4f17ec5894ff75 (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.c35
1 files changed, 1 insertions, 34 deletions
diff --git a/nss/rpc.c b/nss/rpc.c
index 581be5e..4ebbf53 100644
--- a/nss/rpc.c
+++ b/nss/rpc.c
@@ -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)