diff options
author | Martin Mares <mj@ucw.cz> | 1999-04-27 18:03:17 +0200 |
---|---|---|
committer | Martin Mares <mj@ucw.cz> | 1999-04-27 18:03:17 +0200 |
commit | ec8b579e9c9703601bf745745b620103fe2e2477 (patch) | |
tree | dc882d9e3fc86c4d2860c3200b1df0955507e510 | |
parent | 59e2188cb7020e43e25c9d5bdcd011f341ddfc1d (diff) | |
download | bird-ec8b579e9c9703601bf745745b620103fe2e2477.tar bird-ec8b579e9c9703601bf745745b620103fe2e2477.zip |
Recognize site scope for IPv4 addresses (prefixes reserved for private
networks).
Removed old #ifndef logic which was used to avoid IPv4/IPv6 clashes
before conditionals in Modules lists were introduced.
-rw-r--r-- | TODO | 2 | ||||
-rw-r--r-- | lib/ipv4.c | 8 |
2 files changed, 6 insertions, 4 deletions
@@ -2,6 +2,8 @@ Core ~~~~ * protocols: implement dumping of protocol-dependent rte attributes +- io.c: refuse old-style multicasts for unnumbered interfaces? + - prefer loopback addresses as router IDs (dummy interface?) - config: executable config files @@ -6,8 +6,6 @@ * Can be freely distributed and used under the terms of the GNU GPL. */ -#ifndef IPV6 - #include <string.h> #include <stdlib.h> @@ -24,6 +22,10 @@ ipv4_classify(u32 a) { if (b == 0x7f) return IADDR_HOST | SCOPE_HOST; + else if (b == 0x0a || + (a & 0xffff0000) == 0xc0a80000 || + (a & 0xfff00000) == 0xac100000) + return IADDR_HOST | SCOPE_SITE; else return IADDR_HOST | SCOPE_UNIVERSE; } @@ -92,5 +94,3 @@ ip_pton(char *a, ip_addr *o) *o = ipa_from_u32(ia); return 1; } - -#endif |