[SCM] Samba Shared Repository - branch v3-0-test updated -
release-3-0-29-24-gad29a26
Jeremy Allison
jra at samba.org
Tue Jun 3 19:18:03 GMT 2008
The branch, v3-0-test has been updated
via ad29a26c4226aa4d4a6a586413dcb0749bfea6b3 (commit)
from 7ffc312b493d95389266be180d38b8a35584d6d9 (commit)
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v3-0-test
- Log -----------------------------------------------------------------
commit ad29a26c4226aa4d4a6a586413dcb0749bfea6b3
Author: Jeremy Allison <jra at samba.org>
Date: Tue Jun 3 12:17:34 2008 -0700
Fix by Bo Yang <boyang at novell.com> for bug with winbindd trusted domain chil
not keeping primary domain online status up to date.
Jeremy.
-----------------------------------------------------------------------
Summary of changes:
source/nsswitch/winbindd_dual.c | 22 ++++++++++++++++++++--
1 files changed, 20 insertions(+), 2 deletions(-)
Changeset truncated at 500 lines:
diff --git a/source/nsswitch/winbindd_dual.c b/source/nsswitch/winbindd_dual.c
index 7b79734..5ba68d6 100644
--- a/source/nsswitch/winbindd_dual.c
+++ b/source/nsswitch/winbindd_dual.c
@@ -886,6 +886,7 @@ static BOOL fork_domain_child(struct winbindd_child *child)
int fdpair[2];
struct winbindd_cli_state state;
struct winbindd_domain *domain;
+ struct winbindd_domain *primary_domain = NULL;
if (socketpair(AF_UNIX, SOCK_STREAM, 0, fdpair) != 0) {
DEBUG(0, ("Could not open child pipe: %s\n",
@@ -965,10 +966,13 @@ static BOOL fork_domain_child(struct winbindd_child *child)
}
/* Ensure we have no pending check_online events other
- than one for this domain. */
+ than one for this domain or the primary domain. */
for (domain = domain_list(); domain; domain = domain->next) {
- if (domain != child->domain) {
+ if (domain->primary) {
+ primary_domain = domain;
+ }
+ if ((domain != child->domain) && !domain->primary) {
TALLOC_FREE(domain->check_online_event);
}
}
@@ -985,6 +989,20 @@ static BOOL fork_domain_child(struct winbindd_child *child)
set_domain_online_request(child->domain);
+ if (primary_domain != child->domain) {
+ /* We need to talk to the primary
+ * domain as well as the trusted
+ * domain inside a trusted domain
+ * child.
+ * See the code in :
+ * winbindd_dual_pam_auth_samlogon()
+ * especially the calling of
+ * contact_domain = find_our_domain()
+ * in the non-DC case for details.
+ */
+ set_domain_online_request(primary_domain);
+ }
+
child->lockout_policy_event = event_add_timed(
winbind_event_context(), NULL, timeval_zero(),
"account_lockout_policy_handler",
--
Samba Shared Repository
More information about the samba-cvs
mailing list