diff options
author | Stephen Hemminger <shemminger@vyatta.com> | 2009-12-08 12:00:50 +0300 |
---|---|---|
committer | Denis Ovsienko <infrastation@yandex.ru> | 2009-12-08 12:00:50 +0300 |
commit | 38cc00cd823fe945c7748de18c3e8932d98dd8f8 (patch) | |
tree | 51f79a6ff37f8858b569f55f27480c4b47eb2aac | |
parent | 0d6388abc7a5da2a20a4854c400c8e176127e480 (diff) |
lib: make match functions take const args
* table.c: general type safety and compiler help:
* maskbit[]: become const
* route_node_match(): take const args
* route_node_match_ipv4(): idem
* route_node_match_ipv6(): idem
* check_bit(): idem, plus adjust local vars typing
-rw-r--r-- | lib/table.c | 18 | ||||
-rw-r--r-- | lib/table.h | 12 |
2 files changed, 16 insertions, 14 deletions
diff --git a/lib/table.c b/lib/table.c index 70fc0b24..06c64539 100644 --- a/lib/table.c +++ b/lib/table.c @@ -125,7 +125,7 @@ route_table_free (struct route_table *rt) } /* Utility mask array. */ -static u_char maskbit[] = +static const u_char maskbit[] = { 0x00, 0x80, 0xc0, 0xe0, 0xf0, 0xf8, 0xfc, 0xfe, 0xff }; @@ -170,11 +170,11 @@ route_common (struct prefix *n, struct prefix *p, struct prefix *new) /* Check bit of the prefix. */ static int -check_bit (u_char *prefix, u_char prefixlen) +check_bit (const u_char *prefix, u_char prefixlen) { - int offset; - int shift; - u_char *p = (u_char *)prefix; + unsigned int offset; + unsigned int shift; + const u_char *p = prefix; assert (prefixlen <= 128); @@ -221,7 +221,7 @@ route_unlock_node (struct route_node *node) /* Find matched prefix. */ struct route_node * -route_node_match (struct route_table *table, struct prefix *p) +route_node_match (const struct route_table *table, const struct prefix *p) { struct route_node *node; struct route_node *matched; @@ -247,7 +247,8 @@ route_node_match (struct route_table *table, struct prefix *p) } struct route_node * -route_node_match_ipv4 (struct route_table *table, struct in_addr *addr) +route_node_match_ipv4 (const struct route_table *table, + const struct in_addr *addr) { struct prefix_ipv4 p; @@ -261,7 +262,8 @@ route_node_match_ipv4 (struct route_table *table, struct in_addr *addr) #ifdef HAVE_IPV6 struct route_node * -route_node_match_ipv6 (struct route_table *table, struct in6_addr *addr) +route_node_match_ipv6 (const struct route_table *table, + const struct in6_addr *addr) { struct prefix_ipv6 p; diff --git a/lib/table.h b/lib/table.h index 45ec6067..41d1fa70 100644 --- a/lib/table.h +++ b/lib/table.h @@ -66,13 +66,13 @@ extern struct route_node *route_node_get (struct route_table *, extern struct route_node *route_node_lookup (struct route_table *, struct prefix *); extern struct route_node *route_lock_node (struct route_node *node); -extern struct route_node *route_node_match (struct route_table *, - struct prefix *); -extern struct route_node *route_node_match_ipv4 (struct route_table *, - struct in_addr *); +extern struct route_node *route_node_match (const struct route_table *, + const struct prefix *); +extern struct route_node *route_node_match_ipv4 (const struct route_table *, + const struct in_addr *); #ifdef HAVE_IPV6 -extern struct route_node *route_node_match_ipv6 (struct route_table *, - struct in6_addr *); +extern struct route_node *route_node_match_ipv6 (const struct route_table *, + const struct in6_addr *); #endif /* HAVE_IPV6 */ #endif /* _ZEBRA_TABLE_H */ |