From: Ondrej Zajicek (work) Date: Mon, 8 Mar 2021 19:45:22 +0000 (+0100) Subject: Nest: No automatic ROA reload on non-reloadable channels X-Git-Tag: v2.0.8~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=211fe69c984c657095930d2831f46896197ec65b;p=thirdparty%2Fbird.git Nest: No automatic ROA reload on non-reloadable channels --- diff --git a/nest/proto.c b/nest/proto.c index 6c935426a..165125d8c 100644 --- a/nest/proto.c +++ b/nest/proto.c @@ -62,6 +62,9 @@ static inline int proto_is_done(struct proto *p) static inline int channel_is_active(struct channel *c) { return (c->channel_state == CS_START) || (c->channel_state == CS_UP); } +static inline int channel_reloadable(struct channel *c) +{ return c->proto->reload_routes && c->reloadable; } + static inline void channel_log_state_change(struct channel *c) { @@ -389,6 +392,10 @@ channel_roa_subscribe_filter(struct channel *c, int dir) if ((f == FILTER_ACCEPT) || (f == FILTER_REJECT)) return; + /* No automatic reload for non-reloadable channels */ + if (dir && !channel_reloadable(c)) + valid = 0; + /* No automatic reload for BGP channels without in_table / out_table */ if (c->channel == &channel_bgp) valid = dir ? !!c->in_table : !!c->out_table; @@ -717,12 +724,6 @@ channel_request_feeding(struct channel *c) channel_log_state_change(c); } -static inline int -channel_reloadable(struct channel *c) -{ - return c->proto->reload_routes && c->reloadable; -} - static void channel_request_reload(struct channel *c) {