diff options
author | David Lamparter <equinox@diac24.net> | 2010-02-02 03:28:05 +0100 |
---|---|---|
committer | David Lamparter <equinox@diac24.net> | 2010-02-03 05:27:12 +0100 |
commit | e1ac697441f1147a69aad66207385fdd716a05e7 (patch) | |
tree | 83d0a5591066e37b7373f663964f79c6a8597e89 /zebra/connected.c | |
parent | a3e5daee7205e8bffb44d914a74d38fe8ad0c986 (diff) | |
download | quagga-e1ac697441f1147a69aad66207385fdd716a05e7.tar.bz2 quagga-e1ac697441f1147a69aad66207385fdd716a05e7.tar.xz |
netlink: process scope value, save it
add struct connected "scope" field, fill it from kernel data and display
it in "show interface" address list.
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; |