summaryrefslogtreecommitdiff
path: root/source3/nsswitch/winbindd_dual.c
diff options
context:
space:
mode:
Diffstat (limited to 'source3/nsswitch/winbindd_dual.c')
-rw-r--r--source3/nsswitch/winbindd_dual.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/source3/nsswitch/winbindd_dual.c b/source3/nsswitch/winbindd_dual.c
index 62193c0b69..22786df601 100644
--- a/source3/nsswitch/winbindd_dual.c
+++ b/source3/nsswitch/winbindd_dual.c
@@ -842,15 +842,6 @@ static BOOL fork_domain_child(struct winbindd_child *child)
/* The child is ok with online/offline messages now. */
message_unblock();
- if (child->domain != NULL && lp_winbind_offline_logon()) {
- /* We might be in the idmap child...*/
- child->lockout_policy_event = event_add_timed(
- winbind_event_context(), NULL, timeval_zero(),
- "account_lockout_policy_handler",
- account_lockout_policy_handler,
- child);
- }
-
/* Handle online/offline messages. */
message_register(MSG_WINBIND_OFFLINE,child_msg_offline);
message_register(MSG_WINBIND_ONLINE,child_msg_online);
@@ -878,6 +869,18 @@ static BOOL fork_domain_child(struct winbindd_child *child)
cancel_named_event(winbind_event_context(),
"krb5_ticket_refresh_handler");
+ /* We might be in the idmap child...*/
+ if (child->domain && lp_winbind_offline_logon()) {
+
+ set_domain_online_request(child->domain);
+
+ child->lockout_policy_event = event_add_timed(
+ winbind_event_context(), NULL, timeval_zero(),
+ "account_lockout_policy_handler",
+ account_lockout_policy_handler,
+ child);
+ }
+
while (1) {
int ret;