}
ldb_set_utf8_default(ldb);
+ ldb_set_create_perms(ldb, 0666);
return ldb;
}
return LDB_SUCCESS;
}
+
+/*
+ set the permissions for new files to be passed to open() in
+ backends that use local files
+ */
+void ldb_set_create_perms(struct ldb_context *ldb, unsigned int perms)
+{
+ ldb->create_perms = perms;
+}
+
/*
start an ldb request
NOTE: the request must be a talloc context.
int ldb_set_timeout(struct ldb_context *ldb, struct ldb_request *req, int timeout);
int ldb_set_timeout_from_prev_req(struct ldb_context *ldb, struct ldb_request *oldreq, struct ldb_request *newreq);
+void ldb_set_create_perms(struct ldb_context *ldb, unsigned int perms);
/**
Initialise ldbs' global information
int default_timeout;
unsigned int flags;
+
+ unsigned int create_perms;
};
#ifndef ARRAY_SIZE
/* note that we use quite a large default hash size */
ltdb->tdb = ltdb_wrap_open(ltdb, path, 10000,
- tdb_flags, open_flags, 0644, ldb);
+ tdb_flags, open_flags,
+ ldb->create_perms, ldb);
if (!ltdb->tdb) {
ldb_debug(ldb, LDB_DEBUG_ERROR, "Unable to open tdb '%s'\n", path);
talloc_free(ltdb);