diff options
author | Thomas Bushnell <thomas@gnu.org> | 1996-11-18 23:51:17 +0000 |
---|---|---|
committer | Thomas Bushnell <thomas@gnu.org> | 1996-11-18 23:51:17 +0000 |
commit | 1e156105080b6168f7fd22574dda6140dc5454de (patch) | |
tree | 3dfdcc6f84b81e2a983621d4fd2f696c62d11528 /libnetfs/dir-lookup.c | |
parent | d79de6fd652140aa4d9a5fd9405466f8cc0d6386 (diff) |
Mon Nov 18 17:06:39 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* netfs.h (netfs_report_access): Return error_t.
* file-check-access.c (netfs_S_file_check_access): Deal with
errors from netfs_report_access.
Sat Nov 16 17:17:50 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* io-restrict-auth.c (netfs_S_io_restrict_auth): Fix several typos.
* fsys-getroot.c (netfs_S_fsys_getroot): iohelp_make_iouser ->
iohelp_create_iouser. New arg syntax for fshelp_fetch_root.
Fri Nov 15 13:39:03 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* netfs.h (struct protid): Replace member `credential' with `user'
of new type. All uses of old `credential' member changed to
use `user' member.
Change all functions that used to take `struct netcred' args to
take `struct iouser' args. All callers changed.
(netfs_copy_credential, netfs_dropy_credential,
netfs_make_credential): Delete functions.
* dir-lookup.c (netfs_S_dir_lookup): netfs_copy_credential ->
iohelp_dup_iouser.
* dir-mkfile.c (netfs_S_dir_mkfile): Likewise.
* file-exec.c (netfs_S_file_exec): Likewise.
* io-duplicate.c (netfs_S_io_duplicate): Likewise.
* release-protid.c (netfs_release_protid): netfs_drop_credential
-> iohelp_free_iouser.
* dir-lookup.c (netfs_S_dir_lookup): Omit uses of
netfs_interpret_credential; do it with new structures.
* file-exec.c (netfs_S_file_exec): Likewise.
* file-getcontrol.c (netfs_S_file_getcontrol): Likewise.
* file-set-translator.c (netfs_S_file_set_translator): Likewise;
using fshelp_isowner for permission check.
* io-restrict-auth.c (netfs_S_io_restrict_auth): Likewise; guts
rewritten.
* dir-lookup.c (netfs_S_dir_lookup): netfs_make_credential ->
iohelp_make_iouser.
* fsys-getroot.c (netfs_S_fsys_getroot): Likewise.
* fsys-syncfs.c (netfs_S_fsys_syncfs): Likewise.
* io-reauthenticate.c (netfs_S_io_reauthenticate): Use
iohelp_reauth instead of doing it by hand.
Diffstat (limited to 'libnetfs/dir-lookup.c')
-rw-r--r-- | libnetfs/dir-lookup.c | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/libnetfs/dir-lookup.c b/libnetfs/dir-lookup.c index 9ca623f3..36ca3cf7 100644 --- a/libnetfs/dir-lookup.c +++ b/libnetfs/dir-lookup.c @@ -140,7 +140,7 @@ netfs_S_dir_lookup (struct protid *diruser, } else /* Attempt a lookup on the next pathname component. */ - error = netfs_attempt_lookup (diruser->credential, dnp, filename, &np); + error = netfs_attempt_lookup (diruser->user, dnp, filename, &np); /* At this point, DNP is unlocked */ @@ -154,7 +154,7 @@ netfs_S_dir_lookup (struct protid *diruser, mode &= ~(S_IFMT | S_ISPARE | S_ISVTX); mode |= S_IFREG; mutex_lock (&dnp->lock); - error = netfs_attempt_create_file (diruser->credential, dnp, + error = netfs_attempt_create_file (diruser->user, dnp, filename, mode, &np); newnode = 1; @@ -172,7 +172,7 @@ netfs_S_dir_lookup (struct protid *diruser, if (error) goto out; - error = netfs_validate_stat (np, diruser->credential); + error = netfs_validate_stat (np, diruser->user); if (error) goto out; @@ -184,8 +184,6 @@ netfs_S_dir_lookup (struct protid *diruser, || fshelp_translated (&np->transbox))) { mach_port_t dirport; - uid_t *uids, *gids; - int nuids, ngids; /* A callback function for short-circuited translators. S_ISLNK and S_IFSOCK are handled elsewhere. */ @@ -196,7 +194,7 @@ netfs_S_dir_lookup (struct protid *diruser, struct node *np = cookie1; error_t err; - err = netfs_validate_stat (np, diruser->credential); + err = netfs_validate_stat (np, diruser->user); if (err) return err; @@ -232,7 +230,8 @@ netfs_S_dir_lookup (struct protid *diruser, newpi = netfs_make_protid (netfs_make_peropen (dnp, 0, diruser->po->dotdotport), - netfs_make_credential (0, 0, 0, 0)); + iohelp_create_iouser (make_idvec (), + make_idvec ())); dirport = ports_get_right (newpi); mach_port_insert_right (mach_task_self (), dirport, dirport, MACH_MSG_TYPE_MAKE_SEND); @@ -240,18 +239,16 @@ netfs_S_dir_lookup (struct protid *diruser, if (np != dnp) mutex_unlock (&dnp->lock); - netfs_interpret_credential (diruser->credential, &uids, &nuids, - &gids, &ngids); error = fshelp_fetch_root (&np->transbox, &diruser->po->dotdotport, - dirport, uids, nuids, gids, ngids, + dirport, + diruser->user, lastcomp ? flags : 0, (np->istranslated ? _netfs_translator_callback1 : short_circuited_callback1), _netfs_translator_callback2, do_retry, retry_name, retry_port); - free (uids); - free (gids); + if (error != ENOENT) { netfs_nrele (dnp); @@ -301,7 +298,7 @@ netfs_S_dir_lookup (struct protid *diruser, newnamelen = nextnamelen + linklen + 1; linkbuf = alloca (newnamelen); - error = netfs_attempt_readlink (diruser->credential, np, linkbuf); + error = netfs_attempt_readlink (diruser->user, np, linkbuf); if (error) goto out; @@ -357,14 +354,14 @@ netfs_S_dir_lookup (struct protid *diruser, if (mustbedir) { - netfs_validate_stat (np, diruser->credential); + netfs_validate_stat (np, diruser->user); if (!S_ISDIR (np->nn_stat.st_mode)) { error = ENOTDIR; goto out; } } - error = netfs_check_open_permissions (diruser->credential, np, + error = netfs_check_open_permissions (diruser->user, np, flags, newnode); if (error) goto out; @@ -373,7 +370,7 @@ netfs_S_dir_lookup (struct protid *diruser, newpi = netfs_make_protid (netfs_make_peropen (np, flags, diruser->po->dotdotport), - netfs_copy_credential (diruser->credential)); + iohelp_dup_iouser (diruser->user)); *retry_port = ports_get_right (newpi); ports_port_deref (newpi); |