/*
- * $Id: file.c,v 1.35 2002-01-04 04:45:47 sibaz Exp $
+ * $Id: file.c,v 1.40 2002-03-05 02:04:46 jmarcus Exp $
*
* Copyright (c) 1990,1993 Regents of The University of Michigan.
* All Rights Reserved. See COPYRIGHT.
*/
const u_char ufinderi[] = {
- 'T', 'E', 'X', 'T', 'U', 'N', 'I', 'X',
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0
-};
+ 'T', 'E', 'X', 'T', 'U', 'N', 'I', 'X',
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0
+ };
int getfilparams(struct vol *vol,
u_int16_t bitmap,
#ifdef CNID_DB
aint = cnid_add(vol->v_db, st, dir->d_did, upath,
strlen(upath), aint);
+ /* Throw errors if cnid_add fails. */
+ if (aint == CNID_INVALID) {
+ switch (errno) {
+ case CNID_ERR_PARAM:
+ LOG(log_error, logtype_default, "getfilparams: Incorrect parameters passed to cnid_add");
+ return(AFPERR_PARAM);
+ case CNID_ERR_PATH:
+ return(AFPERR_PARAM);
+ case CNID_ERR_DB:
+ case CNID_ERR_MAX:
+ return(AFPERR_MISC);
+ }
+ }
#endif /* CNID_DB */
if (aint == 0) {
}
#endif /* AD_VERSION > AD_VERSION1 */
- if (id = cnid_add(vol->v_db, &st, did, upath, len, id)) {
+ if (id = cnid_add(vol->v_db, &st, did, upath, len, id) != CNID_INVALID) {
memcpy(rbuf, &id, sizeof(id));
*rbuflen = sizeof(id);
return AFP_OK;
return AFPERR_ACCESS;
break;
default:
- LOG(log_error, logtype_default, "afp_createid: cnid_add: %m");
+ LOG(log_error, logtype_default, "afp_createid: cnid_add: %s", strerror(errno));
return AFPERR_PARAM;
}
}
char *upath;
int err;
cnid_t id;
+ cnid_t fileid;
u_short vid;
#ifdef DEBUG
memcpy(&id, ibuf, sizeof( id ));
ibuf += sizeof(id);
-
+ fileid = id;
+
if ((upath = cnid_resolve(vol->v_db, &id)) == NULL) {
return AFPERR_NOID;
}
if (S_ISDIR(st.st_mode))
return AFPERR_BADTYPE;
- if (cnid_delete(vol->v_db, id)) {
+ if (cnid_delete(vol->v_db, fileid)) {
switch (errno) {
case EROFS:
return AFPERR_VLOCK;
case EPERM:
case EACCES:
err = AFPERR_ACCESS;
- break;
+ break;
default:
err = AFPERR_PARAM;
}
case EPERM:
case EACCES:
err = AFPERR_ACCESS;
- break;
+ break;
default:
err = AFPERR_PARAM;
}