summaryrefslogtreecommitdiffstats
path: root/zebra/interface.c
diff options
context:
space:
mode:
authorStephen Hemminger <stephen.hemminger@vyatta.com>2008-12-18 17:19:46 -0800
committerStephen Hemminger <stephen.hemminger@vyatta.com>2008-12-18 17:19:46 -0800
commit3111ae93268b1af36e469b1f7744e821f27f0a30 (patch)
tree0c6282fe70d9f0df38ec5136a046ce14311c0d42 /zebra/interface.c
parent0b49f5d475aa5503e60d8dbdc9b4dcc8f6a614ec (diff)
parent177fec0b82d18dc92fe40b51bf1a4a294fb9a7ff (diff)
downloadquagga-3111ae93268b1af36e469b1f7744e821f27f0a30.tar.bz2
quagga-3111ae93268b1af36e469b1f7744e821f27f0a30.tar.xz
Merge branch 'jenner' of suva.vyatta.com:/git/vyatta-quagga into jenner
Diffstat (limited to 'zebra/interface.c')
-rw-r--r--zebra/interface.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/zebra/interface.c b/zebra/interface.c
index 74c977a9..dec91297 100644
--- a/zebra/interface.c
+++ b/zebra/interface.c
@@ -483,6 +483,22 @@ if_delete_update (struct interface *ifp)
ifp->ifindex = IFINDEX_INTERNAL;
}
+/* Quagga daemons don't handle rename, so delete then add */
+void
+if_rename (struct interface *ifp, const char *name)
+{
+ int ifindex = ifp->ifindex;
+
+ if_delete_update(ifp);
+ listnode_delete (iflist, ifp);
+
+ strncpy(ifp->name, name, INTERFACE_NAMSIZ);
+ ifp->ifindex = ifindex;
+
+ listnode_add_sort (iflist, ifp);
+ if_add_update (ifp);
+}
+
/* Interface is up. */
void
if_up (struct interface *ifp)