diff options
Diffstat (limited to 'lib/prefix.c')
-rw-r--r-- | lib/prefix.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/lib/prefix.c b/lib/prefix.c index c85e6594..61a278ca 100644 --- a/lib/prefix.c +++ b/lib/prefix.c @@ -41,7 +41,7 @@ static const u_char maskbit[] = {0x00, 0x80, 0xc0, 0xe0, 0xf0, /* Address Famiy Identifier to Address Family converter. */ int -afi2family (int afi) +afi2family (afi_t afi) { if (afi == AFI_IP) return AF_INET; @@ -52,7 +52,7 @@ afi2family (int afi) return 0; } -int +afi_t family2afi (int family) { if (family == AF_INET) @@ -70,15 +70,16 @@ prefix_match (const struct prefix *n, const struct prefix *p) { int offset; int shift; - - /* Set both prefix's head pointer. */ - const u_char *np = (const u_char *)&n->u.prefix; - const u_char *pp = (const u_char *)&p->u.prefix; + const u_char *np, *pp; /* If n's prefix is longer than p's one return 0. */ if (n->prefixlen > p->prefixlen) return 0; + /* Set both prefix's head pointer. */ + np = (const u_char *)&n->u.prefix; + pp = (const u_char *)&p->u.prefix; + offset = n->prefixlen / PNBBY; shift = n->prefixlen % PNBBY; |