the open if not.
/*
- * $Id: volume.c,v 1.51.2.7.2.16 2004-01-08 04:17:21 bfernhomberg Exp $
+ * $Id: volume.c,v 1.51.2.7.2.17 2004-01-14 23:15:19 lenneis Exp $
*
* Copyright (c) 1990,1993 Regents of The University of Michigan.
* All Rights Reserved. See COPYRIGHT.
if ((volume->v_cdb->flags & CNID_FLAG_PERSISTENT)) {
/* FIXME find db time stamp */
- cnid_getstamp(volume->v_cdb, volume->v_stamp, sizeof(volume->v_stamp));
+ if (cnid_getstamp(volume->v_cdb, volume->v_stamp, sizeof(volume->v_stamp)) < 0) {
+ LOG (log_error, logtype_afpd, "Fatal error: Unable to get stamp value from CNID backend");
+ goto openvol_err;
+ }
}
else {
p = Trash;
/*
- * $Id: cnid.h,v 1.9.6.4 2004-01-10 07:19:31 bfernhomberg Exp $
+ * $Id: cnid.h,v 1.9.6.5 2004-01-14 23:15:19 lenneis Exp $
*
* Copyright (c) 2003 the Netatalk Team
* Copyright (c) 2003 Rafal Lewczuk <rlewczuk@pronet.pl>
cnid_t cnid_get (struct _cnid_db *cdb, const cnid_t did, const char *name,const int len);
-cnid_t cnid_getstamp(struct _cnid_db *cdb, void *buffer, const int len);
+int cnid_getstamp(struct _cnid_db *cdb, void *buffer, const int len);
cnid_t cnid_lookup(struct _cnid_db *cdb, const struct stat *st, const cnid_t did,
const char *name, const int len);
/*
* $Log: cnid.h,v $
- * Revision 1.9.6.4 2004-01-10 07:19:31 bfernhomberg
+ * Revision 1.9.6.5 2004-01-14 23:15:19 lenneis
+ * Check if we can get a DB stamp sucessfully in afs_openvol and fail
+ * the open if not.
+ *
+ * Revision 1.9.6.4 2004/01/10 07:19:31 bfernhomberg
* add cnid_init prototype
*
* Revision 1.9.6.3 2004/01/03 22:42:55 didg
/*
- * $Id: cnid.c,v 1.1.4.7 2004-01-03 22:21:09 didg Exp $
+ * $Id: cnid.c,v 1.1.4.8 2004-01-14 23:15:19 lenneis Exp $
*
* Copyright (c) 2003 the Netatalk Team
* Copyright (c) 2003 Rafal Lewczuk <rlewczuk@pronet.pl>
}
/* --------------- */
-cnid_t cnid_getstamp(struct _cnid_db *cdb, void *buffer, const int len)
+int cnid_getstamp(struct _cnid_db *cdb, void *buffer, const int len)
{
cnid_t ret;
/*
- * $Id: cnid_dbd.c,v 1.1.4.14 2004-01-10 07:30:29 didg Exp $
+ * $Id: cnid_dbd.c,v 1.1.4.15 2004-01-14 23:15:19 lenneis Exp $
*
* Copyright (C) Joerg Lenneis 2003
* All Rights Reserved. See COPYING.
struct cnid_dbd_rqst rqst;
struct cnid_dbd_rply rply;
- /* TODO: We should maybe also check len. At the moment we rely on the caller
- to provide a buffer that is large enough for MAXPATHLEN plus
- CNID_HEADER_LEN plus 1 byte, which is large enough for the maximum that
- can come from the database. */
-
memset(buffer, 0, len);
dbd_initstamp(&rqst);
- /* This mimicks the behaviour of the "regular" cnid_resolve. So far,
- nobody uses the content of buffer. It only provides space for the
- name in the caller. */
rply.name = buffer;
if (transmit(db, &rqst, &rply) < 0) {