summaryrefslogtreecommitdiff
path: root/lib/net.c
diff options
context:
space:
mode:
authorJan Moskyto Matejka <mq@ucw.cz>2017-04-26 12:30:22 +0200
committerJan Moskyto Matejka <mq@ucw.cz>2017-04-26 12:30:22 +0200
commit69fddac0525b1b0c940d778a161ed3a0a742ed6f (patch)
tree3fd1d68a1dc84f6d14bd6705fe3505be1483d4ee /lib/net.c
parent93a3661c15c612e1de807524649482765b2c2702 (diff)
parentb29499996bbc1612a63a7e715bb53a8abf0940e3 (diff)
Merge branch 'int-new' of gitlab.labs.nic.cz:labs/bird into int-new
Diffstat (limited to 'lib/net.c')
-rw-r--r--lib/net.c34
1 files changed, 15 insertions, 19 deletions
diff --git a/lib/net.c b/lib/net.c
index e6053812..a00ff272 100644
--- a/lib/net.c
+++ b/lib/net.c
@@ -177,33 +177,29 @@ net_hash(const net_addr *n)
case NET_ROA6: return NET_HASH(n, roa6);
case NET_FLOW4: return NET_HASH(n, flow4);
case NET_FLOW6: return NET_HASH(n, flow6);
+ case NET_MPLS: return NET_HASH(n, mpls);
default: bug("invalid type");
}
}
+#define NET_VALIDATE(a,t) net_validate_##t((const net_addr_##t *) a)
+
int
-net_validate(const net_addr *N)
+net_validate(const net_addr *n)
{
- switch (N->type)
+ switch (n->type)
{
- case NET_IP4:
- case NET_VPN4:
- case NET_ROA4:
- case NET_FLOW4:
- return net_validate_ip4((net_addr_ip4 *) N);
-
- case NET_IP6:
- case NET_VPN6:
- case NET_ROA6:
- case NET_FLOW6:
- return net_validate_ip6((net_addr_ip6 *) N);
-
- case NET_MPLS:
- return net_validate_mpls((net_addr_mpls *) N);
-
- default:
- return 0;
+ case NET_IP4: return NET_VALIDATE(n, ip4);
+ case NET_IP6: return NET_VALIDATE(n, ip6);
+ case NET_VPN4: return NET_VALIDATE(n, vpn4);
+ case NET_VPN6: return NET_VALIDATE(n, vpn6);
+ case NET_ROA4: return NET_VALIDATE(n, roa4);
+ case NET_ROA6: return NET_VALIDATE(n, roa6);
+ case NET_FLOW4: return NET_VALIDATE(n, flow4);
+ case NET_FLOW6: return NET_VALIDATE(n, flow6);
+ case NET_MPLS: return NET_VALIDATE(n, mpls);
+ default: return 0;
}
}