]> arthur.barton.de Git - netatalk.git/blob - libatalk/cnid/cdb/cnid_cdb_delete.c
Support for using $u username variable in AFP volume definitions
[netatalk.git] / libatalk / cnid / cdb / cnid_cdb_delete.c
1 /*
2  *
3  * Copyright (c) 1999. Adrian Sun (asun@zoology.washington.edu)
4  * All Rights Reserved. See COPYRIGHT.
5  *
6  * cnid_delete: delete a CNID from the database 
7  */
8
9 #ifdef HAVE_CONFIG_H
10 #include "config.h"
11 #endif /* HAVE_CONFIG_H */
12
13 #ifdef CNID_BACKEND_CDB
14 #include <arpa/inet.h>
15 #include "cnid_cdb_private.h"
16
17 #define tid    NULL
18
19 int 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->cnid_db_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 */