diff options
author | Ralph Boehme <slow@samba.org> | 2018-03-12 13:39:59 +0100 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2018-05-07 09:57:25 +0200 |
commit | 30dd8bc6a345b700447dc2bcb538a1e6a87e6993 (patch) | |
tree | db518cd5d72197a013554c685976a2f8ad664740 /source3 | |
parent | 5fde0c6ae45fbc4ec33cd3719d924973f02b2768 (diff) | |
download | samba-30dd8bc6a345b700447dc2bcb538a1e6a87e6993.tar.gz |
winbindd: force netlogon reauth for certain errors in reset_cm_connection_on_error()
NT_STATUS_RPC_SEC_PKG_ERROR is returned by the server if the server
doesn't know the server-side netlogon credentials anymore, eg after a
reboot. If this happens we must force a full netlogon reauth.
Bug: https://bugzilla.samba.org/show_bug.cgi?id=13332
Signed-off-by: Volker Lendecke <vl@samba.org>
Signed-off-by: Ralph Boehme <slow@samba.org>
Reviewed-by: Stefan Metzmacher <metze@samba.org>
(cherry picked from commit 2d1f00cc3ad77bed4e810dc910979e6cdf582216)
Diffstat (limited to 'source3')
-rw-r--r-- | source3/winbindd/winbindd_dual_srv.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/source3/winbindd/winbindd_dual_srv.c b/source3/winbindd/winbindd_dual_srv.c index e67f72ffdd7..b91d15ceb40 100644 --- a/source3/winbindd/winbindd_dual_srv.c +++ b/source3/winbindd/winbindd_dual_srv.c @@ -42,6 +42,14 @@ void _wbint_Ping(struct pipes_struct *p, struct wbint_Ping *r) bool reset_cm_connection_on_error(struct winbindd_domain *domain, NTSTATUS status) { + if (NT_STATUS_EQUAL(status, NT_STATUS_ACCESS_DENIED) || + NT_STATUS_EQUAL(status, NT_STATUS_RPC_SEC_PKG_ERROR) || + NT_STATUS_EQUAL(status, NT_STATUS_NETWORK_ACCESS_DENIED)) { + invalidate_cm_connection(domain); + domain->conn.netlogon_force_reauth = true; + return true; + } + if (NT_STATUS_EQUAL(status, NT_STATUS_IO_TIMEOUT) || NT_STATUS_EQUAL(status, NT_STATUS_IO_DEVICE_ERROR)) { |