From 4ad9ec6810a4604a844fda0179e666cdf9aa6a46 Mon Sep 17 00:00:00 2001 From: Mikael Magnusson Date: Fri, 8 Mar 2019 17:45:35 +0100 Subject: Wireguard: Fixes --- proto/wireguard/wireguard.c | 8 +++++--- 1 file 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 -- cgit v1.2.3