git.samba.org
/
metze
/
samba
/
wip.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
f279b57
)
s4-kcc: remove stale repsFrom entries in kcc run
author
Andrew Tridgell
<tridge@samba.org>
Mon, 28 Sep 2009 03:10:13 +0000
(13:10 +1000)
committer
Andrew Tridgell
<tridge@samba.org>
Mon, 28 Sep 2009 03:11:25 +0000
(13:11 +1000)
source4/dsdb/kcc/kcc_periodic.c
patch
|
blob
|
history
diff --git
a/source4/dsdb/kcc/kcc_periodic.c
b/source4/dsdb/kcc/kcc_periodic.c
index dae0c1e2358c4b4eb9fe790aa90f2c08fe212891..dfbbf2404b93dd54712b3266ddf4b3d3f795417d 100644
(file)
--- a/
source4/dsdb/kcc/kcc_periodic.c
+++ b/
source4/dsdb/kcc/kcc_periodic.c
@@
-75,6
+75,7
@@
static NTSTATUS kccsrv_add_repsFrom(struct kccsrv_service *s, TALLOC_CTX *mem_ct
return NT_STATUS_INTERNAL_DB_CORRUPTION;
}
return NT_STATUS_INTERNAL_DB_CORRUPTION;
}
+ /* add any new ones */
for (i=0; i<count; i++) {
if (!reps_in_list(&reps[i], old_reps, old_count)) {
old_reps = talloc_realloc(mem_ctx, old_reps, struct repsFromToBlob, old_count+1);
for (i=0; i<count; i++) {
if (!reps_in_list(&reps[i], old_reps, old_count)) {
old_reps = talloc_realloc(mem_ctx, old_reps, struct repsFromToBlob, old_count+1);
@@
-84,6
+85,16
@@
static NTSTATUS kccsrv_add_repsFrom(struct kccsrv_service *s, TALLOC_CTX *mem_ct
modified = true;
}
}
modified = true;
}
}
+
+ /* remove any stale ones */
+ for (i=0; i<old_count; i++) {
+ if (!reps_in_list(&old_reps[i], reps, count)) {
+ memmove(&old_reps[i], &old_reps[i+1], (old_count-(i+1))*sizeof(old_reps[0]));
+ old_count--;
+ i--;
+ modified = true;
+ }
+ }
if (modified) {
werr = dsdb_savereps(s->samdb, mem_ctx, p->dn, "repsFrom", old_reps, old_count);
if (modified) {
werr = dsdb_savereps(s->samdb, mem_ctx, p->dn, "repsFrom", old_reps, old_count);