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