svn commit: samba r26412 - in branches/SAMBA_4_0/source/dsdb/schema: .

abartlet at samba.org abartlet at samba.org
Wed Dec 12 07:02:07 GMT 2007


Author: abartlet
Date: 2007-12-12 07:02:07 +0000 (Wed, 12 Dec 2007)
New Revision: 26412

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=26412

Log:
Add comments and refactor to reuse common code.

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/source/dsdb/schema/schema_init.c


Changeset:
Modified: branches/SAMBA_4_0/source/dsdb/schema/schema_init.c
===================================================================
--- branches/SAMBA_4_0/source/dsdb/schema/schema_init.c	2007-12-12 03:02:18 UTC (rev 26411)
+++ branches/SAMBA_4_0/source/dsdb/schema/schema_init.c	2007-12-12 07:02:07 UTC (rev 26412)
@@ -3,7 +3,8 @@
    DSDB schema header
    
    Copyright (C) Stefan Metzmacher <metze at samba.org> 2006
-    
+   Copyright (C) Andrew Bartlett <abartlet at samba.org> 2007
+
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
@@ -1038,6 +1039,11 @@
 	return WERR_OK;
 }
 
+/**
+ * Attach the schema to an opaque pointer on the ldb, so ldb modules
+ * can find it 
+ */
+
 int dsdb_set_schema(struct ldb_context *ldb, struct dsdb_schema *schema)
 {
 	int ret;
@@ -1052,8 +1058,14 @@
 	return LDB_SUCCESS;
 }
 
+/**
+ * Global variable to hold one copy of the schema, used to avoid memory bloat
+ */
 static struct dsdb_schema *global_schema;
 
+/**
+ * Make this ldb use the 'global' schema, setup to avoid having multiple copies in this process
+ */
 int dsdb_set_global_schema(struct ldb_context *ldb)
 {
 	int ret;
@@ -1068,6 +1080,10 @@
 	return LDB_SUCCESS;
 }
 
+/**
+ * Find the schema object for this ldb
+ */
+
 const struct dsdb_schema *dsdb_get_schema(struct ldb_context *ldb)
 {
 	const void *p;
@@ -1087,18 +1103,14 @@
 	return schema;
 }
 
+/**
+ * Make the schema found on this ldb the 'global' schema
+ */
+
 void dsdb_make_schema_global(struct ldb_context *ldb)
 {
 	const void *p;
-	const struct dsdb_schema *schema;
-
-	/* see if we have a cached copy */
-	p = ldb_get_opaque(ldb, "dsdb_schema");
-	if (!p) {
-		return;
-	}
-
-	schema = talloc_get_type(p, struct dsdb_schema);
+	const struct dsdb_schema *schema = dsdb_get_schema(ldb);
 	if (!schema) {
 		return;
 	}
@@ -1109,6 +1121,13 @@
 	dsdb_set_global_schema(ldb);
 }
 
+
+/**
+ * Rather than read a schema from the LDB itself, read it from an ldif
+ * file.  This allows schema to be loaded and used while adding the
+ * schema itself to the directory.
+ */
+
 WERROR dsdb_attach_schema_from_ldif_file(struct ldb_context *ldb, const char *pf, const char *df)
 {
 	struct ldb_ldif *ldif;



More information about the samba-cvs mailing list