• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /netgear-WNDR4500v2-V1.0.0.60_1.0.38/ap/gpl/timemachine/netatalk-2.2.5/libatalk/cnid/cdb/
1/*
2 * $Id: cnid_cdb_delete.c,v 1.4 2009-10-29 13:38:16 didg Exp $
3 *
4 * Copyright (c) 1999. Adrian Sun (asun@zoology.washington.edu)
5 * All Rights Reserved. See COPYRIGHT.
6 *
7 * cnid_delete: delete a CNID from the database
8 */
9
10#ifdef HAVE_CONFIG_H
11#include "config.h"
12#endif /* HAVE_CONFIG_H */
13
14#ifdef CNID_BACKEND_CDB
15#include "cnid_cdb_private.h"
16
17#define tid    NULL
18
19int cnid_cdb_delete(struct _cnid_db *cdb, const cnid_t id) {
20    CNID_private *db;
21    DBT key;
22    int rc;
23
24    if (!cdb || !(db = cdb->_private) || !id || (db->flags & CNIDFLAG_DB_RO)) {
25        return -1;
26    }
27
28    memset(&key, 0, sizeof(key));
29
30    /* Get from ain CNID database. */
31    key.data = (cnid_t *)&id;
32    key.size = sizeof(id);
33
34    if ((rc = db->db_cnid->del(db->db_cnid, tid, &key, 0))) {
35        LOG(log_error, logtype_default, "cnid_delete: Unable to delete CNID %u: %s",
36            ntohl(id), db_strerror(rc));
37    }
38    else {
39#ifdef DEBUG
40        LOG(log_debug9, logtype_default, "cnid_delete: Deleting CNID %u", ntohl(id));
41#endif
42    }
43    return rc;
44}
45
46#endif /* CNID_BACKEND_CDB */
47