summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--source3/winbindd/wb_seqnums.c39
1 files changed, 24 insertions, 15 deletions
diff --git a/source3/winbindd/wb_seqnums.c b/source3/winbindd/wb_seqnums.c
index e6efb9b99a..604ba00505 100644
--- a/source3/winbindd/wb_seqnums.c
+++ b/source3/winbindd/wb_seqnums.c
@@ -98,24 +98,33 @@ static void wb_seqnums_done(struct tevent_req *subreq)
for (i=0; i<state->num_domains; i++) {
if (subreq == state->subreqs[i]) {
- state->subreqs[i] = NULL;
- state->stati[i] = status;
- if (NT_STATUS_IS_OK(status)) {
- state->seqnums[i] = seqnum;
-
- /*
- * This first assignment might be removed
- * later
- */
- state->domains[i]->sequence_number = seqnum;
-
- wcache_store_seqnum(state->domains[i]->name,
- state->seqnums[i],
- time(NULL));
- }
break;
}
}
+ if (i < state->num_domains) {
+ /* found one */
+
+ state->subreqs[i] = NULL;
+ state->stati[i] = status;
+ if (NT_STATUS_IS_OK(status)) {
+ state->seqnums[i] = seqnum;
+
+ /*
+ * This first assignment might be removed
+ * later
+ */
+ state->domains[i]->sequence_number = seqnum;
+
+ if (!wcache_store_seqnum(state->domains[i]->name,
+ state->seqnums[i],
+ time(NULL))) {
+ DEBUG(1, ("wcache_store_seqnum failed for "
+ "domain %s\n",
+ state->domains[i]->name));
+ }
+ }
+ }
+
TALLOC_FREE(subreq);
state->num_received += 1;