Revision 70ee40f9
src/etc/inc/services.inc | ||
---|---|---|
4259 | 4259 |
} |
4260 | 4260 |
|
4261 | 4261 |
// Prefer the source address on the gateway group. |
4262 |
$source_address4 = is_ipaddrv4($source_address_gw) ? $source_address_gw : get_interface_ip($interface); |
|
4263 |
$source_address6 = is_ipaddrv6($source_address_gw) ? $source_address_gw : get_interface_ipv6($interface); |
|
4264 |
|
|
4265 | 4262 |
if ($address_family == AF_INET) { |
4266 |
$source_address = $source_address4;
|
|
4263 |
$source_address = is_ipaddrv4($source_address_gw) ? $source_address_gw : get_interface_ip($interface);
|
|
4267 | 4264 |
} elseif ($address_family == AF_INET6) { |
4268 |
$source_address = $source_address6;
|
|
4265 |
$source_address = is_ipaddrv6($source_address_gw) ? $source_address_gw : get_interface_ipv6($interface);
|
|
4269 | 4266 |
} else { |
4270 |
if (config_path_enabled('system', 'prefer_ipv4') && !empty($source_address4)) { |
|
4271 |
$source_address = $source_address4; |
|
4272 |
} elseif (!empty($source_address6)) { |
|
4273 |
$source_address = $source_address6; |
|
4274 |
} else { |
|
4275 |
$source_address = $source_address4; |
|
4267 |
$prefer_ipv4 = config_path_enabled('system', 'prefer_ipv4'); |
|
4268 |
if ($prefer_ipv4) { |
|
4269 |
$source_address = is_ipaddrv4($source_address_gw) ? $source_address_gw : get_interface_ip($interface); |
|
4270 |
} |
|
4271 |
if (empty($source_address)) { |
|
4272 |
// Also check IPv6 if IPv4 is preferred but not available. |
|
4273 |
$source_address = is_ipaddrv6($source_address_gw) ? $source_address_gw : get_interface_ipv6($interface); |
|
4274 |
} |
|
4275 |
if (empty($source_address) && !$prefer_ipv4) { |
|
4276 |
$source_address = is_ipaddrv4($source_address_gw) ? $source_address_gw : get_interface_ip($interface); |
|
4276 | 4277 |
} |
4277 | 4278 |
} |
4278 | 4279 |
|
Also available in: Unified diff
Remove redundant calls in get_request_source_address()