diff options
author | Günther Deschner <gd@samba.org> | 2011-06-28 23:59:11 +0200 |
---|---|---|
committer | Günther Deschner <gd@samba.org> | 2011-06-30 00:42:23 +0200 |
commit | 44a434a3019de2f9e807ba819b9cb6b47b4815df (patch) | |
tree | 00522c52fda227767d81d758e230ad91835baf79 /source3 | |
parent | 55860955126af0a67f5c41f95cd849c92136eb06 (diff) | |
download | samba-44a434a3019de2f9e807ba819b9cb6b47b4815df.tar.gz samba-44a434a3019de2f9e807ba819b9cb6b47b4815df.tar.bz2 samba-44a434a3019de2f9e807ba819b9cb6b47b4815df.zip |
s3-winbind: Fix bug 7888 -- deal with buggy 3.0 based PDCs
Guenther
Autobuild-User: Günther Deschner <gd@samba.org>
Autobuild-Date: Thu Jun 30 00:42:23 CEST 2011 on sn-devel-104
Diffstat (limited to 'source3')
-rw-r--r-- | source3/winbindd/winbindd_pam.c | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/source3/winbindd/winbindd_pam.c b/source3/winbindd/winbindd_pam.c index 910e42971a..21b237a1f1 100644 --- a/source3/winbindd/winbindd_pam.c +++ b/source3/winbindd/winbindd_pam.c @@ -1250,18 +1250,30 @@ static NTSTATUS winbind_samlogon_retry_loop(struct winbindd_domain *domain, info3); } - if (NT_STATUS_EQUAL(result, NT_STATUS_RPC_PROCNUM_OUT_OF_RANGE) - && domain->can_do_samlogon_ex) { - DEBUG(3, ("Got a DC that can not do NetSamLogonEx, " - "retrying with NetSamLogon\n")); - domain->can_do_samlogon_ex = false; + if (NT_STATUS_EQUAL(result, NT_STATUS_RPC_PROCNUM_OUT_OF_RANGE)) { + /* * It's likely that the server also does not support * validation level 6 */ domain->can_do_validation6 = false; - retry = true; - continue; + + if (domain->can_do_samlogon_ex) { + DEBUG(3, ("Got a DC that can not do NetSamLogonEx, " + "retrying with NetSamLogon\n")); + domain->can_do_samlogon_ex = false; + retry = true; + continue; + } + + + /* Got DCERPC_FAULT_OP_RNG_ERROR for SamLogon + * (no Ex). This happens against old Samba + * DCs. Drop the connection. + */ + invalidate_cm_connection(&domain->conn); + result = NT_STATUS_LOGON_FAILURE; + break; } if (domain->can_do_validation6 && |