diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2011-09-24 11:06:42 +0200 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2011-09-24 11:06:42 +0200 |
commit | bf6d91dc4edf3d08f0de41f71503159b1713fc9a (patch) | |
tree | aaf769128412c4ad1c56f0f373b88f10e37a8ddf /lib | |
parent | 4116db182d8d80d26902a8b33f82664bb5770066 (diff) | |
download | bird-bf6d91dc4edf3d08f0de41f71503159b1713fc9a.tar bird-bf6d91dc4edf3d08f0de41f71503159b1713fc9a.zip |
Use undefined scope for undefined IPv6 addresses.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/ip.c | 4 | ||||
-rw-r--r-- | lib/ip.h | 1 | ||||
-rw-r--r-- | lib/ipv6.c | 3 |
3 files changed, 5 insertions, 3 deletions
@@ -27,9 +27,9 @@ char * ip_scope_text(unsigned scope) { - static char *scope_table[] = { "host", "link", "site", "org", "univ" }; + static char *scope_table[] = { "host", "link", "site", "org", "univ", "undef" }; - if (scope > SCOPE_UNIVERSE) + if (scope > SCOPE_UNDEFINED) return "?"; else return scope_table[scope]; @@ -37,6 +37,7 @@ #define SCOPE_SITE 2 #define SCOPE_ORGANIZATION 3 #define SCOPE_UNIVERSE 4 +#define SCOPE_UNDEFINED 5 char *ip_scope_text(unsigned); @@ -85,6 +85,7 @@ ipv6_classify(ip_addr *a) case 5: return IADDR_MULTICAST | SCOPE_SITE; case 8: return IADDR_MULTICAST | SCOPE_ORGANIZATION; case 14: return IADDR_MULTICAST | SCOPE_UNIVERSE; + default: return IADDR_MULTICAST | SCOPE_UNDEFINED; } } if (!x && !a->addr[1] && !a->addr[2]) @@ -102,7 +103,7 @@ ipv6_classify(ip_addr *a) if (y >= 0x01000000 && y < 0xe0000000) return IADDR_HOST | SCOPE_UNIVERSE; } - return IADDR_INVALID; + return IADDR_HOST | SCOPE_UNDEFINED; } void |