diff options
Diffstat (limited to 'zebra/connected.c')
-rw-r--r-- | zebra/connected.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/zebra/connected.c b/zebra/connected.c index 25186a80..82c531e4 100644 --- a/zebra/connected.c +++ b/zebra/connected.c @@ -269,7 +269,7 @@ connected_up_ipv4 (struct interface *ifp, struct connected *ifc) void connected_add_ipv4 (struct interface *ifp, int flags, struct in_addr *addr, u_char prefixlen, struct in_addr *broad, - const char *label) + const char *label, unsigned scope) { struct prefix_ipv4 *p; struct connected *ifc; @@ -341,6 +341,8 @@ connected_add_ipv4 (struct interface *ifp, int flags, struct in_addr *addr, if (label) ifc->label = XSTRDUP (MTYPE_CONNECTED_LABEL, label); + ifc->scope = scope; + /* nothing to do? */ if ((ifc = connected_implicit_withdraw (ifp, ifc)) == NULL) return; @@ -436,7 +438,7 @@ connected_up_ipv6 (struct interface *ifp, struct connected *ifc) void connected_add_ipv6 (struct interface *ifp, int flags, struct in6_addr *addr, u_char prefixlen, struct in6_addr *broad, - const char *label) + const char *label, unsigned scope) { struct prefix_ipv6 *p; struct connected *ifc; @@ -479,7 +481,9 @@ connected_add_ipv6 (struct interface *ifp, int flags, struct in6_addr *addr, /* Label of this address. */ if (label) ifc->label = XSTRDUP (MTYPE_CONNECTED_LABEL, label); - + + ifc->scope = scope; + if ((ifc = connected_implicit_withdraw (ifp, ifc)) == NULL) return; |