Feature #3859 » gwlb.php.patch
| /etc/inc/gwlb.inc 2014-09-11 10:43:46.000000000 +0200 | ||
|---|---|---|
|
/* Interface ip is needed since apinger will bind a socket to it. */
|
||
|
if (is_ipaddrv4($gateway['gateway'])) {
|
||
|
$gwifip = find_interface_ip($gateway['interface'], true);
|
||
|
if (is_ipaddrv4($gateway['srcip'])) {
|
||
|
$gwifip = $gateway['srcip'];
|
||
|
} else {
|
||
|
$gwifip = find_interface_ip($gateway['interface'], true);
|
||
|
}
|
||
|
if (!is_ipaddrv4($gwifip))
|
||
|
continue; //Skip this target
|
||
| ... | ... | |
|
}
|
||
|
} else if (is_ipaddrv6($gateway['gateway'])) {
|
||
|
/* link locals really need a different src ip */
|
||
|
if(is_linklocal($gateway['gateway'])) {
|
||
|
if (is_ipaddrv6($gateway['srcip'])) {
|
||
|
$gwifip = $gateway['srcip'];
|
||
|
} else if(is_linklocal($gateway['gateway'])) {
|
||
|
$gwifip = find_interface_ipv6_ll($gateway['interface'], true);
|
||
|
} else {
|
||
|
$gwifip = find_interface_ipv6($gateway['interface'], true);
|
||
| ... | ... | |
|
$tgtip = get_interface_gateway($realif);
|
||
|
if (!is_ipaddr($tgtip))
|
||
|
$tgtip = "none";
|
||
|
$srcip = find_interface_ip($realif);
|
||
|
if (is_ipaddr($gwitem['srcip'])) {
|
||
|
$srcip = $gwitem['srcip'];
|
||
|
} else {
|
||
|
$srcip = find_interface_ip($realif);
|
||
|
}
|
||
|
} else {
|
||
|
$tgtip = $gwitem['monitorip'];
|
||
|
$srcip = find_interface_ip($realif);
|
||
|
if (is_ipaddr($gwitem['srcip'])) {
|
||
|
$srcip = $gwitem['srcip'];
|
||
|
} else {
|
||
|
$srcip = find_interface_ip($realif);
|
||
|
}
|
||
|
}
|
||
|
if($byname == true)
|
||
|
$target = $gwitem['name'];
|
||