diff options
author | boyang <boyang@suse.de> | 2009-01-07 11:01:48 -0800 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2009-01-08 16:26:21 +0100 |
commit | 2ddff1644b80aec9acd6918c43612443d5f269ad (patch) | |
tree | 0431821e06f7676307ba267de415a41df6b77cb5 | |
parent | 3634ed69910c86447bde44a163f6ec1e4001b509 (diff) | |
download | samba-2ddff1644b80aec9acd6918c43612443d5f269ad.tar.gz samba-2ddff1644b80aec9acd6918c43612443d5f269ad.tar.xz samba-2ddff1644b80aec9acd6918c43612443d5f269ad.zip |
refresh sequence number as soon as possible when domain->sequence_number == -1 or domain->last_status is not ok.
(cherry picked from commit 0e058da2ee3f70e66cdf5d27f7deb479fb4ccae0)
-rw-r--r-- | source/winbindd/winbindd_cache.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/source/winbindd/winbindd_cache.c b/source/winbindd/winbindd_cache.c index 1ae7966bc38..863852e8374 100644 --- a/source/winbindd/winbindd_cache.c +++ b/source/winbindd/winbindd_cache.c @@ -486,7 +486,9 @@ static void refresh_sequence_number(struct winbindd_domain *domain, bool force) time_diff = t - domain->last_seq_check; /* see if we have to refetch the domain sequence number */ - if (!force && (time_diff < cache_time)) { + if (!force && (time_diff < cache_time) && + (domain->sequence_number != DOM_SEQUENCE_NONE) && + NT_STATUS_IS_OK(domain->last_status)) { DEBUG(10, ("refresh_sequence_number: %s time ok\n", domain->name)); goto done; } @@ -495,8 +497,11 @@ static void refresh_sequence_number(struct winbindd_domain *domain, bool force) /* this will update the timestamp as well */ status = fetch_cache_seqnum( domain, t ); - if ( NT_STATUS_IS_OK(status) ) - goto done; + if (NT_STATUS_IS_OK(status) && + (domain->sequence_number != DOM_SEQUENCE_NONE) && + NT_STATUS_IS_OK(domain->last_status)) { + goto done; + } /* important! make sure that we know if this is a native mode domain or not. And that we can contact it. */ |