#include "librpc/gen_ndr/xattr.h"
#include "librpc/gen_ndr/ndr_xattr.h"
#include "../librpc/gen_ndr/ndr_netlogon.h"
-#include "dbwrap.h"
+#include "dbwrap/dbwrap.h"
+#include "dbwrap/dbwrap_open.h"
#include "util_tdb.h"
#undef DBGC_CLASS
/* For backwards compatibility only store the dev/inode. */
push_file_id_16((char *)id_buf, id);
- if (db_ctx->fetch(db_ctx, mem_ctx,
- make_tdb_data(id_buf, sizeof(id_buf)),
- &data) != 0) {
+ status = dbwrap_fetch(db_ctx, mem_ctx,
+ make_tdb_data(id_buf, sizeof(id_buf)),
+ &data);
+ if (!NT_STATUS_IS_OK(status)) {
return NT_STATUS_INTERNAL_DB_CORRUPTION;
}
/* For backwards compatibility only store the dev/inode. */
push_file_id_16((char *)id_buf, id);
- return db_ctx->fetch_locked(db_ctx, mem_ctx,
- make_tdb_data(id_buf, sizeof(id_buf)));
+ return dbwrap_fetch_locked(db_ctx, mem_ctx,
+ make_tdb_data(id_buf, sizeof(id_buf)));
}
/*
return status;
}
- status = rec->store(rec, data, 0);
+ status = dbwrap_record_store(rec, data, 0);
TALLOC_FREE(data.dptr);
struct db_record *rec;
struct tdb_xattrs *attribs;
uint32_t i;
+ TDB_DATA data;
DEBUG(10, ("xattr_tdb_setattr called for file %s, name %s\n",
file_id_string_tos(id), name));
return -1;
}
- status = xattr_tdb_pull_attrs(rec, &rec->value, &attribs);
+ data = dbwrap_record_get_value(rec);
+
+ status = xattr_tdb_pull_attrs(rec, &data, &attribs);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(10, ("xattr_tdb_fetch_attrs failed: %s\n",
if (len > size) {
TALLOC_FREE(attribs);
errno = ERANGE;
- return -1;
+ return len;
}
len = 0;
struct db_record *rec;
struct tdb_xattrs *attribs;
uint32_t i;
+ TDB_DATA value;
rec = xattr_tdb_lock_attrs(talloc_tos(), db_ctx, id);
return -1;
}
- status = xattr_tdb_pull_attrs(rec, &rec->value, &attribs);
+ value = dbwrap_record_get_value(rec);
+
+ status = xattr_tdb_pull_attrs(rec, &value, &attribs);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(10, ("xattr_tdb_fetch_attrs failed: %s\n",
attribs->num_eas -= 1;
if (attribs->num_eas == 0) {
- rec->delete_rec(rec);
+ dbwrap_record_delete(rec);
TALLOC_FREE(rec);
return 0;
}
/* now we know dbname is not NULL */
become_root();
- db = db_open(NULL, dbname, 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
+ db = db_open(NULL, dbname, 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600,
+ DBWRAP_LOCK_ORDER_2);
unbecome_root();
if (db == NULL) {
*/
if (rec != NULL) {
- rec->delete_rec(rec);
+ dbwrap_record_delete(rec);
TALLOC_FREE(rec);
}
*/
if (rec != NULL) {
- rec->delete_rec(rec);
+ dbwrap_record_delete(rec);
TALLOC_FREE(rec);
}
}
static struct vfs_fn_pointers vfs_xattr_tdb_fns = {
- .getxattr = xattr_tdb_getxattr,
- .fgetxattr = xattr_tdb_fgetxattr,
- .setxattr = xattr_tdb_setxattr,
- .fsetxattr = xattr_tdb_fsetxattr,
- .listxattr = xattr_tdb_listxattr,
- .flistxattr = xattr_tdb_flistxattr,
- .removexattr = xattr_tdb_removexattr,
- .fremovexattr = xattr_tdb_fremovexattr,
- .unlink = xattr_tdb_unlink,
- .rmdir = xattr_tdb_rmdir,
+ .getxattr_fn = xattr_tdb_getxattr,
+ .fgetxattr_fn = xattr_tdb_fgetxattr,
+ .setxattr_fn = xattr_tdb_setxattr,
+ .fsetxattr_fn = xattr_tdb_fsetxattr,
+ .listxattr_fn = xattr_tdb_listxattr,
+ .flistxattr_fn = xattr_tdb_flistxattr,
+ .removexattr_fn = xattr_tdb_removexattr,
+ .fremovexattr_fn = xattr_tdb_fremovexattr,
+ .unlink_fn = xattr_tdb_unlink,
+ .rmdir_fn = xattr_tdb_rmdir,
.connect_fn = xattr_tdb_connect,
};