respondd: remove code dupplication

This commit is contained in:
lemoer 2016-09-10 05:44:58 +02:00
parent 242cf82f4b
commit 6dd0320b44
1 changed files with 9 additions and 8 deletions

View File

@ -506,15 +506,16 @@ static void accept_request(struct request_schedule *schedule, int sock,
new_task->request[input_bytes] = 0; new_task->request[input_bytes] = 0;
new_task->client_addr = addr; new_task->client_addr = addr;
if (!IN6_IS_ADDR_MULTICAST(&destaddr)) { bool is_scheduled;
// unicast packets are sent directly (delay is ignored) if(IN6_IS_ADDR_MULTICAST(&destaddr))
serve_request(new_task, sock); // scheduling could fail because the schedule is full
free(new_task); is_scheduled = schedule_push_request(schedule, new_task);
return; else
} // unicast packets are always sent directly
is_scheduled = false;
if (!schedule_push_request(schedule, new_task)) { if (!is_scheduled) {
// we can't schedule, so send the response immediately // reply immediately
serve_request(new_task, sock); serve_request(new_task, sock);
free(new_task); free(new_task);
} }