diff options
author | 2016-06-01 11:16:41 +0000 | |
---|---|---|
committer | 2016-06-01 11:16:41 +0000 | |
commit | 19dc86382e9f3b3c46b2a0f08dd7b4e349686b5c (patch) | |
tree | 11426a99f496b81fc81403032c6ebb479c2abfb1 /sbin/iked/policy.c | |
parent | Kill sysctl net.inet6.ip6.rr_prune (diff) | |
download | wireguard-openbsd-19dc86382e9f3b3c46b2a0f08dd7b4e349686b5c.tar.xz wireguard-openbsd-19dc86382e9f3b3c46b2a0f08dd7b4e349686b5c.zip |
Implement a second address pool specifically for IPv6, so that
clients can be given an IPv4 and IPv6 address at the same time,
thus enabling dual stack usage.
ok markus@ mikeb@
Diffstat (limited to 'sbin/iked/policy.c')
-rw-r--r-- | sbin/iked/policy.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/sbin/iked/policy.c b/sbin/iked/policy.c index 0d82d787589..c9987f09e1f 100644 --- a/sbin/iked/policy.c +++ b/sbin/iked/policy.c @@ -1,4 +1,4 @@ -/* $OpenBSD: policy.c,v 1.41 2015/10/20 06:42:59 reyk Exp $ */ +/* $OpenBSD: policy.c,v 1.42 2016/06/01 11:16:41 patrick Exp $ */ /* * Copyright (c) 2010-2013 Reyk Floeter <reyk@openbsd.org> @@ -522,6 +522,13 @@ sa_addrpool_cmp(struct iked_sa *a, struct iked_sa *b) (struct sockaddr *)&b->sa_addrpool->addr, -1)); } +static __inline int +sa_addrpool6_cmp(struct iked_sa *a, struct iked_sa *b) +{ + return (sockaddr_cmp((struct sockaddr *)&a->sa_addrpool6->addr, + (struct sockaddr *)&b->sa_addrpool6->addr, -1)); +} + struct iked_user * user_lookup(struct iked *env, const char *user) { @@ -584,6 +591,7 @@ flow_cmp(struct iked_flow *a, struct iked_flow *b) RB_GENERATE(iked_sas, iked_sa, sa_entry, sa_cmp); RB_GENERATE(iked_addrpool, iked_sa, sa_addrpool_entry, sa_addrpool_cmp); +RB_GENERATE(iked_addrpool6, iked_sa, sa_addrpool6_entry, sa_addrpool6_cmp); RB_GENERATE(iked_users, iked_user, usr_entry, user_cmp); RB_GENERATE(iked_activesas, iked_childsa, csa_node, childsa_cmp); RB_GENERATE(iked_flows, iked_flow, flow_node, flow_cmp); |