@@ -209,7 +209,7 @@ pub(crate) fn update_rib_partial<V>(
209
209
// Check for intra-area changes.
210
210
if !partial. intra . is_empty ( ) {
211
211
// Remove affected intra-area routes from the RIB.
212
- old_rib. extend ( rib. drain_filter ( |prefix, route| {
212
+ old_rib. extend ( rib. extract_if ( |prefix, route| {
213
213
partial. intra . contains ( prefix)
214
214
&& route. path_type == PathType :: IntraArea
215
215
} ) ) ;
@@ -235,7 +235,7 @@ pub(crate) fn update_rib_partial<V>(
235
235
// Check for inter-area changes.
236
236
if !partial. inter_network . is_empty ( ) {
237
237
// Remove affected inter-area routes from the RIB.
238
- old_rib. extend ( rib. drain_filter ( |prefix, route| {
238
+ old_rib. extend ( rib. extract_if ( |prefix, route| {
239
239
partial. inter_network . contains ( prefix)
240
240
&& route. path_type == PathType :: InterArea
241
241
} ) ) ;
@@ -273,7 +273,7 @@ pub(crate) fn update_rib_partial<V>(
273
273
}
274
274
275
275
// Remove affected inter-area routes from the routers RIB.
276
- area. state . routers . drain_filter ( |router_id, route| {
276
+ let _ = area. state . routers . extract_if ( |router_id, route| {
277
277
partial. inter_router . contains ( router_id)
278
278
&& route. path_type == PathType :: InterArea
279
279
} ) ;
@@ -294,7 +294,7 @@ pub(crate) fn update_rib_partial<V>(
294
294
let reevaluate_all = !partial. inter_router . is_empty ( ) ;
295
295
296
296
// Remove affected external routes from the RIB.
297
- old_rib. extend ( rib. drain_filter ( |prefix, route| {
297
+ old_rib. extend ( rib. extract_if ( |prefix, route| {
298
298
( reevaluate_all || partial. external . contains ( prefix) )
299
299
&& matches ! (
300
300
route. path_type,
0 commit comments