Home | Info | Community | Development | myReactOS | Contact Us
Definition at line 246 of file dispatch.c.
Referenced by bind_lease(), dhcpoffer(), send_discover(), and send_request().
{ struct timeout *t, *q; DH_DbgPrint(MID_TRACE,("Adding timeout %x %p %x\n", when, where, what)); /* See if this timeout supersedes an existing timeout. */ t = NULL; for (q = timeouts; q; q = q->next) { if (q->func == where && q->what == what) { if (t) t->next = q->next; else timeouts = q->next; break; } t = q; } /* If we didn't supersede a timeout, allocate a timeout structure now. */ if (!q) { if (free_timeouts) { q = free_timeouts; free_timeouts = q->next; q->func = where; q->what = what; } else { q = malloc(sizeof(struct timeout)); if (!q) { error("Can't allocate timeout structure!"); return; } q->func = where; q->what = what; } } q->when = when; /* Now sort this timeout into the timeout list. */ /* Beginning of list? */ if (!timeouts || timeouts->when > q->when) { q->next = timeouts; timeouts = q; return; } /* Middle of list? */ for (t = timeouts; t->next; t = t->next) { if (t->next->when > q->when) { q->next = t->next; t->next = q; return; } } /* End of list. */ t->next = q; q->next = NULL; }