diff options
Diffstat (limited to 'ospfd/ospf_zebra.c')
| -rw-r--r-- | ospfd/ospf_zebra.c | 21 |
1 files changed, 16 insertions, 5 deletions
diff --git a/ospfd/ospf_zebra.c b/ospfd/ospf_zebra.c index e7dbdbd9af..2d02619ae3 100644 --- a/ospfd/ospf_zebra.c +++ b/ospfd/ospf_zebra.c @@ -1956,7 +1956,6 @@ static int ospf_opaque_msg_handler(ZAPI_CALLBACK_ARGS) struct zapi_opaque_msg info; struct ldp_igp_sync_if_state state; struct ldp_igp_sync_announce announce; - struct ldp_igp_sync_hello hello; int ret = 0; s = zclient->ibuf; @@ -1973,10 +1972,6 @@ static int ospf_opaque_msg_handler(ZAPI_CALLBACK_ARGS) STREAM_GET(&announce, s, sizeof(announce)); ret = ospf_ldp_sync_announce_update(announce); break; - case LDP_IGP_SYNC_HELLO_UPDATE: - STREAM_GET(&hello, s, sizeof(hello)); - ret = ospf_ldp_sync_hello_update(hello); - break; default: break; } @@ -1986,6 +1981,20 @@ stream_failure: return ret; } +static int ospf_zebra_client_close_notify(ZAPI_CALLBACK_ARGS) +{ + int ret = 0; + + struct zapi_client_close_info info; + + if (zapi_client_close_notify_decode(zclient->ibuf, &info) < 0) + return -1; + + ospf_ldp_sync_handle_client_close(&info); + + return ret; +} + void ospf_zebra_init(struct thread_master *master, unsigned short instance) { /* Allocate zebra structure. */ @@ -2021,6 +2030,8 @@ void ospf_zebra_init(struct thread_master *master, unsigned short instance) prefix_list_delete_hook(ospf_prefix_list_update); zclient->opaque_msg_handler = ospf_opaque_msg_handler; + + zclient->zebra_client_close_notify = ospf_zebra_client_close_notify; } void ospf_zebra_send_arp(const struct interface *ifp, const struct prefix *p) |
