mirror of
https://gitlab.nic.cz/labs/bird.git
synced 2025-01-03 15:41:54 +00:00
Proto: fix reimporter crash on shutdown
Channel transition to CS_STOP forgot to postpone the reimporter event, thus reimport could theoretically run too late and cause trouble.
This commit is contained in:
parent
d78448dd7c
commit
dbe246a4bd
@ -401,6 +401,8 @@ static void
|
|||||||
channel_roa_reload_done(struct rt_feeding_request *req)
|
channel_roa_reload_done(struct rt_feeding_request *req)
|
||||||
{
|
{
|
||||||
SKIP_BACK_DECLARE(struct roa_subscription, s, rfr, req);
|
SKIP_BACK_DECLARE(struct roa_subscription, s, rfr, req);
|
||||||
|
ASSERT_DIE(s->c->channel_state == CS_UP);
|
||||||
|
|
||||||
lfjour_release(&s->digest_recipient);
|
lfjour_release(&s->digest_recipient);
|
||||||
ev_send(proto_work_list(s->c->proto), &s->update_event);
|
ev_send(proto_work_list(s->c->proto), &s->update_event);
|
||||||
/* FIXME: this should reset import/export filters if ACTION BLOCK */
|
/* FIXME: this should reset import/export filters if ACTION BLOCK */
|
||||||
@ -786,6 +788,7 @@ channel_do_stop(struct channel *c)
|
|||||||
|
|
||||||
/* Need to abort reimports as well */
|
/* Need to abort reimports as well */
|
||||||
rt_feeder_unsubscribe(&c->reimporter);
|
rt_feeder_unsubscribe(&c->reimporter);
|
||||||
|
ev_postpone(&c->reimport_event);
|
||||||
|
|
||||||
c->gr_wait = 0;
|
c->gr_wait = 0;
|
||||||
if (c->gr_lock)
|
if (c->gr_lock)
|
||||||
|
Loading…
Reference in New Issue
Block a user