svn commit: samba r18942 - in branches/SAMBA_4_0/source/lib/ldb:
common include ldb_tdb
tridge at samba.org
tridge at samba.org
Wed Sep 27 05:57:42 GMT 2006
Author: tridge
Date: 2006-09-27 05:57:41 +0000 (Wed, 27 Sep 2006)
New Revision: 18942
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=18942
Log:
add a ldb_set_create_perms() function in ldb. I didn't call it
ldb_set_umask() (which is what we had discussed) as it doesn't
actually set the umask (in effect it sets the inverse of the umask -
the perms to be used for the file)
Modified:
branches/SAMBA_4_0/source/lib/ldb/common/ldb.c
branches/SAMBA_4_0/source/lib/ldb/include/ldb.h
branches/SAMBA_4_0/source/lib/ldb/include/ldb_private.h
branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_tdb.c
Changeset:
Modified: branches/SAMBA_4_0/source/lib/ldb/common/ldb.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/common/ldb.c 2006-09-27 04:37:34 UTC (rev 18941)
+++ branches/SAMBA_4_0/source/lib/ldb/common/ldb.c 2006-09-27 05:57:41 UTC (rev 18942)
@@ -52,6 +52,7 @@
}
ldb_set_utf8_default(ldb);
+ ldb_set_create_perms(ldb, 0666);
return ldb;
}
@@ -455,6 +456,16 @@
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.
Modified: branches/SAMBA_4_0/source/lib/ldb/include/ldb.h
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/include/ldb.h 2006-09-27 04:37:34 UTC (rev 18941)
+++ branches/SAMBA_4_0/source/lib/ldb/include/ldb.h 2006-09-27 05:57:41 UTC (rev 18942)
@@ -781,6 +781,7 @@
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
Modified: branches/SAMBA_4_0/source/lib/ldb/include/ldb_private.h
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/include/ldb_private.h 2006-09-27 04:37:34 UTC (rev 18941)
+++ branches/SAMBA_4_0/source/lib/ldb/include/ldb_private.h 2006-09-27 05:57:41 UTC (rev 18942)
@@ -119,6 +119,8 @@
int default_timeout;
unsigned int flags;
+
+ unsigned int create_perms;
};
#ifndef ARRAY_SIZE
Modified: branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_tdb.c
===================================================================
--- branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_tdb.c 2006-09-27 04:37:34 UTC (rev 18941)
+++ branches/SAMBA_4_0/source/lib/ldb/ldb_tdb/ldb_tdb.c 2006-09-27 05:57:41 UTC (rev 18942)
@@ -1036,7 +1036,8 @@
/* 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);
More information about the samba-cvs
mailing list