diff options
author | Maria Matejka <mq@ucw.cz> | 2023-01-31 13:11:55 +0100 |
---|---|---|
committer | Maria Matejka <mq@ucw.cz> | 2023-02-02 14:40:00 +0100 |
commit | e077d0e770f00c98f26ee6b3cdb7905bf9bea4c1 (patch) | |
tree | 0d8c8254d591588c0b255a422bacafebe78f8d1a /nest/proto.c | |
parent | 05d8c3699d51866c68747167556e7c1f06390afe (diff) |
Moved interface list flush to device protocol cleanup hook.
The interface list must be flushed when device protocol is stopped. This
was done in a hardcoded specific hook inside generic protocol routines.
The cleanup hook was originally used for table reference counting late
cleanup, yet it can be also simply used for prettier interface list flush.
Diffstat (limited to 'nest/proto.c')
-rw-r--r-- | nest/proto.c | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/nest/proto.c b/nest/proto.c index 26d648f3..0ca72ead 100644 --- a/nest/proto.c +++ b/nest/proto.c @@ -968,11 +968,8 @@ proto_event(void *ptr) if (p->do_stop) { - if (p->proto == &proto_unix_iface) - if_flush_ifaces(p); p->do_stop = 0; } - if (proto_is_done(p)) { if (p->proto->cleanup) @@ -1863,8 +1860,6 @@ proto_do_stop(struct proto *p) p->down_sched = 0; p->gr_recovery = 0; - p->do_stop = 1; - ev_schedule(p->event); if (p->main_source) { @@ -1873,6 +1868,9 @@ proto_do_stop(struct proto *p) } proto_stop_channels(p); + + p->do_stop = 1; + ev_schedule(p->event); } static void |