summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--xlators/nfs/lib/src/rpcsvc.h5
-rw-r--r--xlators/nfs/lib/src/xdr-nfs3.c6
-rw-r--r--xlators/nfs/lib/src/xdr-rpc.c5
3 files changed, 16 insertions, 0 deletions
diff --git a/xlators/nfs/lib/src/rpcsvc.h b/xlators/nfs/lib/src/rpcsvc.h
index cea55746c..a77021ac4 100644
--- a/xlators/nfs/lib/src/rpcsvc.h
+++ b/xlators/nfs/lib/src/rpcsvc.h
@@ -38,6 +38,11 @@
#include <pthread.h>
#include <sys/uio.h>
+#ifdef GF_DARWIN_HOST_OS
+#include <nfs/rpcv2.h>
+#define NGRPS RPCAUTH_UNIXGIDS
+#endif
+
#define GF_RPCSVC "rpc-service"
#define RPCSVC_THREAD_STACK_SIZE ((size_t)(1024 * GF_UNIT_KB))
diff --git a/xlators/nfs/lib/src/xdr-nfs3.c b/xlators/nfs/lib/src/xdr-nfs3.c
index d7984be56..036020396 100644
--- a/xlators/nfs/lib/src/xdr-nfs3.c
+++ b/xlators/nfs/lib/src/xdr-nfs3.c
@@ -20,6 +20,12 @@
#include "xdr-nfs3.h"
#include "mem-pool.h"
+#if GF_DARWIN_HOST_OS
+#define xdr_u_quad_t xdr_u_int64_t
+#define xdr_quad_t xdr_int64_t
+#define xdr_uint32_t xdr_u_int32_t
+#endif
+
bool_t
xdr_uint64 (XDR *xdrs, uint64 *objp)
{
diff --git a/xlators/nfs/lib/src/xdr-rpc.c b/xlators/nfs/lib/src/xdr-rpc.c
index 5f8521ff3..071462242 100644
--- a/xlators/nfs/lib/src/xdr-rpc.c
+++ b/xlators/nfs/lib/src/xdr-rpc.c
@@ -22,6 +22,7 @@
#include "config.h"
#endif
+#include <string.h>
#include <rpc/rpc.h>
#include <rpc/pmap_clnt.h>
#include <arpa/inet.h>
@@ -178,7 +179,11 @@ xdr_to_auth_unix_cred (char *msgbuf, int msglen, struct authunix_parms *au,
return -1;
au->aup_machname = machname;
+#ifdef GF_DARWIN_HOST_OS
+ au->aup_gids = (int *)gids;
+#else
au->aup_gids = gids;
+#endif
xdrmem_create (&xdr, msgbuf, msglen, XDR_DECODE);