if ((request->num_proxied_requests == request->num_proxied_responses) ||
#ifdef WITH_TCP
(request->home_server->proto == IPPROTO_TCP) ||
+ !request->proxy_listener ||
#endif
timercmp(&now, &request->when, >)) {
if (request->packet) {
rad_assert(request->magic == REQUEST_MAGIC);
- if ((request->child_state == REQUEST_QUEUED) |
+ if ((request->child_state == REQUEST_QUEUED) ||
(request->child_state == REQUEST_RUNNING)) {
request->delay += (request->delay >> 1);
tv_add(&request->when, request->delay);
remove_from_request_hash(request);
switch (request->child_state) {
-#ifdef HAVE_PTHREAD_H
/*
- * It's queued or running. Tell it to stop, and
- * wait for it to do so.
+ * Tell it to stop, and wait for it to do so.
*/
- case REQUEST_QUEUED:
- case REQUEST_RUNNING:
+ default:
request->master_state = REQUEST_STOP_PROCESSING;
request->delay += request->delay >> 1;
INSERT_EVENT(wait_for_child_to_die, request);
return;
-#endif
/*
* Catch race conditions. It may have switched
case REQUEST_CLEANUP_DELAY:
case REQUEST_DONE:
break;
-
- /*
- * It's in some other state, and therefore also
- * in the event queue. At some point, the
- * child will notice, and we can then delete it.
- */
- case REQUEST_PROXIED:
- default:
- break;
}
}