diff options
Diffstat (limited to 'usr/src/uts/common/nfs/auth.h')
-rw-r--r-- | usr/src/uts/common/nfs/auth.h | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/usr/src/uts/common/nfs/auth.h b/usr/src/uts/common/nfs/auth.h index 365b1ff6d7..5293e3fdd1 100644 --- a/usr/src/uts/common/nfs/auth.h +++ b/usr/src/uts/common/nfs/auth.h @@ -18,12 +18,14 @@ * * CDDL HEADER END */ + /* - * Copyright 2006 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright 2014 Nexenta Systems, Inc. All rights reserved. */ + /* - * Copyright 2014 Nexenta Systems, Inc. All rights reserved. + * Copyright 2006 Sun Microsystems, Inc. All rights reserved. + * Use is subject to license terms. */ #ifndef _AUTH_H @@ -50,6 +52,7 @@ * int req_flavor; # auth flavor * uid_t req_clnt_uid; # client's uid * gid_t req_clnt_gid; # client's gid + * gid_t req_clnt_gids<>; # client's supplemental groups * }; * * const NFSAUTH_DENIED = 0x01; # Access denied @@ -60,6 +63,7 @@ * # try a different flavor * const NFSAUTH_UIDMAP = 0x100; # uid mapped * const NFSAUTH_GIDMAP = 0x200; # gid mapped + * const NFSAUTH_GROUPS = 0x400; # translated supplemental groups * # * # The following are not part of the protocol. * # @@ -68,9 +72,10 @@ * const NFSAUTH_LIMITED = 0x80; # Access limited to visible nodes * * struct auth_res { - * int auth_perm; - * uid_t auth_srv_uid; - * gid_t auth_srv_gid; + * int auth_perm; + * uid_t auth_srv_uid; # translated uid + * gid_t auth_srv_gid; # translated gid + * gid_t auth_srv_gids<>; # translated supplemental groups * }; * * program NFSAUTH_PROG { @@ -113,6 +118,7 @@ extern "C" { #define NFSAUTH_LIMITED 0x80 #define NFSAUTH_UIDMAP 0x100 #define NFSAUTH_GIDMAP 0x200 +#define NFSAUTH_GROUPS 0x400 struct auth_req { netobj req_client; @@ -121,6 +127,10 @@ struct auth_req { int req_flavor; uid_t req_clnt_uid; gid_t req_clnt_gid; + struct { + uint_t len; + gid_t *val; + } req_clnt_gids; }; typedef struct auth_req auth_req; @@ -128,6 +138,10 @@ struct auth_res { int auth_perm; uid_t auth_srv_uid; gid_t auth_srv_gid; + struct { + uint_t len; + gid_t *val; + } auth_srv_gids; }; typedef struct auth_res auth_res; |