]> arthur.barton.de Git - netatalk.git/blob - libatalk/cnid/cdb/cnid_cdb_close.c
d34a418b7e3cef4b623912d2008a4f54cec5a04e
[netatalk.git] / libatalk / cnid / cdb / cnid_cdb_close.c
1 /*
2  */
3
4 #ifdef HAVE_CONFIG_H
5 #include "config.h"
6 #endif /* HAVE_CONFIG_H */
7
8 #ifdef CNID_BACKEND_CDB
9 #include "cnid_cdb_private.h"
10
11 void cnid_cdb_close(struct _cnid_db *cdb) {
12     CNID_private *db;
13
14     if (!cdb) {
15             LOG(log_error, logtype_afpd, "cnid_close called with NULL argument !");
16             return;
17     }
18
19     if (!(db = cdb->_private)) {
20         return;
21     }
22     db->db_didname->sync(db->db_didname, 0); 
23     db->db_devino->sync(db->db_devino, 0);
24     db->db_cnid->sync(db->db_cnid, 0);
25     
26     db->db_didname->close(db->db_didname, 0);
27     db->db_devino->close(db->db_devino, 0);
28     db->db_cnid->close(db->db_cnid, 0);
29
30     db->dbenv->close(db->dbenv, 0);
31
32     free(db);
33     free(cdb->volpath);
34     free(cdb);
35 }
36
37 #endif /* CNID_BACKEND_CDB */