From: Maria Matejka Date: Thu, 20 Jun 2024 10:09:38 +0000 (+0200) Subject: Refeed done hooks are called in the same order as the requests came in X-Git-Tag: v3.0.0~122 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f9b46a1ba1f68aa2a04266cf3af230664cce4f9e;p=thirdparty%2Fbird.git Refeed done hooks are called in the same order as the requests came in --- diff --git a/nest/rt-export.c b/nest/rt-export.c index b991b9750..cc5cd353b 100644 --- a/nest/rt-export.c +++ b/nest/rt-export.c @@ -312,10 +312,20 @@ rt_export_next_feed(struct rt_export_feeder *f) return feed; /* Feeding done */ + struct rt_feeding_request *reverse = NULL; while (f->feeding) { struct rt_feeding_request *rfr = f->feeding; 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); }