diff options
Diffstat (limited to 'source4')
-rw-r--r-- | source4/dsdb/pydsdb.c | 4 | ||||
-rwxr-xr-x | source4/scripting/bin/upgradeprovision | 7 | ||||
-rw-r--r-- | source4/scripting/python/samba/schema.py | 2 |
3 files changed, 7 insertions, 6 deletions
diff --git a/source4/dsdb/pydsdb.c b/source4/dsdb/pydsdb.c index 57e08cca90..62b5c8db83 100644 --- a/source4/dsdb/pydsdb.c +++ b/source4/dsdb/pydsdb.c @@ -829,11 +829,11 @@ static PyObject *py_dsdb_set_am_rodc(PyObject *self, PyObject *args) static PyObject *py_dsdb_set_schema_from_ldif(PyObject *self, PyObject *args) { WERROR result; - char *pf, *df; + char *pf, *df, *dn; PyObject *py_ldb; struct ldb_context *ldb; - if (!PyArg_ParseTuple(args, "Oss", &py_ldb, &pf, &df)) + if (!PyArg_ParseTuple(args, "Osss", &py_ldb, &pf, &df, &dn)) return NULL; PyErr_LDB_OR_RAISE(py_ldb, ldb); diff --git a/source4/scripting/bin/upgradeprovision b/source4/scripting/bin/upgradeprovision index 0a3df32854..f4031206c9 100755 --- a/source4/scripting/bin/upgradeprovision +++ b/source4/scripting/bin/upgradeprovision @@ -1101,7 +1101,8 @@ def reload_full_schema(samdb, names): :param names: List of key provision parameters """ - current = samdb.search(expression="objectClass=*", base=str(names.schemadn), + schemadn = str(names.schemadn) + current = samdb.search(expression="objectClass=*", base=schemadn, scope=SCOPE_SUBTREE) schema_ldif = "" prefixmap_data = "" @@ -1113,9 +1114,9 @@ def reload_full_schema(samdb, names): prefixmap_data = b64encode(prefixmap_data) # We don't actually add this ldif, just parse it - prefixmap_ldif = "dn: cn=schema\nprefixMap:: %s\n\n" % prefixmap_data + prefixmap_ldif = "dn: %s\nprefixMap:: %s\n\n" % (schemadn, prefixmap_data) - dsdb._dsdb_set_schema_from_ldif(samdb, prefixmap_ldif, schema_ldif) + dsdb._dsdb_set_schema_from_ldif(samdb, prefixmap_ldif, schema_ldif, schemadn) def update_partition(ref_samdb, samdb, basedn, names, schema, provisionUSNs, prereloadfunc): diff --git a/source4/scripting/python/samba/schema.py b/source4/scripting/python/samba/schema.py index 216cb0ff27..9cbfa3a8e8 100644 --- a/source4/scripting/python/samba/schema.py +++ b/source4/scripting/python/samba/schema.py @@ -120,7 +120,7 @@ class Schema(object): self.set_from_ldif(prefixmap_ldif, self.schema_data, self.schemadn) def set_from_ldif(self, pf, df, dn): - dsdb._dsdb_set_schema_from_ldif(self.ldb, pf, df) + dsdb._dsdb_set_schema_from_ldif(self.ldb, pf, df, dn) def write_to_tmp_ldb(self, schemadb_path): self.ldb.connect(url=schemadb_path) |