/*
- * $Id: directory.c,v 1.20 2001-12-03 05:03:38 jmarcus Exp $
+ * $Id: directory.c,v 1.28 2002-03-24 01:23:40 sibaz Exp $
*
* Copyright (c) 1990,1993 Regents of The University of Michigan.
* All Rights Reserved. See COPYRIGHT.
#include "config.h"
#endif /* HAVE_CONFIG_H */
-#include <sys/syslog.h>
+#include <atalk/logger.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#include "volume.h"
#include "fork.h"
#include "file.h"
+#include "filedir.h"
#include "globals.h"
#include "unix.h"
continue; /* somebody went and deleted it behind our backs. */
case EROFS:
err = AFPERR_VLOCK;
+ break;
case EPERM:
case EACCES :
err = AFPERR_ACCESS;
+ break;
default :
err = AFPERR_PARAM;
}
goto setdirparam_done;
break;
default :
- syslog( LOG_ERR, "setdirparam: setdeskowner: %s",
- strerror(errno) );
+ LOG(log_error, logtype_afpd, "setdirparam: setdeskowner: %s",
+ strerror(errno) );
if (!isad) {
err = AFPERR_PARAM;
goto setdirparam_done;
goto setdirparam_done;
break;
default :
- syslog( LOG_ERR, "setdirparam: setdirowner: %s",
- strerror(errno) );
+ LOG(log_error, logtype_afpd, "setdirparam: setdirowner: %s",
+ strerror(errno) );
break;
}
}
goto setdirparam_done;
break;
default :
- syslog( LOG_ERR, "setdirparam: setdeskowner: %m" );
+ LOG(log_error, logtype_afpd, "setdirparam: setdeskowner: %m" );
if (!isad) {
err = AFPERR_PARAM;
goto setdirparam_done;
goto setdirparam_done;
break;
default :
- syslog( LOG_ERR, "setdirparam: setdirowner: %s",
- strerror(errno) );
+ LOG(log_error, logtype_afpd, "setdirparam: setdirowner: %s",
+ strerror(errno) );
break;
}
}
err = AFPERR_VLOCK;
goto setdirparam_done;
default :
- syslog( LOG_ERR, "setdirparam: setdeskmode: %s",
- strerror(errno) );
+ LOG(log_error, logtype_afpd, "setdirparam: setdeskmode: %s",
+ strerror(errno) );
break;
err = AFPERR_PARAM;
goto setdirparam_done;
err = AFPERR_VLOCK;
goto setdirparam_done;
default :
- syslog( LOG_ERR, "setdirparam: setdirmode: %s",
- strerror(errno) );
+ LOG(log_error, logtype_afpd, "setdirparam: setdirmode: %s",
+ strerror(errno) );
err = AFPERR_PARAM;
goto setdirparam_done;
}
}
}
- /* check for illegal bits */
- if ((vol->v_flags & AFPVOL_MSWINDOWS) &&
- strpbrk(path, MSWINDOWS_BADCHARS))
- return AFPERR_PARAM;
-
upath = mtoupath(vol, path);
+ /* check for illegal bits in the unix filename */
+ if (!wincheck(vol, upath))
+ return AFPERR_PARAM;
+
if ((vol->v_flags & AFPVOL_NOHEX) && strchr(upath, '/'))
return AFPERR_PARAM;
renamedir_done:
if ((buf = (char *) realloc( dir->d_name, len + 1 )) == NULL ) {
- syslog( LOG_ERR, "renamedir: realloc: %s", strerror(errno) );
+ LOG(log_error, logtype_afpd, "renamedir: realloc: %s", strerror(errno) );
return AFPERR_MISC;
}
dir->d_name = buf;