summaryrefslogtreecommitdiff
path: root/proto/wireguard/wireguard.c
diff options
context:
space:
mode:
Diffstat (limited to 'proto/wireguard/wireguard.c')
-rw-r--r--proto/wireguard/wireguard.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/proto/wireguard/wireguard.c b/proto/wireguard/wireguard.c
index e60a0b97..2882c862 100644
--- a/proto/wireguard/wireguard.c
+++ b/proto/wireguard/wireguard.c
@@ -87,14 +87,14 @@ int decode_remote_ep(void *p, size_t sub_tlv_len, u32 *as4, ip_addr *remote_ep)
*as4 = get_u32(p);
u16 af = get_u16(p + 4);
switch (af) {
- case AF_INET:
+ case NET_IP4:
if (sub_tlv_len != 10) {
log(L_TRACE "WG: IPv4 len error %d", sub_tlv_len);
return -1;
}
*remote_ep = ipa_from_ip4(get_ip4(p + 6));
return 0;
- case AF_INET6:
+ case NET_IP6:
if (sub_tlv_len != 22) {
log(L_TRACE "WG: IPv6 len error %d", sub_tlv_len);
return -1;
@@ -461,8 +461,10 @@ wg_rt_notify(struct proto *P, struct channel *ch UNUSED, struct network *n,
if (!previp) {
debug("WG: remove first\n");
peer->first_allowedip = ip->next_allowedip;
- if (peer->last_allowedip == ip)
+ if (peer->last_allowedip == ip) {
peer->last_allowedip = NULL;
+ peer->first_allowedip = NULL;
+ }
} else {
debug("WG: remove middle\n");
// Remove