2 * $Id: cnid_mangle_add.c,v 1.4.2.1 2003-02-08 03:16:53 jmarcus 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 */
45 memset(&key, 0, sizeof(key));
46 memset(&data, 0, sizeof(data));
49 key.size = strlen(mfilename);
51 data.size = strlen(filename) + 1;
55 if ((rc = txn_begin(db->dbenv, NULL, &tid, 0)) != 0) {
56 LOG(log_error, logtype_default, "cnid_mangle_add: Failed to begin transaction: %s", db_strerror(rc));
59 #endif /* CNID_DB_CDB */
61 if ((rc = db->db_mangle->put(db->db_mangle, tid, &key, &data, 0))) {
63 if ((ret = txn_abort(tid)) != 0) {
64 LOG(log_error, logtype_default, "cnid_mangle_add: txn_abort: %s", db_strerror(ret));
67 #endif /* CNID_DB_CDB */
70 case DB_LOCK_DEADLOCK:
72 #endif /* CNID_DB_CDB */
74 LOG(log_error, logtype_default, "cnid_mangle_add: Failed to add mangled filename to the database: %s", db_strerror(rc));
80 if ((rc = txn_commit(tid, 0)) != 0) {
81 LOG(log_error, logtype_default, "cnid_mangle_add: Unable to commit transaction: %s", db_strerror(rc));
84 #endif /* CNID_DB_CDB */
88 #endif /* FILE_MANGLING */