[rtems commit] nfsclient: Use UID and GID of NFS handle
Sebastian Huber
sebh at rtems.org
Mon Apr 23 14:23:08 UTC 2012
Module: rtems
Branch: master
Commit: bc04436cce02954c0e1016c343d00d0493766c52
Changeset: http://git.rtems.org/rtems/commit/?id=bc04436cce02954c0e1016c343d00d0493766c52
Author: Sebastian Huber <sebastian.huber at embedded-brains.de>
Date: Mon Apr 23 16:21:42 2012 +0200
nfsclient: Use UID and GID of NFS handle
Use UID and GID of the NFS handle for node and symbolic link creation.
---
cpukit/libfs/src/nfsclient/src/nfs.c | 20 ++++++++++----------
1 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/cpukit/libfs/src/nfsclient/src/nfs.c b/cpukit/libfs/src/nfsclient/src/nfs.c
index da4bae6..71d8c0d 100644
--- a/cpukit/libfs/src/nfsclient/src/nfs.c
+++ b/cpukit/libfs/src/nfsclient/src/nfs.c
@@ -1188,8 +1188,8 @@ int len;
}
chpt++;
} else {
- *puid = RPCIOD_DEFAULT_ID;
- *pgid = RPCIOD_DEFAULT_ID;
+ *puid = geteuid();
+ *pgid = getegid();
chpt = *pPath;
}
if ( pHost )
@@ -1883,6 +1883,7 @@ int rv = 0;
struct timeval now;
diropres res;
NfsNode node = parentloc->node_access;
+Nfs nfs = node->nfs;
mode_t type = S_IFMT & mode;
char *dupname;
@@ -1901,16 +1902,15 @@ char *dupname;
SERP_ARGS(node).createarg.name = dupname;
SERP_ARGS(node).createarg.attributes.mode = mode;
- /* TODO: either use our uid or use the Nfs credentials */
- SERP_ARGS(node).createarg.attributes.uid = 0;
- SERP_ARGS(node).createarg.attributes.gid = 0;
+ SERP_ARGS(node).createarg.attributes.uid = nfs->uid;
+ SERP_ARGS(node).createarg.attributes.gid = nfs->gid;
SERP_ARGS(node).createarg.attributes.size = 0;
SERP_ARGS(node).createarg.attributes.atime.seconds = now.tv_sec;
SERP_ARGS(node).createarg.attributes.atime.useconds = now.tv_usec;
SERP_ARGS(node).createarg.attributes.mtime.seconds = now.tv_sec;
SERP_ARGS(node).createarg.attributes.mtime.useconds = now.tv_usec;
- if ( nfscall( node->nfs->server,
+ if ( nfscall( nfs->server,
(type == S_IFDIR) ? NFSPROC_MKDIR : NFSPROC_CREATE,
(xdrproc_t)xdr_createargs, &SERP_FILE(node),
(xdrproc_t)xdr_diropres, &res)
@@ -1976,6 +1976,7 @@ int rv = 0;
struct timeval now;
nfsstat status;
NfsNode node = parentloc->node_access;
+Nfs nfs = node->nfs;
char *dupname;
dupname = nfs_dupname(name, namelen);
@@ -1992,16 +1993,15 @@ char *dupname;
SERP_ARGS(node).symlinkarg.to = (nfspath) target;
SERP_ARGS(node).symlinkarg.attributes.mode = S_IFLNK | S_IRWXU | S_IRWXG | S_IRWXO;
- /* TODO */
- SERP_ARGS(node).symlinkarg.attributes.uid = 0;
- SERP_ARGS(node).symlinkarg.attributes.gid = 0;
+ SERP_ARGS(node).symlinkarg.attributes.uid = nfs->uid;
+ SERP_ARGS(node).symlinkarg.attributes.gid = nfs->gid;
SERP_ARGS(node).symlinkarg.attributes.size = 0;
SERP_ARGS(node).symlinkarg.attributes.atime.seconds = now.tv_sec;
SERP_ARGS(node).symlinkarg.attributes.atime.useconds = now.tv_usec;
SERP_ARGS(node).symlinkarg.attributes.mtime.seconds = now.tv_sec;
SERP_ARGS(node).symlinkarg.attributes.mtime.useconds = now.tv_usec;
- if ( nfscall( node->nfs->server,
+ if ( nfscall( nfs->server,
NFSPROC_SYMLINK,
(xdrproc_t)xdr_symlinkargs, &SERP_FILE(node),
(xdrproc_t)xdr_nfsstat, &status)
More information about the vc
mailing list