From 82b2ede99bc5646cd0a051d085ec14457ed23bcc Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Mon, 20 Sep 2021 20:34:28 +0200 Subject: [PATCH] ipsec: add shared function to simplify ipsec code #5201 --- src/etc/inc/plugins.inc.d/ipsec.inc | 4 +--- src/etc/inc/util.inc | 10 +++++++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/etc/inc/plugins.inc.d/ipsec.inc b/src/etc/inc/plugins.inc.d/ipsec.inc index 91995e941..2fe1dbb6c 100644 --- a/src/etc/inc/plugins.inc.d/ipsec.inc +++ b/src/etc/inc/plugins.inc.d/ipsec.inc @@ -1861,13 +1861,11 @@ function ipsec_get_configured_vtis() } $inet = is_ipaddrv6($phase2['tunnel_local']) ? 'inet6' : 'inet'; - $mask = $inet == 'inet6' ? find_smallest_cidr6([$phase2['tunnel_local'], $phase2['tunnel_remote']]) : - find_smallest_cidr([$phase2['tunnel_local'], $phase2['tunnel_remote']]); $configured_intf[$intfnm]['networks'][] = [ 'inet' => $inet, + 'mask' => find_smallest_cidr([$phase2['tunnel_local'], $phase2['tunnel_remote']], $inet), 'tunnel_local' => $phase2['tunnel_local'], - 'mask' => $mask, 'tunnel_remote' => $phase2['tunnel_remote'] ]; } diff --git a/src/etc/inc/util.inc b/src/etc/inc/util.inc index 47655e3d5..782b78328 100644 --- a/src/etc/inc/util.inc +++ b/src/etc/inc/util.inc @@ -470,8 +470,16 @@ function ip2ulong($ip) return sprintf("%u", ip2long32($ip)); } +/* Find the smallest possible subnet mask for given IP range */ +function find_smallest_cidr($ips, $family = 'inet') +{ + return $family == 'inet6' ? + find_smallest_cidr6($ips) : + find_smallest_cidr4($ips); +} + /* Find the smallest possible subnet mask for given IPv4 range */ -function find_smallest_cidr($ips) +function find_smallest_cidr4($ips) { foreach ($ips as $id => $ip) { $ips[$id] = ip2long($ip);