diff options
Diffstat (limited to 'rpc')
| -rw-r--r-- | rpc/xdr/src/xdr-generic.c | 8 | ||||
| -rw-r--r-- | rpc/xdr/src/xdr-generic.h | 28 | 
2 files changed, 32 insertions, 4 deletions
diff --git a/rpc/xdr/src/xdr-generic.c b/rpc/xdr/src/xdr-generic.c index 58d1ee77ee2..fd6fceb9425 100644 --- a/rpc/xdr/src/xdr-generic.c +++ b/rpc/xdr/src/xdr-generic.c @@ -24,7 +24,7 @@ xdr_serialize_generic (struct iovec outmsg, void *res, xdrproc_t proc)          xdrmem_create (&xdr, outmsg.iov_base, (unsigned int)outmsg.iov_len,                         XDR_ENCODE); -        if (!proc (&xdr, res)) { +        if (!PROC(&xdr, res)) {                  ret = -1;                  goto ret;          } @@ -48,8 +48,8 @@ xdr_to_generic (struct iovec inmsg, void *args, xdrproc_t proc)          xdrmem_create (&xdr, inmsg.iov_base, (unsigned int)inmsg.iov_len,                         XDR_DECODE); -        if (!proc (&xdr, args)) { -                ret  = -1; +        if (!PROC (&xdr, args)) { +                ret = -1;                  goto ret;          } @@ -72,7 +72,7 @@ xdr_to_generic_payload (struct iovec inmsg, void *args, xdrproc_t proc,          xdrmem_create (&xdr, inmsg.iov_base, (unsigned int)inmsg.iov_len,                         XDR_DECODE); -        if (!proc (&xdr, args)) { +        if (!PROC (&xdr, args)) {                  ret  = -1;                  goto ret;          } diff --git a/rpc/xdr/src/xdr-generic.h b/rpc/xdr/src/xdr-generic.h index 2547d7e545d..2f12290ef02 100644 --- a/rpc/xdr/src/xdr-generic.h +++ b/rpc/xdr/src/xdr-generic.h @@ -24,6 +24,34 @@  #define XDR_BYTES_PER_UNIT      4 +/* +  On OSX > 10.9 +  ------------- +  typedef bool_t (*xdrproc_t)(XDR *, void *, unsigned int); + +  On OSX < 10.9 +  ------------ +  typedef bool_t (*xdrproc_t)(XDR *, ...); + +  FreeBSD all versions +  ------------ +  typedef bool_t (*xdrproc_t)(XDR *, ...); + +  NetBSD 6.1.4 +  ----------- +  typedef bool_t (*xdrproc_t)(XDR *, const void *); + +  Linux all versions +  ----------- +  typedef bool_t (*xdrproc_t)(XDR *, void *,...); +*/ + +#if defined(__NetBSD__) +#define  PROC(xdr, res)  proc(xdr, res) +#else +#define  PROC(xdr, res)  proc(xdr, res, 0) +#endif +  ssize_t  xdr_serialize_generic (struct iovec outmsg, void *res, xdrproc_t proc);  | 
