2 * $Id: cnid_mangle_add.c,v 1.6 2003-06-06 21:22:44 srittau Exp $
7 #endif /* HAVE_CONFIG_H */
12 #include <sys/param.h>
15 #include <atalk/logger.h>
19 #include <netatalk/endian.h>
20 #include <atalk/adouble.h>
21 #include <atalk/cnid.h>
23 #include "cnid_private.h"
27 #endif /* CNID_DB_CDB */
29 /* Add a mangled filename. */
31 cnid_mangle_add(void *CNID, char *mfilename, char *filename)
37 #endif /* CNID_DB_CDB */
44 memset(&key, 0, sizeof(key));
45 memset(&data, 0, sizeof(data));
48 key.size = strlen(mfilename);
50 data.size = strlen(filename) + 1;
54 if ((rc = txn_begin(db->dbenv, NULL, &tid, 0)) != 0) {
55 LOG(log_error, logtype_default, "cnid_mangle_add: Failed to begin transaction: %s", db_strerror(rc));
58 #endif /* CNID_DB_CDB */
60 if ((rc = db->db_mangle->put(db->db_mangle, tid, &key, &data, 0))) {
62 if ((ret = txn_abort(tid)) != 0) {
63 LOG(log_error, logtype_default, "cnid_mangle_add: txn_abort: %s", db_strerror(ret));
66 #endif /* CNID_DB_CDB */
69 case DB_LOCK_DEADLOCK:
71 #endif /* CNID_DB_CDB */
73 LOG(log_error, logtype_default, "cnid_mangle_add: Failed to add mangled filename to the database: %s", db_strerror(rc));
79 if ((rc = txn_commit(tid, 0)) != 0) {
80 LOG(log_error, logtype_default, "cnid_mangle_add: Unable to commit transaction: %s", db_strerror(rc));
83 #endif /* CNID_DB_CDB */
87 #endif /* FILE_MANGLING */