diff --git a/src/etc/inc/util.inc b/src/etc/inc/util.inc index fe1eae8300..b4004bed01 100644 --- a/src/etc/inc/util.inc +++ b/src/etc/inc/util.inc @@ -2649,7 +2649,7 @@ function route_table() { } /* Get static route for specific destination */ -function route_get($target, $ipprotocol = '') { +function route_get($target, $ipprotocol = '', $first_match = false) { if (!empty($ipprotocol)) { $family = $ipprotocol; } else if (is_v4($target)) { @@ -2673,6 +2673,9 @@ function route_get($target, $ipprotocol = '') { if ($item['destination'] == $target || ip_in_subnet($target, $item['destination'])) { $result[] = $item; + if ($first_match) { + break; + } } } @@ -2686,7 +2689,7 @@ function route_get_default($ipprotocol) { return ''; } - $route = route_get('default', $ipprotocol); + $route = route_get('default', $ipprotocol, true); if (empty($route)) { return '';