From: Maria Matejka Date: Wed, 20 Dec 2023 14:36:50 +0000 (+0100) Subject: Kernel: Before first scan, reject exported routes immediately in preexport X-Git-Tag: v3.0.0~321 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6c4be8d1d3181d5736dd49f8145d607cda1b158e;p=thirdparty%2Fbird.git Kernel: Before first scan, reject exported routes immediately in preexport --- diff --git a/sysdep/unix/krt.c b/sysdep/unix/krt.c index 0897198cd..54355e319 100644 --- a/sysdep/unix/krt.c +++ b/sysdep/unix/krt.c @@ -726,6 +726,10 @@ krt_preexport(struct channel *C, rte *e) if (!krt_capable(e)) return -1; + /* Before first scan we don't touch the routes */ + if (!SKIP_BACK(struct krt_proto, p, C->proto)->ready) + return -1; + return 0; } @@ -747,8 +751,7 @@ krt_rt_notify(struct proto *P, struct channel *ch UNUSED, const net_addr *net, return; #endif - if (p->initialized) /* Before first scan we don't touch the routes */ - krt_replace_rte(p, net, new, old); + krt_replace_rte(p, net, new, old); } static void @@ -813,6 +816,7 @@ krt_feed_end(struct channel *C) } p->ready = 1; + bmap_reset(&C->export_reject_map, 16); krt_scan_timer_kick(p); }