0
0
mirror of https://gitlab.nic.cz/labs/bird.git synced 2024-12-22 17:51:53 +00:00

Refeed done hooks are called in the same order as the requests came in

This commit is contained in:
Maria Matejka 2024-06-20 12:09:38 +02:00
parent 0b6e752bd9
commit f9b46a1ba1

View File

@ -312,10 +312,20 @@ rt_export_next_feed(struct rt_export_feeder *f)
return feed; return feed;
/* Feeding done */ /* Feeding done */
struct rt_feeding_request *reverse = NULL;
while (f->feeding) while (f->feeding)
{ {
struct rt_feeding_request *rfr = f->feeding; struct rt_feeding_request *rfr = f->feeding;
f->feeding = rfr->next; f->feeding = rfr->next;
rfr->next = reverse;
reverse = rfr;
}
/* Call the done hook in the same order as requests came in */
while (reverse)
{
struct rt_feeding_request *rfr = reverse;
reverse = rfr->next;
CALL(rfr->done, rfr); CALL(rfr->done, rfr);
} }