if (nr->num_workers == 1) {
worker = nr->workers[0];
if (worker->blocked) {
- RATE_LIMIT_GLOBAL(ERROR, "Failed sending packet to worker - "
- "In single-threaded mode and worker is blocked");
+ RATE_LIMIT_GLOBAL(ERROR, "Failed sending packet to worker - "
+ "In single-threaded mode and worker is blocked");
+ drop:
+ worker->stats.dropped++;
+ fr_message_done(&cd->m);
return -1;
}
if (!found) {
RATE_LIMIT_GLOBAL(ERROR, "Failed sending packet to worker - Couldn't find active worker, "
"%u/%u workers are blocked", nr->num_blocked, nr->num_workers);
- return -1;
+ goto drop;
}
worker = found;
if (nr->num_blocked == nr->num_workers) {
fr_network_suspend(nr);
+ fr_message_done(&cd->m);
return -1;
}
goto retry;