Merge pull request #3905 from pulcov/master

This commit is contained in:
Steve Beaver 2018-02-07 12:27:49 -05:00
commit b96b2ca09d
2 changed files with 17 additions and 4 deletions

View File

@ -1330,7 +1330,7 @@ function validate_address_family($ipaddr, $gwname, $disabled = false) {
}
/* check if a interface is part of a gateway group */
function interface_gateway_group_member($interface) {
function interface_gateway_group_member($interface, $gwgroup_name = "") {
global $config;
if (is_array($config['gateways']['gateway_group'])) {
@ -1345,7 +1345,8 @@ function interface_gateway_group_member($interface) {
foreach ($group['item'] as $item) {
$elements = explode("|", $item);
$gwname = $elements[0];
if ($interface == $gateways_arr[$gwname]['interface']) {
if ($interface == $gateways_arr[$gwname]['interface'] &&
(empty($gwgroup_name) || $gwgroup_name == $group['name'])) {
unset($gateways_arr);
return true;
}

View File

@ -1926,6 +1926,7 @@ function services_dyndns_configure($int = "") {
*/
$group_int = '';
$friendly_group_int = '';
$gwgroup_member = false;
if (is_array($gwgroups[$dyndns['interface']])) {
if (!empty($gwgroups[$dyndns['interface']][0]['vip'])) {
$group_int = $gwgroups[$dyndns['interface']][0]['vip'];
@ -1934,9 +1935,14 @@ function services_dyndns_configure($int = "") {
$friendly_group_int =
convert_real_interface_to_friendly_interface_name(
$group_int);
if (!empty($int)) {
$gwgroup_member =
interface_gateway_group_member(get_real_interface($int),
$dyndns['interface']);
}
}
}
if ((empty($int)) || ($int == $dyndns['interface']) ||
if ((empty($int)) || ($int == $dyndns['interface']) || $gwgroup_member ||
($int == $group_int) || ($int == $friendly_group_int)) {
$dyndns['verboselog'] = isset($dyndns['verboselog']);
$dyndns['curl_ipresolve_v4'] = isset($dyndns['curl_ipresolve_v4']);
@ -2488,6 +2494,7 @@ function services_dnsupdate_process($int = "", $updatehost = "", $forced = false
*/
$group_int = '';
$friendly_group_int = '';
$gwgroup_member = false;
if (is_array($gwgroups[$dnsupdate['interface']])) {
if (!empty($gwgroups[$dnsupdate['interface']][0]['vip'])) {
$group_int = $gwgroups[$dnsupdate['interface']][0]['vip'];
@ -2496,9 +2503,14 @@ function services_dnsupdate_process($int = "", $updatehost = "", $forced = false
$friendly_group_int =
convert_real_interface_to_friendly_interface_name(
$group_int);
if (!empty($int)) {
$gwgroup_member =
interface_gateway_group_member(get_real_interface($int),
$dnsupdate['interface']);
}
}
}
if (!empty($int) && ($int != $dnsupdate['interface']) &&
if (!empty($int) && ($int != $dnsupdate['interface']) && !$gwgroup_member &&
($int != $group_int) && ($int != $friendly_group_int)) {
continue;
}