Use default uid and gid from NFS AUTH_SYS when creating files

This commit is contained in:
Vitaliy Filippov
2025-08-24 16:03:40 +03:00
parent d8332171e9
commit fb1c3e00f4
6 changed files with 54 additions and 0 deletions
+13
View File
@@ -133,6 +133,18 @@ struct rpc_msg {
};
typedef struct rpc_msg rpc_msg;
struct authsys_parms {
u_int stamp;
xdr_string_t machinename;
u_int uid;
u_int gid;
struct {
u_int gids_len;
u_int *gids_val;
} gids;
};
typedef struct authsys_parms authsys_parms;
/* the xdr functions */
@@ -151,6 +163,7 @@ extern bool_t xdr_rpc_rejected_reply (XDR *, rpc_rejected_reply*);
extern bool_t xdr_rpc_reply_body (XDR *, rpc_reply_body*);
extern bool_t xdr_rpc_msg_body (XDR *, rpc_msg_body*);
extern bool_t xdr_rpc_msg (XDR *, rpc_msg*);
extern bool_t xdr_authsys_parms (XDR *, authsys_parms*);
#ifdef __cplusplus
+8
View File
@@ -111,3 +111,11 @@ struct rpc_msg {
u_int xid;
rpc_msg_body body;
};
struct authsys_parms {
unsigned int stamp;
string machinename<255>;
unsigned int uid;
unsigned int gid;
unsigned int gids<16>;
};
+1
View File
@@ -35,6 +35,7 @@ struct rpc_op_t
void *client;
void *buffer;
XDR *xdrs;
authsys_parms auth_sys;
rpc_msg in_msg, out_msg;
rdma_msg in_rdma_msg;
rpc_rdma_errcode rdma_error;
+18
View File
@@ -251,3 +251,21 @@ xdr_rpc_msg (XDR *xdrs, rpc_msg *objp)
return FALSE;
return TRUE;
}
bool_t
xdr_authsys_parms (XDR *xdrs, authsys_parms *objp)
{
if (!xdr_u_int (xdrs, &objp->stamp))
return FALSE;
if (!xdr_string (xdrs, &objp->machinename, 255))
return FALSE;
if (!xdr_u_int (xdrs, &objp->uid))
return FALSE;
if (!xdr_u_int (xdrs, &objp->gid))
return FALSE;
if (!xdr_array (xdrs, (char **)&objp->gids.gids_val, (u_int *) &objp->gids.gids_len, 16,
sizeof (u_int), (xdrproc_t) xdr_u_int))
return FALSE;
return TRUE;
}