diff options
author | Stefan Metzmacher <metze@samba.org> | 2008-07-15 16:59:09 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2008-07-16 12:16:58 +0200 |
commit | c6ea7f02217fc28dc30882d3f9d543b805de2d74 (patch) | |
tree | c170e148fe7c2c7cdf84018b3dabbc652cee85b0 /source4/libnet | |
parent | 033683b00ed99e891bb6bc5852dc2d6f146b1874 (diff) | |
download | samba-c6ea7f02217fc28dc30882d3f9d543b805de2d74.tar.gz |
drsuapi: total_object_count was the wrong guess
The total_object_count member of DsGetNCChangesCtr[1|6] was wrong
it's the error code of an extended operation.
DsGetNCChangesCtr6 has a nc_object_count value which contains
the estimated amount of objects in the naming_context.
W2k seems to have a bug and sends this number of objects
in the extended_ret field. Maybe it's just a bug and
not a feature:-)
metze
(This used to be commit 67931092128ce89aadf689a54e20d6e4a9d7fe2c)
Diffstat (limited to 'source4/libnet')
-rw-r--r-- | source4/libnet/libnet_vampire.c | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/source4/libnet/libnet_vampire.c b/source4/libnet/libnet_vampire.c index 56a8ebe034c..c9975c8a295 100644 --- a/source4/libnet/libnet_vampire.c +++ b/source4/libnet/libnet_vampire.c @@ -136,7 +136,6 @@ static NTSTATUS vampire_apply_schema(struct vampire_state *s, { WERROR status; const struct drsuapi_DsReplicaOIDMapping_Ctr *mapping_ctr; - uint32_t total_object_count; uint32_t object_count; struct drsuapi_DsReplicaObjectListItemEx *first_object; struct drsuapi_DsReplicaObjectListItemEx *cur; @@ -164,7 +163,6 @@ static NTSTATUS vampire_apply_schema(struct vampire_state *s, switch (c->ctr_level) { case 1: mapping_ctr = &c->ctr1->mapping_ctr; - total_object_count = c->ctr1->total_object_count; object_count = s->schema_part.object_count; first_object = s->schema_part.first_object; linked_attributes_count = 0; @@ -176,7 +174,6 @@ static NTSTATUS vampire_apply_schema(struct vampire_state *s, break; case 6: mapping_ctr = &c->ctr6->mapping_ctr; - total_object_count = c->ctr6->total_object_count; object_count = s->schema_part.object_count; first_object = s->schema_part.first_object; linked_attributes_count = 0; /* TODO: ! */ @@ -370,7 +367,7 @@ static NTSTATUS vampire_schema_chunk(void *private_data, struct vampire_state *s = talloc_get_type(private_data, struct vampire_state); WERROR status; const struct drsuapi_DsReplicaOIDMapping_Ctr *mapping_ctr; - uint32_t total_object_count; + uint32_t nc_object_count; uint32_t object_count; struct drsuapi_DsReplicaObjectListItemEx *first_object; struct drsuapi_DsReplicaObjectListItemEx *cur; @@ -378,13 +375,13 @@ static NTSTATUS vampire_schema_chunk(void *private_data, switch (c->ctr_level) { case 1: mapping_ctr = &c->ctr1->mapping_ctr; - total_object_count = c->ctr1->total_object_count; + nc_object_count = c->ctr1->extended_ret; /* maybe w2k send this unexpected? */ object_count = c->ctr1->object_count; first_object = c->ctr1->first_object; break; case 6: mapping_ctr = &c->ctr6->mapping_ctr; - total_object_count = c->ctr6->total_object_count; + nc_object_count = c->ctr6->nc_object_count; object_count = c->ctr6->object_count; first_object = c->ctr6->first_object; break; @@ -392,9 +389,9 @@ static NTSTATUS vampire_schema_chunk(void *private_data, return NT_STATUS_INVALID_PARAMETER; } - if (total_object_count) { + if (nc_object_count) { DEBUG(0,("Schema-DN[%s] objects[%u/%u]\n", - c->partition->nc.dn, object_count, total_object_count)); + c->partition->nc.dn, object_count, nc_object_count)); } else { DEBUG(0,("Schema-DN[%s] objects[%u]\n", c->partition->nc.dn, object_count)); @@ -442,7 +439,7 @@ static NTSTATUS vampire_store_chunk(void *private_data, struct vampire_state *s = talloc_get_type(private_data, struct vampire_state); WERROR status; const struct drsuapi_DsReplicaOIDMapping_Ctr *mapping_ctr; - uint32_t total_object_count; + uint32_t nc_object_count; uint32_t object_count; struct drsuapi_DsReplicaObjectListItemEx *first_object; uint32_t linked_attributes_count; @@ -461,7 +458,7 @@ static NTSTATUS vampire_store_chunk(void *private_data, switch (c->ctr_level) { case 1: mapping_ctr = &c->ctr1->mapping_ctr; - total_object_count = c->ctr1->total_object_count; + nc_object_count = c->ctr1->extended_ret; /* maybe w2k send this unexpected? */ object_count = c->ctr1->object_count; first_object = c->ctr1->first_object; linked_attributes_count = 0; @@ -473,7 +470,7 @@ static NTSTATUS vampire_store_chunk(void *private_data, break; case 6: mapping_ctr = &c->ctr6->mapping_ctr; - total_object_count = c->ctr6->total_object_count; + nc_object_count = c->ctr6->nc_object_count; object_count = c->ctr6->object_count; first_object = c->ctr6->first_object; linked_attributes_count = c->ctr6->linked_attributes_count; @@ -498,9 +495,9 @@ static NTSTATUS vampire_store_chunk(void *private_data, NT_STATUS_HAVE_NO_MEMORY(tmp_dns_name); s_dsa->other_info->dns_name = tmp_dns_name; - if (total_object_count) { + if (nc_object_count) { DEBUG(0,("Partition[%s] objects[%u/%u]\n", - c->partition->nc.dn, object_count, total_object_count)); + c->partition->nc.dn, object_count, nc_object_count)); } else { DEBUG(0,("Partition[%s] objects[%u]\n", c->partition->nc.dn, object_count)); |