summaryrefslogtreecommitdiff
path: root/proto/ospf
diff options
context:
space:
mode:
authorMaria Matejka <mq@ucw.cz>2023-01-31 13:07:46 +0100
committerMaria Matejka <mq@ucw.cz>2023-02-02 15:57:21 +0100
commitc354e8f4c199ca7dec441394156d18badac71b81 (patch)
treed5a0c43215603bef858699aa49678e27894893f8 /proto/ospf
parent64e08775251960a2b009fc35a084610c9c4c4909 (diff)
Interface updates are asynchronous
Instead of propagating interface updates as they are loaded from kernel, they are enqueued and all the notifications are called from a protocol-specific event. This change allows to break the locking loop between protocols and interfaces. Anyway, this change is based on v2 branch to keep the changes between v2 and v3 smaller.
Diffstat (limited to 'proto/ospf')
-rw-r--r--proto/ospf/ospf.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/proto/ospf/ospf.c b/proto/ospf/ospf.c
index ad4b2d14..77a14b7a 100644
--- a/proto/ospf/ospf.c
+++ b/proto/ospf/ospf.c
@@ -370,8 +370,8 @@ ospf_init(struct proto_config *CF)
P->main_channel = proto_add_channel(P, proto_cf_main_channel(CF));
P->rt_notify = ospf_rt_notify;
- P->if_notify = ospf_if_notify;
- P->ifa_notify = cf->ospf2 ? ospf_ifa_notify2 : ospf_ifa_notify3;
+ P->iface_sub.if_notify = ospf_if_notify;
+ P->iface_sub.ifa_notify = cf->ospf2 ? ospf_ifa_notify2 : ospf_ifa_notify3;
P->preexport = ospf_preexport;
P->reload_routes = ospf_reload_routes;
P->feed_begin = ospf_feed_begin;