From 0c8cd9181b742fd59e974cc888c4775565e1f381 Mon Sep 17 00:00:00 2001 From: franklahm Date: Mon, 1 Feb 2010 16:13:52 +0000 Subject: [PATCH] Fix test348 and 349 --- etc/afpd/directory.c | 12 +++++++++++- etc/afpd/filedir.c | 7 ++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/etc/afpd/directory.c b/etc/afpd/directory.c index ad62f77b..db531cf7 100644 --- a/etc/afpd/directory.c +++ b/etc/afpd/directory.c @@ -1,5 +1,5 @@ /* - * $Id: directory.c,v 1.131.2.3 2010-02-01 14:25:45 franklahm Exp $ + * $Id: directory.c,v 1.131.2.4 2010-02-01 16:13:52 franklahm Exp $ * * Copyright (c) 1990,1993 Regents of The University of Michigan. * All Rights Reserved. See COPYRIGHT. @@ -363,8 +363,16 @@ static struct path *path_from_dir(struct vol *vol, struct dir *dir, struct path } ret->d_dir = dir; +#if 0 ret->st_valid = 1; ret->st_errno = EACCES; +#endif + + LOG(log_debug, logtype_afpd, "cname(AFPERR_ACCESS:'%s') {path-from-dir: curdir:'%s', path:'%s'}", + cfrombstring(dir->d_fullpath), + cfrombstring(curdir->d_fullpath), + ret->u_name); + return ret; case AFPERR_NOOBJ: @@ -379,8 +387,10 @@ static struct path *path_from_dir(struct vol *vol, struct dir *dir, struct path memcpy(ret->u_name, cfrombstring(dir->d_u_name), blength(dir->d_u_name) + 1); } +#if 0 ret->st_valid = 1; ret->st_errno = ENOENT; +#endif ret->d_dir = NULL; dir_remove(vol, dir); return ret; diff --git a/etc/afpd/filedir.c b/etc/afpd/filedir.c index bbbc422f..fa3e5f61 100644 --- a/etc/afpd/filedir.c +++ b/etc/afpd/filedir.c @@ -1,5 +1,5 @@ /* - * $Id: filedir.c,v 1.69.2.1 2010-02-01 10:56:08 franklahm Exp $ + * $Id: filedir.c,v 1.69.2.2 2010-02-01 16:13:52 franklahm Exp $ * * Copyright (c) 1990,1993 Regents of The University of Michigan. * All Rights Reserved. See COPYRIGHT. @@ -188,7 +188,7 @@ int afp_getfildirparams(AFPObj *obj _U_, char *ibuf, size_t ibuflen _U_, char *r of_statdir(vol, s_path); } if ( s_path->st_errno != 0 ) { - if (s_path->st_errno != EACCES) { + if (afp_errno != AFPERR_ACCESS) { LOG(log_debug, logtype_afpd, "getfildirparams: s_path->st_errno != 0"); return( AFPERR_NOOBJ ); } @@ -274,7 +274,8 @@ int afp_setfildirparams(AFPObj *obj, char *ibuf, size_t ibuflen _U_, char *rbuf } if ( path->st_errno != 0 ) { - return( AFPERR_NOOBJ ); + if (afp_errno != AFPERR_ACCESS) + return( AFPERR_NOOBJ ); } /* * If ibuf is odd, make it even. -- 2.39.2