From 098ffc4f966743403596471b8a91f73366301c2d Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Tue, 13 Nov 2018 09:48:37 +0100 Subject: [PATCH] dhcp: change IPv4 relay to find_interface_network() --- src/etc/inc/services.inc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/etc/inc/services.inc b/src/etc/inc/services.inc index 6b560af4a..ffebd59a8 100644 --- a/src/etc/inc/services.inc +++ b/src/etc/inc/services.inc @@ -1504,14 +1504,16 @@ function services_dhcrelay_configure($verbose = false) $srvips = explode(",", $dhcrelaycfg['server']); foreach ($srvips as $srcidx => $srvip) { unset($destif); + + /* XXX runs multiple times because of server address loop :( */ foreach ($iflist as $ifname => $unused) { - $subnet = get_interface_ip($ifname); - if (!is_ipaddr($subnet)) { + $realif = get_real_interface($ifname); + $subnet = find_interface_network($realif); + if (!is_subnetv4($subnet)) { continue; } - $subnet .= "/" . get_interface_subnet($ifname); if (ip_in_subnet($srvip, $subnet)) { - $destif = get_real_interface($ifname); + $destif = $realif; break; } }