2 * $Id: dbd_getstamp.c,v 1.4 2009-05-06 11:54:24 franklahm Exp $
4 * Copyright (C) Joerg Lenneis 2003
5 * All Rights Reserved. See COPYING.
10 #endif /* HAVE_CONFIG_H */
13 #include <atalk/logger.h>
15 #include <netatalk/endian.h>
16 #include <atalk/cnid_dbd_private.h>
22 /* Return the unique stamp associated with this database */
24 int dbd_getstamp(DBD *dbd, struct cnid_dbd_rqst *rqst _U_, struct cnid_dbd_rply *rply)
30 memset(&key, 0, sizeof(key));
31 memset(&data, 0, sizeof(data));
35 key.data = ROOTINFO_KEY;
36 key.size = ROOTINFO_KEYLEN;
38 if ((rc = dbif_get(dbd, DBIF_CNID, &key, &data, 0)) < 0) {
39 LOG(log_error, logtype_cnid, "dbd_getstamp: Error getting rootinfo record");
40 rply->result = CNID_DBD_RES_ERR_DB;
45 LOG(log_error, logtype_cnid, "dbd_getstamp: No rootinfo record found");
46 rply->result = CNID_DBD_RES_NOTFOUND;
50 rply->namelen = CNID_DEV_LEN;
51 rply->name = (char *)data.data + CNID_DEV_OFS;
54 LOG(log_debug, logtype_cnid, "cnid_getstamp: Returning stamp '%08x'", *(uint32_t *)rply->name);
56 rply->result = CNID_DBD_RES_OK;