1
0
mirror of https://github.com/samba-team/samba.git synced 2025-03-09 08:58:35 +03:00

s4-kcc: the kcc should not be setting the repsTo attribute

repsTo is set by other DCs, when they ask to be notified about changes
in a partition
This commit is contained in:
Andrew Tridgell 2010-09-22 22:50:05 -07:00
parent 7a05e04dfc
commit d2008fbbb9

View File

@ -165,8 +165,8 @@ static NTSTATUS kccsrv_add_repsFrom(struct kccsrv_service *s, TALLOC_CTX *mem_ct
/* update the repsFrom on all partitions */
for (p=s->partitions; p; p=p->next) {
struct repsFromToBlob *old_reps, *reps_to;
uint32_t old_count, to_count;
struct repsFromToBlob *old_reps;
uint32_t old_count;
WERROR werr;
uint32_t i;
bool modified = false;
@ -213,36 +213,6 @@ static NTSTATUS kccsrv_add_repsFrom(struct kccsrv_service *s, TALLOC_CTX *mem_ct
/* dreplsrv should refresh its state */
notify_dreplsrv = true;
}
werr = dsdb_loadreps(s->samdb, mem_ctx, p->dn, "repsTo", &reps_to, &to_count);
if (!W_ERROR_IS_OK(werr)) {
DEBUG(0,(__location__ ": Failed to load repsTo from %s - %s\n",
ldb_dn_get_linearized(p->dn), ldb_errstring(s->samdb)));
return NT_STATUS_INTERNAL_DB_CORRUPTION;
}
modified = false;
/* add any new ones */
for (i=0; i<old_count; i++) {
if (!reps_in_list(&old_reps[i], reps_to, to_count)) {
reps_to = talloc_realloc(mem_ctx, reps_to, struct repsFromToBlob, to_count+1);
NT_STATUS_HAVE_NO_MEMORY(reps_to);
reps_to[to_count] = old_reps[i];
to_count++;
modified = true;
}
}
if (modified) {
werr = dsdb_savereps(s->samdb, mem_ctx, p->dn, "repsTo", reps_to, to_count);
if (!W_ERROR_IS_OK(werr)) {
DEBUG(0,(__location__ ": Failed to save repsTo to %s - %s\n",
ldb_dn_get_linearized(p->dn), ldb_errstring(s->samdb)));
return NT_STATUS_INTERNAL_DB_CORRUPTION;
}
/* dreplsrv should refresh its state */
notify_dreplsrv = true;
}
}
/* notify dreplsrv toplogy has changed */