Author: jra Date: 2006-09-13 13:55:19 +0000 (Wed, 13 Sep 2006) New Revision: 18473
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=18473 Log: Once we go online, trigger a "get krb5 ticket event" immediately if we were waiting on one. Jeremy. Modified: branches/SAMBA_3_0/source/lib/events.c branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c Changeset: Modified: branches/SAMBA_3_0/source/lib/events.c =================================================================== --- branches/SAMBA_3_0/source/lib/events.c 2006-09-13 13:50:51 UTC (rev 18472) +++ branches/SAMBA_3_0/source/lib/events.c 2006-09-13 13:55:19 UTC (rev 18473) @@ -58,7 +58,8 @@ te->handler = handler; te->private_data = private_data; - /* keep the list ordered */ + /* keep the list ordered - this is NOT guarenteed as event times + may be changed after insertion */ last_te = NULL; for (cur_te = timed_events; cur_te; cur_te = cur_te->next) { /* if the new event comes before the current one break */ @@ -115,3 +116,17 @@ return to_ret; } + +int set_event_dispatch_time(const char *event_name, struct timeval when) +{ + int num_events = 0; + struct timed_event *te; + + for (te = timed_events; te; te = te->next) { + if (strcmp(event_name, te->event_name) == 0) { + te->when = when; + num_events++; + } + } + return num_events; +} Modified: branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c =================================================================== --- branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c 2006-09-13 13:50:51 UTC (rev 18472) +++ branches/SAMBA_3_0/source/nsswitch/winbindd_cm.c 2006-09-13 13:55:19 UTC (rev 18473) @@ -146,6 +146,8 @@ void set_domain_online(struct winbindd_domain *domain) { + struct timeval now; + DEBUG(10,("set_domain_online: called for domain %s\n", domain->name )); @@ -155,6 +157,10 @@ return; } + /* If we are waiting to get a krb5 ticket, trigger immediately. */ + GetTimeOfDay(&now); + set_event_dispatch_time("krb5_ticket_gain_handler", now); + domain->online = True; }