summaryrefslogtreecommitdiffstats
path: root/zebra/zserv.c
diff options
context:
space:
mode:
authorpaul <paul>2005-07-29 14:36:00 +0000
committerpaul <paul>2005-07-29 14:36:00 +0000
commit6eb8827d669b06d7b38357860d23fa33e0c0078e (patch)
treebab69ac40c857fd6a6e7b447166df7e9ae08989d /zebra/zserv.c
parent7907c6c9d34a4f19dd7d4d8d81c3c8ae5000ee07 (diff)
downloadquagga-6eb8827d669b06d7b38357860d23fa33e0c0078e.tar.bz2
quagga-6eb8827d669b06d7b38357860d23fa33e0c0078e.tar.xz
2005-07-29 Paul Jakma <paul.jakma@sun.com>
* interface.c: (if_delete_update) should always be available, not just on RTM_IFANNOUNCE/NETLINK systems. * kernel_socket.c: (ifan_read) only call if_delete_update when interface departs, dont if_delete, because we wish to retain interface configuration state even when interfaces are removed. (ifm_read) If we dont have RTM_IFANNOUNCE, then transitioning to down state is only chance we have to clean up interface in case it is deleted (eg Solaris down -> unplumb -> plumb up). * redistribute.c: (zebra_interface_delete_update) should always be available, we /will/ call it now on all systems, via if_delete_update. * zserv.c: (zsend_interface_delete) ditto (zsend_interface_address) Update the call-flow diagramme, to reflect that if_delete_update /is/ now called on all systems, potentially. * zserv.h: (zsend_interface_delete) unconditionally exported, as above.
Diffstat (limited to 'zebra/zserv.c')
-rw-r--r--zebra/zserv.c11
1 files changed, 2 insertions, 9 deletions
diff --git a/zebra/zserv.c b/zebra/zserv.c
index f08f7ce8..eb126feb 100644
--- a/zebra/zserv.c
+++ b/zebra/zserv.c
@@ -203,12 +203,6 @@ zsend_interface_add (struct zserv *client, struct interface *ifp)
}
/* Interface deletion from zebra daemon. */
-/*
- * This function is only called when support for
- * RTM_IFANNOUNCE or AF_NETLINK sockets (RTM_DELLINK message)
- * is available. It is not called on Solaris.
- */
-#if (defined(RTM_IFANNOUNCE) || defined(HAVE_NETLINK))
int
zsend_interface_delete (struct zserv *client, struct interface *ifp)
{
@@ -240,7 +234,6 @@ zsend_interface_delete (struct zserv *client, struct interface *ifp)
return zebra_server_send_message (client);
}
-#endif /* (defined(RTM_IFANNOUNCE) || defined(HAVE_LINUX_RTNETLINK_H)) */
/* Interface address is added/deleted. Send ZEBRA_INTERFACE_ADDRESS_ADD or
* ZEBRA_INTERFACE_ADDRESS_DELETE to the client.
@@ -266,8 +259,8 @@ zsend_interface_delete (struct zserv *client, struct interface *ifp)
* |
* zebra_interface_address_delete_update
* ^ ^ ^
- * | | if_delete_update (not called on
- * | | Solaris)
+ * | | if_delete_update
+ * | |
* ip_address_uninstall connected_delete_ipv4
* [ipv6_addresss_uninstall] [connected_delete_ipv6]
* ^ ^