The branch, master has been updated
       via  dcd346c s4-tests: Make repl_schema.py test part of Samba4 test suite
       via  0868a15 s4-repl: Propagate remote prefixMap in DRSUAPI data 
conversion functions
       via  2d0cb54 s4-dsdb_syntax: Warning message that we can't find 
requested ATTID in Schema Cache
       via  3ab7552 s4-prefixMap: dsdb_schema_pfm_oid_from_attid() to use const 
prefixMap
       via  e772518 s4-dsdb_syntax: Use remote prefixMap to handle generic 
cases in drsuapi_to_ldb conversions
       via  f65c840 s4-dsdb_syntax: Add remote prefixMap member for dsdb_syntax 
conversions
       via  a8495d3 s4-repl: dsdb_extended_replicated_objects_convert -> 
dsdb_replicated_objects_convert/
       via  227e8dc s4-repl: dsdb_extended_replicated_objects_commit -> 
dsdb_replicated_objects_commit
       via  28f41c1 s4-repl: dsdb_convert_object -> dsdb_origin_object_convert
       via  7ada90e s4-test: repl_schema - Make sure LdbError and 
ERR_NO_SUCH_OBJECT are visible
      from  beaf14e s3: Well... Fix a stupid error

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit dcd346c0e541246260507c96283eefaef23edebb
Author: Kamen Mazdrashki <kame...@samba.org>
Date:   Wed Nov 10 06:14:20 2010 +0200

    s4-tests: Make repl_schema.py test part of Samba4 test suite
    
    Autobuild-User: Kamen Mazdrashki <kame...@samba.org>
    Autobuild-Date: Thu Nov 11 19:38:18 UTC 2010 on sn-devel-104

commit 0868a1598220e2ed73aefcd9ec3517a38704ac9e
Author: Kamen Mazdrashki <kame...@samba.org>
Date:   Wed Nov 10 03:45:22 2010 +0200

    s4-repl: Propagate remote prefixMap in DRSUAPI data conversion functions

commit 2d0cb54ceb8f568f233533ada007822ffb40ee3d
Author: Kamen Mazdrashki <kame...@samba.org>
Date:   Wed Nov 10 02:32:29 2010 +0200

    s4-dsdb_syntax: Warning message that we can't find requested ATTID in 
Schema Cache

commit 3ab75524ee11f9121f41b3d4dd452ecdf9847e67
Author: Kamen Mazdrashki <kame...@samba.org>
Date:   Tue Nov 9 04:36:24 2010 +0200

    s4-prefixMap: dsdb_schema_pfm_oid_from_attid() to use const prefixMap
    
    It is not supposed to change supplied prefixMap

commit e772518a64f1f616ba6c00a8ee45cffd228bd8b3
Author: Kamen Mazdrashki <kame...@samba.org>
Date:   Tue Nov 9 04:12:57 2010 +0200

    s4-dsdb_syntax: Use remote prefixMap to handle generic cases in 
drsuapi_to_ldb conversions

commit f65c8402998c0759aac1ff27234a5e841a3bba37
Author: Kamen Mazdrashki <kame...@samba.org>
Date:   Tue Nov 9 04:12:16 2010 +0200

    s4-dsdb_syntax: Add remote prefixMap member for dsdb_syntax conversions

commit a8495d380ef93f8d236d521c8b1b8bf76f689acf
Author: Kamen Mazdrashki <kame...@samba.org>
Date:   Sun Nov 7 23:04:33 2010 +0200

    s4-repl: dsdb_extended_replicated_objects_convert -> 
dsdb_replicated_objects_convert/
    
    It is part of dsdb_replicated_* family of functions

commit 227e8dcfcfeeb5721e4f23c2bc183fd63c5bbe30
Author: Kamen Mazdrashki <kame...@samba.org>
Date:   Sun Nov 7 22:51:11 2010 +0200

    s4-repl: dsdb_extended_replicated_objects_commit -> 
dsdb_replicated_objects_commit
    
    It is part of dsdb_replicated_* family of functions

commit 28f41c166a77c0d69f0b1eb3e0d811fb66e696a4
Author: Kamen Mazdrashki <kame...@samba.org>
Date:   Sun Nov 7 21:47:39 2010 +0200

    s4-repl: dsdb_convert_object -> dsdb_origin_object_convert
    
    It is used in dsdb_origin_objects_commit() func,
    hence the dsdb_origin_ prefix

commit 7ada90ec2956fc8fc744676496e847f1a4d2f163
Author: Kamen Mazdrashki <kame...@samba.org>
Date:   Thu Nov 11 20:19:47 2010 +0200

    s4-test: repl_schema - Make sure LdbError and ERR_NO_SUCH_OBJECT are visible

-----------------------------------------------------------------------

Summary of changes:
 source4/dsdb/repl/drepl_out_helpers.c     |   28 ++++++------
 source4/dsdb/repl/replicated_objects.c    |   66 ++++++++++++++++++-----------
 source4/dsdb/schema/schema.h              |    3 +
 source4/dsdb/schema/schema_prefixmap.c    |    3 +-
 source4/dsdb/schema/schema_syntax.c       |   14 +++++-
 source4/libnet/libnet_vampire.c           |   60 +++++++++++++++-----------
 source4/selftest/tests.py                 |    1 +
 source4/torture/drs/python/repl_schema.py |    1 +
 source4/torture/drs/rpc/dssync.c          |   18 ++++----
 9 files changed, 117 insertions(+), 77 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source4/dsdb/repl/drepl_out_helpers.c 
b/source4/dsdb/repl/drepl_out_helpers.c
index f83cdda..b99f126 100644
--- a/source4/dsdb/repl/drepl_out_helpers.c
+++ b/source4/dsdb/repl/drepl_out_helpers.c
@@ -580,17 +580,17 @@ static void 
dreplsrv_op_pull_source_apply_changes_trigger(struct tevent_req *req
                return;
        }
 
-       status = dsdb_extended_replicated_objects_convert(service->samdb,
-                                                         partition->nc.dn,
-                                                         mapping_ctr,
-                                                         object_count,
-                                                         first_object,
-                                                         
linked_attributes_count,
-                                                         linked_attributes,
-                                                         &rf1,
-                                                         uptodateness_vector,
-                                                         &drsuapi->gensec_skey,
-                                                         state, &objects);
+       status = dsdb_replicated_objects_convert(service->samdb,
+                                                partition->nc.dn,
+                                                mapping_ctr,
+                                                object_count,
+                                                first_object,
+                                                linked_attributes_count,
+                                                linked_attributes,
+                                                &rf1,
+                                                uptodateness_vector,
+                                                &drsuapi->gensec_skey,
+                                                state, &objects);
        if (!W_ERROR_IS_OK(status)) {
                nt_status = werror_to_ntstatus(WERR_BAD_NET_RESP);
                DEBUG(0,("Failed to convert objects: %s/%s\n",
@@ -599,9 +599,9 @@ static void 
dreplsrv_op_pull_source_apply_changes_trigger(struct tevent_req *req
                return;
        }
 
-       status = dsdb_extended_replicated_objects_commit(service->samdb,
-                                                        objects, 
-                                                        
&state->op->source_dsa->notify_uSN);
+       status = dsdb_replicated_objects_commit(service->samdb,
+                                               objects,
+                                               
&state->op->source_dsa->notify_uSN);
        talloc_free(objects);
        if (!W_ERROR_IS_OK(status)) {
                nt_status = werror_to_ntstatus(WERR_BAD_NET_RESP);
diff --git a/source4/dsdb/repl/replicated_objects.c 
b/source4/dsdb/repl/replicated_objects.c
index 5c3cf48..5824334 100644
--- a/source4/dsdb/repl/replicated_objects.c
+++ b/source4/dsdb/repl/replicated_objects.c
@@ -33,6 +33,7 @@
 
 WERROR dsdb_convert_object_ex(struct ldb_context *ldb,
                              const struct dsdb_schema *schema,
+                             const struct dsdb_schema_prefixmap *pfm_remote,
                              const struct drsuapi_DsReplicaObjectListItemEx 
*in,
                              const DATA_BLOB *gensec_skey,
                              TALLOC_CTX *mem_ctx,
@@ -127,7 +128,8 @@ WERROR dsdb_convert_object_ex(struct ldb_context *ldb,
                        W_ERROR_NOT_OK_RETURN(status);
                }
 
-               status = dsdb_attribute_drsuapi_to_ldb(ldb, schema, a, 
msg->elements, e);
+               status = dsdb_attribute_drsuapi_to_ldb(ldb, schema, pfm_remote,
+                                                      a, msg->elements, e);
                W_ERROR_NOT_OK_RETURN(status);
 
                m->attid                        = a->attid;
@@ -196,22 +198,23 @@ WERROR dsdb_convert_object_ex(struct ldb_context *ldb,
        return WERR_OK;
 }
 
-WERROR dsdb_extended_replicated_objects_convert(struct ldb_context *ldb,
-                                               const char *partition_dn_str,
-                                               const struct 
drsuapi_DsReplicaOIDMapping_Ctr *mapping_ctr,
-                                               uint32_t object_count,
-                                               const struct 
drsuapi_DsReplicaObjectListItemEx *first_object,
-                                               uint32_t 
linked_attributes_count,
-                                               const struct 
drsuapi_DsReplicaLinkedAttribute *linked_attributes,
-                                               const struct repsFromTo1 
*source_dsa,
-                                               const struct 
drsuapi_DsReplicaCursor2CtrEx *uptodateness_vector,
-                                               const DATA_BLOB *gensec_skey,
-                                               TALLOC_CTX *mem_ctx,
-                                               struct 
dsdb_extended_replicated_objects **objects)
+WERROR dsdb_replicated_objects_convert(struct ldb_context *ldb,
+                                      const char *partition_dn_str,
+                                      const struct 
drsuapi_DsReplicaOIDMapping_Ctr *mapping_ctr,
+                                      uint32_t object_count,
+                                      const struct 
drsuapi_DsReplicaObjectListItemEx *first_object,
+                                      uint32_t linked_attributes_count,
+                                      const struct 
drsuapi_DsReplicaLinkedAttribute *linked_attributes,
+                                      const struct repsFromTo1 *source_dsa,
+                                      const struct 
drsuapi_DsReplicaCursor2CtrEx *uptodateness_vector,
+                                      const DATA_BLOB *gensec_skey,
+                                      TALLOC_CTX *mem_ctx,
+                                      struct dsdb_extended_replicated_objects 
**objects)
 {
        WERROR status;
        struct ldb_dn *partition_dn;
        const struct dsdb_schema *schema;
+       struct dsdb_schema_prefixmap *pfm_remote;
        struct dsdb_extended_replicated_objects *out;
        const struct drsuapi_DsReplicaObjectListItemEx *cur;
        uint32_t i;
@@ -230,6 +233,15 @@ WERROR dsdb_extended_replicated_objects_convert(struct 
ldb_context *ldb,
        partition_dn = ldb_dn_new(out, ldb, partition_dn_str);
        W_ERROR_HAVE_NO_MEMORY_AND_FREE(partition_dn, out);
 
+       status = dsdb_schema_pfm_from_drsuapi_pfm(mapping_ctr, true,
+                                                 out, &pfm_remote, NULL);
+       if (!W_ERROR_IS_OK(status)) {
+               DEBUG(0,(__location__ ": Failed to decode remote prefixMap: %s",
+                        win_errstr(status)));
+               talloc_free(out);
+               return status;
+       }
+
        if (ldb_dn_compare(partition_dn, ldb_get_schema_basedn(ldb)) != 0) {
                /*
                 * check for schema changes in case
@@ -266,7 +278,7 @@ WERROR dsdb_extended_replicated_objects_convert(struct 
ldb_context *ldb,
                        return WERR_FOOBAR;
                }
 
-               status = dsdb_convert_object_ex(ldb, schema,
+               status = dsdb_convert_object_ex(ldb, schema, pfm_remote,
                                                cur, gensec_skey,
                                                out->objects, &out->objects[i]);
                if (!W_ERROR_IS_OK(status)) {
@@ -282,13 +294,16 @@ WERROR dsdb_extended_replicated_objects_convert(struct 
ldb_context *ldb,
                return WERR_FOOBAR;
        }
 
+       /* free pfm_remote, we won't need it anymore */
+       talloc_free(pfm_remote);
+
        *objects = out;
        return WERR_OK;
 }
 
-WERROR dsdb_extended_replicated_objects_commit(struct ldb_context *ldb,
-                                              struct 
dsdb_extended_replicated_objects *objects,
-                                              uint64_t *notify_uSN)
+WERROR dsdb_replicated_objects_commit(struct ldb_context *ldb,
+                                     struct dsdb_extended_replicated_objects 
*objects,
+                                     uint64_t *notify_uSN)
 {
        struct ldb_result *ext_res;
        int ret;
@@ -356,11 +371,11 @@ WERROR dsdb_extended_replicated_objects_commit(struct 
ldb_context *ldb,
        return WERR_OK;
 }
 
-static WERROR dsdb_convert_object(struct ldb_context *ldb,
-                                 const struct dsdb_schema *schema,
-                                 const struct drsuapi_DsReplicaObjectListItem 
*in,
-                                 TALLOC_CTX *mem_ctx,
-                                 struct ldb_message **_msg)
+static WERROR dsdb_origin_object_convert(struct ldb_context *ldb,
+                                        const struct dsdb_schema *schema,
+                                        const struct 
drsuapi_DsReplicaObjectListItem *in,
+                                        TALLOC_CTX *mem_ctx,
+                                        struct ldb_message **_msg)
 {
        WERROR status;
        unsigned int i;
@@ -392,7 +407,8 @@ static WERROR dsdb_convert_object(struct ldb_context *ldb,
                a = &in->object.attribute_ctr.attributes[i];
                e = &msg->elements[i];
 
-               status = dsdb_attribute_drsuapi_to_ldb(ldb, schema, a, 
msg->elements, e);
+               status = dsdb_attribute_drsuapi_to_ldb(ldb, schema, 
schema->prefixmap,
+                                                      a, msg->elements, e);
                W_ERROR_NOT_OK_RETURN(status);
        }
 
@@ -449,8 +465,8 @@ WERROR dsdb_origin_objects_commit(struct ldb_context *ldb,
        }
 
        for (i=0, cur = first_object; cur; cur = cur->next_object, i++) {
-               status = dsdb_convert_object(ldb, schema,
-                                            cur, objects, &objects[i]);
+               status = dsdb_origin_object_convert(ldb, schema, cur,
+                                                   objects, &objects[i]);
                if (!W_ERROR_IS_OK(status)) {
                        goto cancel;
                }
diff --git a/source4/dsdb/schema/schema.h b/source4/dsdb/schema/schema.h
index fd1e090..5ba2254 100644
--- a/source4/dsdb/schema/schema.h
+++ b/source4/dsdb/schema/schema.h
@@ -35,6 +35,9 @@ struct dsdb_syntax_ctx {
 
        /* set when converting objects under Schema NC */
        bool is_schema_nc;
+
+       /* remote prefixMap to be used for drsuapi_to_ldb conversions */
+       const struct dsdb_schema_prefixmap *pfm_remote;
 };
 
 
diff --git a/source4/dsdb/schema/schema_prefixmap.c 
b/source4/dsdb/schema/schema_prefixmap.c
index 371ec88..18b22ff 100644
--- a/source4/dsdb/schema/schema_prefixmap.c
+++ b/source4/dsdb/schema/schema_prefixmap.c
@@ -351,7 +351,8 @@ WERROR dsdb_schema_pfm_attid_from_oid(struct 
dsdb_schema_prefixmap *pfm,
  * Make OID for given ATTID.
  * Reference: [MS-DRSR] section 5.12.2
  */
-WERROR dsdb_schema_pfm_oid_from_attid(struct dsdb_schema_prefixmap *pfm, 
uint32_t attid,
+WERROR dsdb_schema_pfm_oid_from_attid(const struct dsdb_schema_prefixmap *pfm,
+                                     uint32_t attid,
                                      TALLOC_CTX *mem_ctx, const char **_oid)
 {
        uint32_t i;
diff --git a/source4/dsdb/schema/schema_syntax.c 
b/source4/dsdb/schema/schema_syntax.c
index 9cd3105..0d1d274 100644
--- a/source4/dsdb/schema/schema_syntax.c
+++ b/source4/dsdb/schema/schema_syntax.c
@@ -48,6 +48,8 @@ void dsdb_syntax_ctx_init(struct dsdb_syntax_ctx *ctx,
         * i.e. attributeID_id will be returned by default
         */
        ctx->is_schema_nc = true;
+
+       ctx->pfm_remote = NULL;
 }
 
 
@@ -902,7 +904,9 @@ static WERROR _dsdb_syntax_auto_OID_drsuapi_to_ldb(const 
struct dsdb_syntax_ctx
                        str = talloc_strdup(out->values, a->lDAPDisplayName);
                } else {
                        WERROR werr;
-                       werr = 
dsdb_schema_pfm_oid_from_attid(ctx->schema->prefixmap, v, out->values, &str);
+                       SMB_ASSERT(ctx->pfm_remote);
+                       werr = dsdb_schema_pfm_oid_from_attid(ctx->pfm_remote, 
v,
+                                                             out->values, 
&str);
                        W_ERROR_NOT_OK_RETURN(werr);
                }
                W_ERROR_HAVE_NO_MEMORY(str);
@@ -1014,6 +1018,8 @@ static WERROR _dsdb_syntax_OID_oid_drsuapi_to_ldb(const 
struct dsdb_syntax_ctx *
 {
        unsigned int i;
 
+       SMB_ASSERT(ctx->pfm_remote);
+
        out->flags      = 0;
        out->name       = talloc_strdup(mem_ctx, attr->lDAPDisplayName);
        W_ERROR_HAVE_NO_MEMORY(out->name);
@@ -1037,7 +1043,8 @@ static WERROR _dsdb_syntax_OID_oid_drsuapi_to_ldb(const 
struct dsdb_syntax_ctx *
 
                attid = IVAL(in->value_ctr.values[i].blob->data, 0);
 
-               status = dsdb_schema_pfm_oid_from_attid(ctx->schema->prefixmap, 
attid, out->values, &oid);
+               status = dsdb_schema_pfm_oid_from_attid(ctx->pfm_remote, attid,
+                                                       out->values, &oid);
                W_ERROR_NOT_OK_RETURN(status);
 
                out->values[i] = data_blob_string_const(oid);
@@ -2579,6 +2586,7 @@ const struct dsdb_syntax *dsdb_syntax_for_attribute(const 
struct dsdb_attribute
 
 WERROR dsdb_attribute_drsuapi_to_ldb(struct ldb_context *ldb,
                                     const struct dsdb_schema *schema,
+                                    const struct dsdb_schema_prefixmap 
*pfm_remote,
                                     const struct drsuapi_DsReplicaAttribute 
*in,
                                     TALLOC_CTX *mem_ctx,
                                     struct ldb_message_element *out)
@@ -2588,11 +2596,13 @@ WERROR dsdb_attribute_drsuapi_to_ldb(struct ldb_context 
*ldb,
 
        sa = dsdb_attribute_by_attributeID_id(schema, in->attid);
        if (!sa) {
+               DEBUG(1,(__location__ ": Unknown attributeID_id 0x%08X\n", 
in->attid));
                return WERR_FOOBAR;
        }
 
        /* use default syntax conversion context */
        dsdb_syntax_ctx_init(&syntax_ctx, ldb, schema);
+       syntax_ctx.pfm_remote = pfm_remote;
 
        return sa->syntax->drsuapi_to_ldb(&syntax_ctx, sa, in, mem_ctx, out);
 }
diff --git a/source4/libnet/libnet_vampire.c b/source4/libnet/libnet_vampire.c
index f349a5d..164dcde 100644
--- a/source4/libnet/libnet_vampire.c
+++ b/source4/libnet/libnet_vampire.c
@@ -225,6 +225,7 @@ static NTSTATUS libnet_vampire_cb_apply_schema(struct 
libnet_vampire_cb_state *s
        };
 
        WERROR status;
+       struct dsdb_schema_prefixmap *pfm_remote;
        const struct drsuapi_DsReplicaOIDMapping_Ctr *mapping_ctr;
        struct schema_list *schema_list = NULL, *schema_list_item, 
*schema_list_next_item;
        struct dsdb_schema *working_schema;
@@ -280,6 +281,14 @@ static NTSTATUS libnet_vampire_cb_apply_schema(struct 
libnet_vampire_cb_state *s
                return NT_STATUS_INVALID_PARAMETER;
        }
 
+       status = dsdb_schema_pfm_from_drsuapi_pfm(mapping_ctr, true,
+                                                 s, &pfm_remote, NULL);
+       if (!W_ERROR_IS_OK(status)) {
+               DEBUG(0,(__location__ ": Failed to decode remote prefixMap: %s",
+                        win_errstr(status)));
+               return werror_to_ntstatus(status);
+       }
+
        s_dsa->replica_flags            = DRSUAPI_DRS_WRIT_REP
                                        | DRSUAPI_DRS_INIT_SYNC
                                        | DRSUAPI_DRS_PER_SYNC;
@@ -338,7 +347,7 @@ static NTSTATUS libnet_vampire_cb_apply_schema(struct 
libnet_vampire_cb_state *s
                         * schema we have so far. It's ok if we fail to convert
                         * an object. We should convert more objects on next 
pass.
                         */
-                       status = dsdb_convert_object_ex(s->ldb, working_schema,
+                       status = dsdb_convert_object_ex(s->ldb, working_schema, 
pfm_remote,
                                                        cur, c->gensec_skey,
                                                        tmp_ctx, &object);
                        if (!W_ERROR_IS_OK(status)) {
@@ -409,17 +418,17 @@ static NTSTATUS libnet_vampire_cb_apply_schema(struct 
libnet_vampire_cb_state *s
        s->self_made_schema = NULL;
 
        /* Now convert the schema elements again, using the schema we 
finalised, ready to actually import */
-       status = dsdb_extended_replicated_objects_convert(s->ldb,
-                                                         c->partition->nc.dn,
-                                                         mapping_ctr,
-                                                         object_count,
-                                                         first_object,
-                                                         
linked_attributes_count,
-                                                         linked_attributes,
-                                                         s_dsa,
-                                                         uptodateness_vector,
-                                                         c->gensec_skey,
-                                                         s, &schema_objs);
+       status = dsdb_replicated_objects_convert(s->ldb,
+                                                c->partition->nc.dn,
+                                                mapping_ctr,
+                                                object_count,
+                                                first_object,
+                                                linked_attributes_count,
+                                                linked_attributes,
+                                                s_dsa,
+                                                uptodateness_vector,
+                                                c->gensec_skey,
+                                                s, &schema_objs);
        if (!W_ERROR_IS_OK(status)) {
                DEBUG(0,("Failed to convert objects when trying to import over 
DRS (2nd pass, to store remote schema): %s\n", win_errstr(status)));
                return werror_to_ntstatus(status);
@@ -436,7 +445,7 @@ static NTSTATUS libnet_vampire_cb_apply_schema(struct 
libnet_vampire_cb_state *s
                }
        }
 
-       status = dsdb_extended_replicated_objects_commit(s->ldb, schema_objs, 
&seq_num);
+       status = dsdb_replicated_objects_commit(s->ldb, schema_objs, &seq_num);
        if (!W_ERROR_IS_OK(status)) {
                DEBUG(0,("Failed to commit objects: %s\n", win_errstr(status)));
                return werror_to_ntstatus(status);
@@ -676,17 +685,17 @@ NTSTATUS libnet_vampire_cb_store_chunk(void *private_data,
        }
 
 
-       status = dsdb_extended_replicated_objects_convert(s->ldb,
-                                                         c->partition->nc.dn,
-                                                         mapping_ctr,
-                                                         object_count,
-                                                         first_object,
-                                                         
linked_attributes_count,
-                                                         linked_attributes,
-                                                         s_dsa,
-                                                         uptodateness_vector,
-                                                         c->gensec_skey,
-                                                         s, &objs);
+       status = dsdb_replicated_objects_convert(s->ldb,
+                                                c->partition->nc.dn,
+                                                mapping_ctr,
+                                                object_count,
+                                                first_object,
+                                                linked_attributes_count,
+                                                linked_attributes,
+                                                s_dsa,
+                                                uptodateness_vector,
+                                                c->gensec_skey,
+                                                s, &objs);
        if (!W_ERROR_IS_OK(status)) {
                DEBUG(0,("Failed to convert objects: %s\n", 
win_errstr(status)));
                return werror_to_ntstatus(status);
@@ -702,8 +711,7 @@ NTSTATUS libnet_vampire_cb_store_chunk(void *private_data,
                        NDR_PRINT_DEBUG(replPropertyMetaDataBlob, 
objs->objects[i].meta_data);
                }
        }
-       status = dsdb_extended_replicated_objects_commit(s->ldb,
-                                                        objs, &seq_num);
+       status = dsdb_replicated_objects_commit(s->ldb, objs, &seq_num);
        if (!W_ERROR_IS_OK(status)) {
                DEBUG(0,("Failed to commit objects: %s\n", win_errstr(status)));
                return werror_to_ntstatus(status);
diff --git a/source4/selftest/tests.py b/source4/selftest/tests.py
index 0c7c7c2..7a2dd44 100755
--- a/source4/selftest/tests.py
+++ b/source4/selftest/tests.py
@@ -509,6 +509,7 @@ plantestsuite("samba4.ldap.bind(dc)", "dc", [python, 
os.path.join(samba4srcdir,
 # DRS python tests
 plantestsuite("samba4.drs_delete_object.python(vampire_dc)", "vampire_dc", 
['PYTHONPATH="$PYTHONPATH:%s"' % os.path.join(samba4srcdir, 
'torture/drs/python'), 'DC1=$DC_SERVER', 'DC2=$VAMPIRE_DC_SERVER', subunitrun, 
'delete_object', '-U$DOMAIN/$DC_USERNAME%$DC_PASSWORD'])
 plantestsuite("samba4.drs_fsmo.python(vampire_dc)", "vampire_dc", 
['PYTHONPATH="$PYTHONPATH:%s"' % os.path.join(samba4srcdir, 
'torture/drs/python'), 'DC1=$DC_SERVER', 'DC2=$VAMPIRE_DC_SERVER', subunitrun, 
'fsmo', '-U$DOMAIN/$DC_USERNAME%$DC_PASSWORD'])
+plantestsuite("samba4.drs_repl_schema.python(vampire_dc)", "vampire_dc", 
['PYTHONPATH="$PYTHONPATH:%s"' % os.path.join(samba4srcdir, 
'torture/drs/python'), 'DC1=$DC_SERVER', 'DC2=$VAMPIRE_DC_SERVER', subunitrun, 
'repl_schema', '-U$DOMAIN/$DC_USERNAME%$DC_PASSWORD'])
 
 # This makes sure we test the rid allocation code
 t = "RPC-SAMR-LARGE-DC"
diff --git a/source4/torture/drs/python/repl_schema.py 
b/source4/torture/drs/python/repl_schema.py
index b407dfb..78759e1 100644
--- a/source4/torture/drs/python/repl_schema.py
+++ b/source4/torture/drs/python/repl_schema.py
@@ -35,6 +35,7 @@ import os
 sys.path.append("bin/python")
 
 from samba.auth import system_session
+from ldb import LdbError, ERR_NO_SUCH_OBJECT
 from ldb import SCOPE_BASE, SCOPE_SUBTREE
 from samba.samdb import SamDB
 
diff --git a/source4/torture/drs/rpc/dssync.c b/source4/torture/drs/rpc/dssync.c
index db1703d..9c65b91 100644
--- a/source4/torture/drs/rpc/dssync.c
+++ b/source4/torture/drs/rpc/dssync.c
@@ -340,15 +340,15 @@ static bool test_analyse_objects(struct torture_context 
*tctx,
                       "drs_util_dsdb_schema_load_ldb() failed");
        ldap_schema = dsdb_get_schema(ldb, NULL);
 
-       status = dsdb_extended_replicated_objects_convert(ldb,
-                                                         partition,
-                                                         mapping_ctr,
-                                                         object_count,
-                                                         first_object,
-                                                         0, NULL,
-                                                         NULL, NULL,
-                                                         gensec_skey,
-                                                         ctx, &objs);
+       status = dsdb_replicated_objects_convert(ldb,
+                                                partition,
+                                                mapping_ctr,
+                                                object_count,
+                                                first_object,
+                                                0, NULL,
+                                                NULL, NULL,
+                                                gensec_skey,
+                                                ctx, &objs);
        torture_assert_werr_ok(tctx, status, 
"dsdb_extended_replicated_objects_convert() failed!");
 
        extended_dn_ctrl = talloc(objs, struct ldb_extended_dn_control);


-- 
Samba Shared Repository

Reply via email to