diff options
author | Mikael Magnusson <mikma@users.sourceforge.net> | 2019-09-29 15:25:16 +0200 |
---|---|---|
committer | Mikael Magnusson <mikma@users.sourceforge.net> | 2020-05-08 18:52:55 +0200 |
commit | 31ad8c90ce074910dcad7535cd5f56f0e5b1e958 (patch) | |
tree | 12fbea3d211d77c21f9aafd3c6344d904ce3f990 /proto | |
parent | c4c07589c792ca6e47f7a154905fc23949d17845 (diff) |
Wireguard: Refactor dump_peer
Diffstat (limited to 'proto')
-rw-r--r-- | proto/wireguard/wireguard.c | 57 |
1 files changed, 36 insertions, 21 deletions
diff --git a/proto/wireguard/wireguard.c b/proto/wireguard/wireguard.c index b0095aa7..eabaa79c 100644 --- a/proto/wireguard/wireguard.c +++ b/proto/wireguard/wireguard.c @@ -16,6 +16,8 @@ #include "sysdep/unix/wg_user.h" #include "wireguard.h" +static ip_addr allowedip_to_ipa(struct wg_allowedip *allowedip); + static int get_device(struct wg_proto *p, wg_device **pdev, const char *device_name) { @@ -157,6 +159,21 @@ dump(void *ptr, size_t len) fprintf(stderr, "\n"); } +static void +dump_peer(struct wg_peer *peer) +{ + wg_key_b64_string base64; + wg_key_to_base64(base64, peer->public_key); + debug("WG: peer %s\n", base64); + + struct wg_allowedip *allowedip = NULL; + wg_for_each_allowedip(peer, allowedip) { + ip_addr ip = allowedip_to_ipa(allowedip); + + debug("allowedip %I/%d\n", ip, allowedip->cidr); + } +} + static wg_peer * add_peer(wg_device *dev, const wg_key pubkey) { @@ -228,6 +245,20 @@ set_peer_tunnel_ep(wg_peer *peer, ip_addr tunnel_ep_addr, u16 udp_dest_port) return 0; } +static ip_addr +allowedip_to_ipa(struct wg_allowedip *allowedip) +{ + switch (allowedip->family) { + case AF_INET: + return ipa_from_in4(allowedip->ip4); + break; + case AF_INET6: + return ipa_from_in6(allowedip->ip6); + } + + return IPA_NONE; +} + static void init_allowed_ip(struct wg_allowedip *allowedip, u8 net_type, struct network *n) { @@ -261,7 +292,7 @@ add_allowed_ip(u8 net_type, struct network *n, wg_peer *peer) return 0; } -static void +static bool remove_allowed_ip(wg_peer *peer, struct wg_allowedip *allowedip) { struct wg_allowedip *ip = NULL; @@ -307,8 +338,10 @@ remove_allowed_ip(wg_peer *peer, struct wg_allowedip *allowedip) } free(ip); - break; + return true; } + + return false; } static void @@ -641,25 +674,7 @@ wg_dump(struct proto *P) log(L_TRACE "WG: dump peers"); wg_for_each_peer(p->dev, peer) { - wg_key_b64_string base64; - wg_key_to_base64(base64, peer->public_key); - debug("WG: peer %s\n", base64); - - struct wg_allowedip *allowedip = NULL; - wg_for_each_allowedip(peer, allowedip) { - ip_addr ip; - - switch (allowedip->family) { - case AF_INET: - ip = ipa_from_in4(allowedip->ip4); - break; - case AF_INET6: - ip = ipa_from_in6(allowedip->ip6); - break; - } - - debug("allowedip %I/%d\n", ip, allowedip->cidr); - } + dump_peer(peer); } } |